All Downloads are FREE. Search and download functionalities are using the official Maven repository.

info.setmy.jwt.models.ExtendedJWTToken Maven / Gradle / Ivy

package info.setmy.jwt.models;

import com.auth0.jwt.interfaces.DecodedJWT;

/**
 *
 * Model for creating and verificating (parsing) extended (non-RFC part) JWT
 * tokens with claims.
 *
 * @author Imre Tabur
 */
public class ExtendedJWTToken extends JWTToken {

    public static final String UID = "uid";

    public static final String ROLES = "rls";

    public static final String FIRST_NAME = "fnm";

    public static final String MIDDLE_NAME = "mnm";

    public static final String LAST_NAME = "lnm";

    // uid - User ID
    private String userId;

    // rls - user roles
    private String[] roles;

    // fnm - non standard
    private String firstName;

    // mnm - non standard
    private String middleName;

    // lnm - non standard
    private String lastName;

    public ExtendedJWTToken(final String serviceName) {
        super(serviceName);
    }

    @Override
    public String toString() {
        setClaim(UID, getUserId());
        setClaim(ROLES, getRoles());
        setClaim(FIRST_NAME, getFirstName());
        setClaim(MIDDLE_NAME, getMiddleName());
        setClaim(LAST_NAME, getLastName());
        return super.toString();
    }

    @Override
    protected void populate(final DecodedJWT jwt) {
        super.populate(jwt);
        setUserId(jwt.getClaim(UID).asString());
        setRoles(jwt.getClaim(ROLES).asArray(String.class));
        setFirstName(jwt.getClaim(FIRST_NAME).asString());
        setMiddleName(jwt.getClaim(MIDDLE_NAME).asString());
        setLastName(jwt.getClaim(LAST_NAME).asString());
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(final String userId) {
        this.userId = userId;
    }

    public String[] getRoles() {
        return roles;
    }

    public void setRoles(final String[] roles) {
        this.roles = roles;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getMiddleName() {
        return middleName;
    }

    public void setMiddleName(String middleName) {
        this.middleName = middleName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy