Class BasicUserProfile

  • All Implemented Interfaces:
    Externalizable, Serializable, UserProfile
    Direct Known Subclasses:
    CommonProfile

    public class BasicUserProfile
    extends Object
    implements UserProfile, Externalizable
    This class is the user profile retrieved from a provider after successful authentication: it's an identifier (string) and attributes (objects). Additional concepts are the "remember me" nature of the user profile, the associated roles, permissions, client name and linked identifier.
    Since:
    1.0.0
    Author:
    Jerome Leleu
    See Also:
    Serialized Form
    • Field Detail

      • logger

        protected final transient org.slf4j.Logger logger
    • Constructor Detail

      • BasicUserProfile

        public BasicUserProfile()
      • BasicUserProfile

        public BasicUserProfile​(boolean canAttributesBeMerged)
        Create a profile with possibility to merge attributes with the same name and collection-type values.
        Parameters:
        canAttributesBeMerged - if true - merge attributes with the same name and collection-type values, if false - overwrite them
        Since:
        3.1.0
    • Method Detail

      • build

        public void build​(Object id,
                          Map<String,​Object> attributes)
        Build a profile from user identifier and attributes.
        Parameters:
        id - user identifier
        attributes - user attributes
      • build

        public void build​(Object id,
                          Map<String,​Object> attributes,
                          Map<String,​Object> authenticationAttributes)
        Build a profile from user identifier, attributes, and authentication attributes.
        Parameters:
        id - user identifier
        attributes - user attributes
        authenticationAttributes - authentication attributes
      • setId

        public void setId​(String id)
        Set the identifier.
        Parameters:
        id - user identifier
      • getId

        public String getId()
        Get the user identifier. This identifier is unique for this provider but not necessarily through all providers.
        Specified by:
        getId in interface UserProfile
        Returns:
        the user identifier
      • getTypedId

        public String getTypedId()
        Get the user identifier with a prefix which is the profile type (full class name with package). This identifier is unique through all providers.
        Returns:
        the typed user identifier
      • addAttribute

        public void addAttribute​(String key,
                                 Object value)
        Add an attribute. If existing attribute value is collection and the new value is collection - merge the collections
        Parameters:
        key - key of the attribute
        value - value of the attribute
      • addAuthenticationAttribute

        public void addAuthenticationAttribute​(String key,
                                               Object value)
        Add an authentication-related attribute
        Parameters:
        key - the attribute key
        value - the attribute value
      • addAttributes

        public void addAttributes​(Map<String,​Object> attributes)
        Add attributes.
        Parameters:
        attributes - use attributes
      • addAuthenticationAttributes

        public void addAuthenticationAttributes​(Map<String,​Object> attributeMap)
        Add authentication attributes.
        Parameters:
        attributeMap - the authentication attributes
      • removeAttribute

        public void removeAttribute​(String key)
        Remove an attribute by its key.
        Parameters:
        key - the key
      • removeAuthenticationAttribute

        public void removeAuthenticationAttribute​(String key)
        Remove an authentication attribute by its key
        Parameters:
        key - the key
      • getAttributes

        public Map<String,​Object> getAttributes()
        Get all attributes as immutable map.
        Returns:
        the immutable attributes
      • getAuthenticationAttributes

        public Map<String,​Object> getAuthenticationAttributes()
        Get all authentication attributes as an immutable map
        Returns:
        the immutable authentication attributes
      • getAttribute

        public Object getAttribute​(String name)
        Return the attribute with name.
        Specified by:
        getAttribute in interface UserProfile
        Parameters:
        name - attribute name
        Returns:
        the attribute with name
      • getAuthenticationAttribute

        public Object getAuthenticationAttribute​(String name)
        Return the authentication attribute with name.
        Parameters:
        name - authentication attribute name
        Returns:
        the authentication attribute with name
      • containsAttribute

        public boolean containsAttribute​(String name)
        Check to see if profile contains attribute name.
        Specified by:
        containsAttribute in interface UserProfile
        Parameters:
        name - the name
        Returns:
        true/false
      • containsAuthenicationAttribute

        public boolean containsAuthenicationAttribute​(String name)
        Check to see if profile contains attribute name.
        Parameters:
        name - the name
        Returns:
        true/false
      • getAttribute

        public <T> T getAttribute​(String name,
                                  Class<T> clazz)
        Return the attribute with name.
        Type Parameters:
        T - the type of the attribute
        Parameters:
        name - the attribute name
        clazz - the class of the attribute
        Returns:
        the attribute by its name
        Since:
        1.8
      • getAuthenticationAttribute

        public <T> T getAuthenticationAttribute​(String name,
                                                Class<T> clazz)
        Return authentication attribute with name
        Type Parameters:
        T - The type of the authentication attribute
        Parameters:
        name - Name of authentication attribute
        clazz - The class of the authentication attribute
        Returns:
        the named attribute
      • addRole

        public void addRole​(String role)
        Add a role.
        Specified by:
        addRole in interface UserProfile
        Parameters:
        role - the role to add.
      • getRoles

        public Set<String> getRoles()
        Get the roles of the user.
        Specified by:
        getRoles in interface UserProfile
        Returns:
        the user roles.
      • setRoles

        public void setRoles​(Set<String> roles)
      • addPermission

        public void addPermission​(String permission)
        Add a permission.
        Specified by:
        addPermission in interface UserProfile
        Parameters:
        permission - the permission to add.
      • getPermissions

        public Set<String> getPermissions()
        Get the permissions of the user.
        Specified by:
        getPermissions in interface UserProfile
        Returns:
        the user permissions.
      • setPermissions

        public void setPermissions​(Set<String> permissions)
      • setRemembered

        public void setRemembered​(boolean rme)
        Define if this profile is remembered.
        Specified by:
        setRemembered in interface UserProfile
        Parameters:
        rme - whether the user is remembered.
      • isRemembered

        public boolean isRemembered()
        Is the user remembered?
        Specified by:
        isRemembered in interface UserProfile
        Returns:
        whether the user is remembered.
      • clearSensitiveData

        public void clearSensitiveData()
      • getLinkedId

        public String getLinkedId()
      • setLinkedId

        public void setLinkedId​(String linkedId)