Interface Authentication
- All Known Implementing Classes:
AbstractAuthentication,Auth0Authentication,GenericAuthentication,KeycloakAuthentication,MicrosoftAuthentication
public interface Authentication
The Authentication class provides functionality to authenticate a user with Identity
and verify access tokens.
-
Method Summary
Modifier and TypeMethodDescriptionauthorizeUriBuilder(String redirectUri) Returns a new Authorize uri builder.static Authenticationcreate(IdentityConfiguration configuration) Factory function to create a new authentication instancecom.auth0.jwt.interfaces.DecodedJWTDecodes a token.exchangeAuthCode(AuthCodeDto authCodeDto, String redirectUri) Exchanges provided auth code with access tokens.getAssignedOrganizations(com.auth0.jwt.interfaces.DecodedJWT token) getClientId(String token) Gets the client ID associated to the tokenVerifies the validity of the passed token and return groups assigned to it.Verifies the validity of the passed token and audience and return groups assigned to it.getGroupsInOrganization(String token, String organization) Verifies the validity of the passed token and return groups assigned to it within the organization.getGroupsInOrganization(String token, String audience, String organization) Verifies the validity of the passed token and audience and return groups assigned to it within the organization.getPermissions(String token) Verifies the validity of the passed token and return permissions assigned to it.getPermissions(String token, String audience) Verifies the validity of the passed token and audience and return permissions assigned to it.booleanReturns a true/false indicating if authentication is available or not.booleanisM2MToken(String token) Checks if the token passed in is considered an M2M token.renewToken(String refreshToken) Exchanges provided refresh token with an access tokens.requestToken(String audience) Requests a client token from the cache if available.voidrevokeToken(String refreshToken) Logs out from Identity backend.singleSignOut(String refreshToken, String callbackUrl) Logs out from Identity backend based on the configuration, one of these cases is possible: 1.com.auth0.jwt.interfaces.DecodedJWTverifyAndDecode(String token, String audience) verifyToken(String token) Verifies the validity of the passed token.verifyToken(String token, String organizationId) Verifies the validity of the passed token and organisation.Verifies the validity of the passed token.
-
Method Details
-
create
Factory function to create a new authentication instance- Parameters:
configuration- Identity configuration- Returns:
- Authentication instance
-
isAvailable
boolean isAvailable()Returns a true/false indicating if authentication is available or not.- Returns:
- the availability of authentication
-
authorizeUriBuilder
Returns a new Authorize uri builder. It is used to build the authorize uri for user authentication.- Parameters:
redirectUri- the redirect uri- Returns:
- the authorize uri builder
-
exchangeAuthCode
Exchanges provided auth code with access tokens. The provided redirect uri argument must match the redirect uri that was used to build the authorize uri.- Parameters:
authCodeDto- the auth code dtoredirectUri- the redirect uri- Returns:
- the tokens
- Throws:
CodeExchangeException- if code exchange fails
-
renewToken
Exchanges provided refresh token with an access tokens.- Parameters:
refreshToken- refresh token used for the request- Returns:
- the tokens
- Throws:
IdentityException- if token renewal has failed
-
revokeToken
Logs out from Identity backend. This will invalidate the given refresh token and refresh tokens issued for other applications during the same session. The user's session or access token still has to be deleted by the client application.- Parameters:
refreshToken- refresh token used for the request- Throws:
IdentityException- if token revocation has failed
-
singleSignOut
Logs out from Identity backend based on the configuration, one of these cases is possible: 1. The refresh token is not empty and OP has provided a revoke endpoint, then seerevokeToken(java.lang.String), in this case the method return an empty Optional. 2. end-session endpoint is available, so in this case the url for logout is returned and client should handle the redirection 3. otherwise this method will throw exception- Parameters:
refreshToken- refresh token used for the requestcallbackUrl- the URL to redirect to post-SSO if supported by SSO provider- Throws:
IdentityException- if token revocation has failed or neither revokeorg.apache.commons.lang3.NotImplementedException- if case 3 happens
-
requestToken
Requests a client token from the cache if available. If no token is found with the required audience, a new token will be requested from the authentication provider and stored.- Parameters:
audience- the audience of the resource server- Returns:
- the tokens
- Throws:
IdentityException- if case of a failure
-
decodeJWT
Decodes a token. Can be used to access tokens data without validation- Parameters:
token- token in JWT format- Returns:
- decoded token
- Throws:
TokenDecodeException- the token can not be decoded
-
verifyToken
Verifies the validity of the passed token. Following checks will be performed:- The token is correctly signed
- The token has not expired
- Token's audience (aud claim) matches application's audience
- Parameters:
token- the token- Returns:
- the decoded jwt
- Throws:
TokenDecodeException- the token can not be decodedInvalidSignatureException- the token's signature is invalidTokenExpiredException- the token has expiredInvalidClaimException- the provided claim is invalidJsonWebKeyException- the JWK needed to verify token's signature can not be retrieved
-
verifyToken
Verifies the validity of the passed token and organisation. Following checks will be performed:- The token is correctly signed
- The token has not expired
- Token's audience (aud claim) matches application's audience
- Parameters:
token- the tokenorganizationId- the organisation of the token- Returns:
- the decoded jwt
- Throws:
TokenDecodeException- the token can not be decodedInvalidSignatureException- the token's signature is invalidTokenExpiredException- the token has expiredInvalidClaimException- the provided claim is invalidJsonWebKeyException- the JWK needed to verify token's signature can not be retrieved
-
verifyTokenIgnoringAudience
Verifies the validity of the passed token. Following checks will be performed:- The token is correctly signed
- The token has not expired
- Parameters:
token- the token- Returns:
- the decoded jwt
- Throws:
TokenDecodeException- the token can not be decodedInvalidSignatureException- the token's signature is invalidTokenExpiredException- the token has expiredInvalidClaimException- the provided claim is invalidJsonWebKeyException- the JWK needed to verify token's signature can not be retrieved
-
isM2MToken
Checks if the token passed in is considered an M2M token.- Parameters:
token- the token- Returns:
- true if the token is a M2M token, else false
-
getClientId
Gets the client ID associated to the token- Parameters:
token- the token- Returns:
- the clientID
-
verifyAndDecode
-
getAssignedOrganizations
-
getPermissions
Verifies the validity of the passed token and return permissions assigned to it. Following checks will be performed:- The token is correctly signed
- The token has not expired
- Token's audience (aud claim) matches application's audience
- Parameters:
token- the token- Returns:
- list of permissions assigned to the token
- Throws:
TokenDecodeException- the token can not be decodedInvalidSignatureException- the token's signature is invalidTokenExpiredException- the token has expiredInvalidClaimException- the provided claim is invalidJsonWebKeyException- the JWK needed to verify token's signature can not be retrieved
-
getPermissions
Verifies the validity of the passed token and audience and return permissions assigned to it. Following checks will be performed:- The token is correctly signed
- The token has not expired
- Token's audience (aud claim) matches application's audience
- Parameters:
token- the tokenaudience- the audience- Returns:
- list of permissions assigned to the token
- Throws:
TokenDecodeException- the token can not be decodedInvalidSignatureException- the token's signature is invalidTokenExpiredException- the token has expiredInvalidClaimException- the provided claim is invalidJsonWebKeyException- the JWK needed to verify token's signature can not be retrieved
-
getGroups
Verifies the validity of the passed token and return groups assigned to it. Following checks will be performed:- The token is correctly signed
- The token has not expired
- Token's audience (aud claim) matches application's audience
- Parameters:
token- the token- Returns:
- list of groups assigned to the token
- Throws:
TokenDecodeException- the token can not be decodedInvalidSignatureException- the token's signature is invalidTokenExpiredException- the token has expiredInvalidClaimException- the provided claim is invalidJsonWebKeyException- the JWK needed to verify token's signature can not be retrieved
-
getGroups
Verifies the validity of the passed token and audience and return groups assigned to it. Following checks will be performed:- The token is correctly signed
- The token has not expired
- Token's audience (aud claim) matches application's audience
- Parameters:
token- the tokenaudience- the audience- Returns:
- list of groups assigned to the token
- Throws:
TokenDecodeException- the token can not be decodedInvalidSignatureException- the token's signature is invalidTokenExpiredException- the token has expiredInvalidClaimException- the provided claim is invalidJsonWebKeyException- the JWK needed to verify token's signature can not be retrieved
-
getGroupsInOrganization
Verifies the validity of the passed token and return groups assigned to it within the organization. Following checks will be performed:- The token is correctly signed
- The token has not expired
- Token's audience (aud claim) matches application's audience
- Parameters:
token- the tokenorganization- the organization- Returns:
- list of groups assigned to the token within the organization. If organization is null, it returns groups that has no organization assigned to them.
- Throws:
TokenDecodeException- the token can not be decodedInvalidSignatureException- the token's signature is invalidTokenExpiredException- the token has expiredInvalidClaimException- the provided claim is invalidJsonWebKeyException- the JWK needed to verify token's signature can not be retrieved
-
getGroupsInOrganization
Verifies the validity of the passed token and audience and return groups assigned to it within the organization. Following checks will be performed:- The token is correctly signed
- The token has not expired
- Token's audience (aud claim) matches application's audience
- Parameters:
token- the tokenaudience- the audienceorganization- the organization- Returns:
- list of groups assigned to the token within the organization. If organization is null, it returns groups that has no organization assigned to them.
- Throws:
TokenDecodeException- the token can not be decodedInvalidSignatureException- the token's signature is invalidTokenExpiredException- the token has expiredInvalidClaimException- the provided claim is invalidJsonWebKeyException- the JWK needed to verify token's signature can not be retrieved
-