Interface UserProfile

All Known Implementing Classes:
DefaultUserProfile

public interface UserProfile

An interface providing as an entry point for managing users.

A UserProfile provides a manageable view for user information that also takes into account the context where it is being used. The context represents the different places in Keycloak where users are created, updated, or validated. Examples of contexts are: managing users through the Admin API, or through the Account API.

By taking the context into account, the state and behavior of UserProfile instances depend on the context they are associated with, where validating, updating, creating, or obtaining representations of users is based on the configuration and constraints associated with a context.

A UserProfile instance can be obtained through the UserProfileProvider.

Author:
Markus Till
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    Creates a new UserModel based on the attributes associated with this instance.
    Returns the attributes associated with this instance.
    void
    update(boolean removeAttributes, AttributeChangeListener... changeListener)
    Updates the UserModel associated with this instance.
    default void
    update(AttributeChangeListener... changeListener)
    The same as #update(boolean, BiConsumer[]) but forcing the removal of attributes.
    void
    Validates the attributes associated with this instance.
  • Method Details

    • validate

      void validate() throws ValidationException
      Validates the attributes associated with this instance.
      Throws:
      ValidationException - in case
    • create

      Creates a new UserModel based on the attributes associated with this instance.
      Returns:
      the UserModel instance created from this profile
      Throws:
      ValidationException - in case validation fails
    • update

      void update(boolean removeAttributes, AttributeChangeListener... changeListener) throws ValidationException

      Updates the UserModel associated with this instance. If no UserModel is associated with this instance, this operation has no effect.

      Before updating the UserModel, this method first checks whether the validate() method was previously invoked. If not, the validation step is performed prior to updating the model.

      Parameters:
      removeAttributes - if attributes should be removed from the UserModel if they are not among the attributes associated with this instance.
      changeListener - a set of one or more listeners to listen for attribute changes
      Throws:
      ValidationException - in case of any validation error
    • update

      default void update(AttributeChangeListener... changeListener) throws ValidationException, RuntimeException

      The same as #update(boolean, BiConsumer[]) but forcing the removal of attributes.

      Parameters:
      changeListener - a set of one or more listeners to listen for attribute changes
      Throws:
      ValidationException - in case of any validation error
      RuntimeException
    • getAttributes

      Attributes getAttributes()
      Returns the attributes associated with this instance. Note that the attributes returned by this method are not necessarily the same from the UserModel, but those that should be validated and possibly updated to the UserModel.
      Returns:
      the attributes associated with this instance.