Interface UserLookupProvider

All Known Subinterfaces:
UserCache, UserProvider
All Known Implementing Classes:
JpaUserProvider, KerberosFederationProvider, LDAPStorageProvider, SSSDFederationProvider, UserCacheSession, UserStorageManager

public interface UserLookupProvider
This is an optional capability interface that is intended to be implemented by any UserStorageProvider that supports basic user querying. You must implement this interface if you want to be able to log in to keycloak using users from your storage.

Note that all methods in this interface should limit search only to data available within the storage that is represented by this provider. They should not lookup other storage providers for additional information. Optional capability interface implemented by UserStorageProviders.

Version:
$Revision: 1 $
Author:
Bill Burke
  • Method Details

    • getUserById

      UserModel getUserById(RealmModel realm, String id)
      Returns a user with the given id belonging to the realm
      Parameters:
      id - id of the user
      realm - the realm model
      Returns:
      found user model, or null if no such user exists
    • getUserByUsername

      UserModel getUserByUsername(RealmModel realm, String username)
      Exact search for a user by its username. Returns a user with the given username belonging to the realm
      Parameters:
      username - (case-sensitivity is controlled by storage)
      realm - the realm model
      Returns:
      found user model, or null if no such user exists
      Throws:
      ModelDuplicateException - when searched with case insensitive mode and there are more users with username which differs only by case
    • getUserByCredential

      default CredentialValidationOutput getUserByCredential(RealmModel realm, CredentialInput input)
    • getUserByEmail

      UserModel getUserByEmail(RealmModel realm, String email)
      Returns a user with the given email belonging to the realm
      Parameters:
      email - email address
      realm - the realm model
      Returns:
      found user model, or null if no such user exists
      Throws:
      ModelDuplicateException - when there are more users with same email