Class AuthenticationAPI
java.lang.Object
de.xima.fc.api.ASubAPI
de.xima.fc.api.system.AuthenticationAPI
- Author:
- XIMA MEDIA GmbH
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionChecks if two-factor authentication is required for the given user.getActiveClientDescriptor(UserContext uc, String clientName) Returns the client descriptor for the given client name.getActiveClientDescriptors(UserContext uc, Set<String> clientNames) Returns the client descriptors for the given client names.getAuthenticator(UserContext uc, UUID callbackUuid) Finds all active client descriptors that are configured for the backend in order.Finds all active client descriptors that are configured for the backend and require direct input of creadentials (in order).Finds all active client descriptors that are configured for the backend and redirect the user to an external IDP (in order).getClientDescriptorByProfile(UserContext uc, String clientName) Returns theclientfor the given client name.getClientDescriptorsByTenant(UserContext uc, UUID tenantUuid) getClientDescriptorsByUserPortal(UserContext uc, UserPortal userPortal, int page, int pageSize) getClientDescriptorsByUserPortal(UserContext uc, UUID userPortalUuid, int page, int pageSize) getClientNamesByUserPortalAlias(UserContext uc, String portalAlias) Finds all active client descriptors that are available for the REST API.org.pac4j.core.profile.UserProfilegetUserProfileByCredentials(UserContext uc, UUID callbackUuid, String userName, String password) Gets the user profile for the given authenticator.booleanhasReachedMaxTokenLimit(IUser user) Returns whether the user has reached the maximum number of temporary MFA tokens allowed.booleanChecks if two-factor authentication is required for the given user.loadAuthenticationData(UserContext uc, AuthenticationDataRequest request) refreshMfaTempToken(String token) verifyMfaCode(String code, String tempToken, boolean saveAuthentication) Verifies the provided MFA code against a temporary token.Methods inherited from class ASubAPI
getHandlerProvider
-
Constructor Details
-
AuthenticationAPI
public AuthenticationAPI()
-
-
Method Details
-
checkTwoFactorAuthentication
public Optional<MfaTempTokenInfoDto> checkTwoFactorAuthentication(IUser user) throws UserMfaTempTokenMaxException Checks if two-factor authentication is required for the given user.- Parameters:
user- the user to check- Returns:
- an Optional containing a TwoFactorAuthenticationRequiredDto if two-factor authentication is required, or an empty Optional if it is not required
- Throws:
UserMfaTempTokenMaxException- Since:
- 8.4.0
- See Also:
-
getActiveClientDescriptor
Returns the client descriptor for the given client name. The client needs to be active.- Parameters:
uc- user context for accessing the database.clientName- name of the client.- Returns:
- the client descriptor for the given client name iff it is active and
nullotherwise. - Since:
- 8.0.0
-
getActiveClientDescriptors
public Map<String, IClientDescriptor> getActiveClientDescriptors(UserContext uc, Set<String> clientNames) Returns the client descriptors for the given client names. The clients need to be active.- Parameters:
uc- user context for accessing the database.clientNames- names of the clients.- Returns:
- the client descriptors for the given client names iff they are active as a map. The keys of the map entries are the client names.
- Since:
- 8.0.0
-
getAuthenticator
-
getBackendClientDescriptors
Finds all active client descriptors that are configured for the backend in order. Clients with credentials authenticators are at the beginning of the list.- Parameters:
uc- user context for accessing the database.- Returns:
- ordered list of all client descriptors configured for the backend.
- Since:
- 8.0.0
-
getBackendInputClientDescriptors
Finds all active client descriptors that are configured for the backend and require direct input of creadentials (in order).- Parameters:
uc- user context for accessing the database.- Returns:
- ordered list of all active client descriptors configured for the backend that require direct input of user credentials.
-
getBackendRedirectClientDescriptors
Finds all active client descriptors that are configured for the backend and redirect the user to an external IDP (in order).- Parameters:
uc- user context for accessing the database.- Returns:
- ordered list of all active client descriptors configured for the backend and redirect the user to an external IDP.
- Since:
- 8.0.0
-
getClientDescriptorByProfile
Returns theclientfor the given client name.- Parameters:
uc- user context for accessing the database.clientName- name of the client (callback UUID or authentication client type nam).- Returns:
- the pac4j client for the given client name or
nullif none could be found. - Since:
- 8.0.0
-
getClientDescriptorsByTenant
-
getClientDescriptorsByUserPortal
public PagedResult<IClientDescriptor> getClientDescriptorsByUserPortal(UserContext uc, UserPortal userPortal, int page, int pageSize) - Since:
- 8.2.0
- See Also:
-
getClientDescriptorsByUserPortal
public PagedResult<IClientDescriptor> getClientDescriptorsByUserPortal(UserContext uc, UUID userPortalUuid, int page, int pageSize) - Since:
- 8.4.0
- See Also:
-
getClientNamesByUserPortalAlias
-
getRestClientDescriptors
Finds all active client descriptors that are available for the REST API.- Parameters:
uc- user context for accessing the database.- Returns:
- a set of all active client descriptors available for the REST API.
- Since:
- 8.2.0
-
getUserProfileByCredentials
public org.pac4j.core.profile.UserProfile getUserProfileByCredentials(UserContext uc, UUID callbackUuid, String userName, String password) Gets the user profile for the given authenticator. Only allowed for LDAP authenticators at the moment.- Parameters:
uc- user context for accessing the database.callbackUuid- callback UUID of the authenticatoruserName- of the userpassword- of the user- Returns:
- the pac4j
UserProfileof the user if the user was successfully validated. - Since:
- 8.0.0
-
isTwoFactorAuthenticationRequired
Checks if two-factor authentication is required for the given user.- Parameters:
user- the user to check- Returns:
- true if two-factor authentication is required, false otherwise
- Throws:
IllegalArgumentException- if the user is null or not authenticated- Since:
- 8.4.0
-
hasReachedMaxTokenLimit
Returns whether the user has reached the maximum number of temporary MFA tokens allowed.- Parameters:
user- the user to check for maximum token limit- Returns:
- true if the user has reached the maximum token limit, false otherwise
- Throws:
IllegalArgumentException- if the user is null or does not have a profile
-
loadAuthenticationData
-
refreshMfaTempToken
public MfaTempTokenInfoDto refreshMfaTempToken(String token) throws UserMfaTempTokenNotFoundException, UserMfaTempTokenMaxException, UserMfaTempTokenExpiredException -
verifyMfaCode
public MfaVerificationResultDto verifyMfaCode(String code, String tempToken, boolean saveAuthentication) throws UserMfaTempTokenNotFoundException, UserMfaTempTokenMaxException, UserMfaTempTokenExpiredException Verifies the provided MFA code against a temporary token.- Parameters:
code- the MFA code to verifytempToken- the temporary token associated with the MFA codesaveAuthentication- whether to save the authentication state if the code is valid- Returns:
- the result of the MFA verification, containing details about the verification process
- Throws:
UserMfaTempTokenNotFoundException- if the temporary token is not foundUserMfaTempTokenMaxException- if the maximum number of verification attempts for the temporary token has been reachedUserMfaTempTokenExpiredException- if the temporary token has expired- Since:
- 8.4.0
-