Package org.gcube.common.iam
Interface IAMResponse
- All Known Implementing Classes:
AbstractIAMResponse,D4ScienceIAMClientAuthn,D4ScienceIAMClientAuthn4Client,D4ScienceIAMClientAuthn4User,D4ScienceIAMClientAuthz,OIDCBearerAuth
public interface IAMResponse
Interface for D4Science IAM response handling.
Provides methods to access tokens, custom claims, and authentication information.
- Author:
- Luca Frosini (ISTI-CNR)
-
Method Summary
Modifier and TypeMethodDescriptionbooleanCheck if the current response can be refreshedorg.gcube.common.keycloak.model.AccessTokenReturns the access token in the response.Returns the access token in the response as string.Returns the client's contact organization from the tokenReturns the client's contact person from the tokenReturns the resource roles for the resource specified in the token contextReturns the realm roles in the tokengetName()Returns the client's name from the tokengetResourceRoles(String resource) Returns the resource roles for the resource specified in the resource parametergetRoles()Returns all the roles, realm and from all the resources in the token in the same setbooleanQuick way to check if the access token is valid by checking the digital signature and the token expirationbooleanisAccessTokenValid(boolean checkExpiration) Quick way to check if the access token is valid by checking the digital signature and the token expiration if thecheckExpirationparameter istruebooleanCheck if the current response is expiredbooleanQuick way to check if the refresh token present in the current response and it is valid by checking the digital signature and the token expirationbooleanisRefreshTokenValid(boolean checkExpiration) Quick way to check if the refresh token present in the current response and it is valid by checking the digital signature and the token expiration if thecheckExpirationparameter istruevoidrefresh()Refreshes the current response, new data can be obtained again with accessors.voidVerifies the access token integrity and validity; token digital signature and expiration are reported via specific exceptions.voidVerifies the refresh token integrity and validity; token digital signature and expiration are reported via specific exceptions.
-
Method Details
-
getAccessToken
Returns the access token in the response.- Returns:
- The access token
- Throws:
D4ScienceIAMClientException- if something goes wrong during the token decoding or JSON parsing
-
getAccessTokenString
String getAccessTokenString()Returns the access token in the response as string.- Returns:
- The access token as string
-
isExpired
Check if the current response is expired- Returns:
trueif the response is expired,falseotherwise- Throws:
D4ScienceIAMClientException- if something goes wrong during the token decoding or JSON parsing
-
canBeRefreshed
Check if the current response can be refreshed- Returns:
trueif the response can be refreshed,falseotherwise- Throws:
D4ScienceIAMClientException- if something goes wrong during the token decoding or JSON parsing
-
refresh
Refreshes the current response, new data can be obtained again with accessors.- Throws:
D4ScienceIAMClientException- if something goes wrong during the token refresh
-
getContextRoles
Returns the resource roles for the resource specified in the token context- Returns:
- the token context's roles
- Throws:
D4ScienceIAMClientException- if something goes wrong during the token decoding or JSON parsing
-
getResourceRoles
Returns the resource roles for the resource specified in the resource parameter- Parameters:
resource- the resource of which obtain the roles- Returns:
- the roles for the resource
- Throws:
D4ScienceIAMClientException- if something goes wrong during the token decoding or JSON parsing
-
getRoles
Returns all the roles, realm and from all the resources in the token in the same set- Returns:
- the union of all the roles in the token
- Throws:
D4ScienceIAMClientException- if something goes wrong during the token decoding or JSON parsing
-
getGlobalRoles
Returns the realm roles in the token- Returns:
- the realm roles
- Throws:
D4ScienceIAMClientException- if something goes wrong during the token decoding or JSON parsing
-
getContactOrganization
Returns the client's contact organization from the token- Returns:
- the contact organization string
- Throws:
D4ScienceIAMClientException- if something goes wrong during the token decoding or JSON parsing
-
getContactPerson
Returns the client's contact person from the token- Returns:
- the contact person string
- Throws:
D4ScienceIAMClientException- if something goes wrong during the token decoding or JSON parsing
-
getName
Returns the client's name from the token- Returns:
- the name string
- Throws:
D4ScienceIAMClientException- if something goes wrong during the token decoding or JSON parsing
-
isAccessTokenValid
Quick way to check if the access token is valid by checking the digital signature and the token expiration- Returns:
trueif the access token is valid,falseotherwise- Throws:
D4ScienceIAMClientException- if something goes wrong during the token validity checks
-
isAccessTokenValid
Quick way to check if the access token is valid by checking the digital signature and the token expiration if thecheckExpirationparameter istrue- Parameters:
checkExpiration- checks also if the token is expired- Returns:
trueif the access token is valid,falseotherwise- Throws:
D4ScienceIAMClientException- if something goes wrong during the token validity checks
-
verifyAccessToken
void verifyAccessToken() throws org.gcube.io.jsonwebtoken.security.SignatureException, org.gcube.io.jsonwebtoken.ExpiredJwtException, D4ScienceIAMClientExceptionVerifies the access token integrity and validity; token digital signature and expiration are reported via specific exceptions.- Throws:
org.gcube.io.jsonwebtoken.security.SignatureException- if the token has been tampered and/or signature is invalidorg.gcube.io.jsonwebtoken.ExpiredJwtException- if the token validity is expiredD4ScienceIAMClientException- if something else goes wrong during the token verification
-
isRefreshTokenValid
Quick way to check if the refresh token present in the current response and it is valid by checking the digital signature and the token expiration- Returns:
trueif the refresh token is valid,falseotherwise- Throws:
D4ScienceIAMClientException- if something goes wrong during the token validity checks
-
isRefreshTokenValid
Quick way to check if the refresh token present in the current response and it is valid by checking the digital signature and the token expiration if thecheckExpirationparameter istrue- Parameters:
checkExpiration- checks also if the token is expired- Returns:
trueif the refresh token is valid,falseotherwise- Throws:
D4ScienceIAMClientException- if something goes wrong during the token validity checks
-
verifyRefreshToken
void verifyRefreshToken() throws org.gcube.io.jsonwebtoken.security.SignatureException, org.gcube.io.jsonwebtoken.ExpiredJwtException, D4ScienceIAMClientExceptionVerifies the refresh token integrity and validity; token digital signature and expiration are reported via specific exceptions.- Throws:
org.gcube.io.jsonwebtoken.security.SignatureException- if the token has been tampered and/or signature is invalidorg.gcube.io.jsonwebtoken.ExpiredJwtException- if the token validity is expiredD4ScienceIAMClientException- if something else goes wrong during the token verification
-