Package org.gcube.common.keycloak
Interface KeycloakClient
-
- All Known Implementing Classes:
DefaultKeycloakClient
public interface KeycloakClient
-
-
Field Summary
Fields Modifier and Type Field Description static StringAVATAR_URI_PATHstatic StringD4S_CONTEXT_HEADER_NAMEstatic StringD4S_DYNAMIC_SCOPE_NAMEstatic StringD4S_DYNAMIC_SCOPE_NAME_TOKEN_CLAIMstatic StringD4S_EU_EXTENDED_PROFILE_SCOPEstatic StringD4S_IDENTITY_SCOPEstatic StringDEFAULT_DYNAMIC_SCOPE_SEPARATORstatic StringDEFAULT_REALMstatic StringJWK_URI_PATHstatic StringOPEN_ID_URI_PATHstatic StringPROD_ROOT_SCOPEstatic StringTOKEN_INTROSPECT_URI_PATHstatic StringTOKEN_URI_PATH
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description KeycloakClientaddDynamicScope(String dynamicScope, String value)Adds the dynamic scope to the list of scopes to use for the next OIDC token requestsKeycloakClientaddScopes(List<String> scopes)Adds the provided OIDC scopes to the list of scopes to use for the next OIDC token requestsURLcomputeIntrospectionEndpointURL(URL tokenEndpointURL)Compute the keycloakintrospectionendpointURLstarting from the provided token endpoint.TokenResponseexchangeTokenForAccessToken(String context, String oidcAccessToken, String clientId, String clientSecret, String audience)Exchanges a token for another access token for a specific client and a specific audienceTokenResponseexchangeTokenForAccessToken(URL tokenURL, String oidcAccessToken, String clientId, String clientSecret, String audience)Exchanges a token for another access token for a specific client and a specific audienceTokenResponseexchangeTokenForOfflineToken(String context, String oidcAccessToken, String clientId, String clientSecret, String audience)Exchanges a token for another access and an offline refresh tokens for a specific client and a specific audience The refresh token will be of the offline type only if the original token has theoffline_accesswithin its scopesTokenResponseexchangeTokenForOfflineToken(URL tokenURL, String oidcAccessToken, String clientId, String clientSecret, String audience)Exchanges a token for another access and an offline refresh tokens for a specific client and a specific audience The refresh token will be of the offline type only if the original token has the scopeoffline_accesswithin its scopesTokenResponseexchangeTokenForRefreshToken(String context, String oidcAccessToken, String clientId, String clientSecret, String audience)Exchanges a token for another access and a refresh tokens for a specific client and a specific audienceTokenResponseexchangeTokenForRefreshToken(URL tokenURL, String oidcAccessToken, String clientId, String clientSecret, String audience)Exchanges a token for another access and a refresh tokens for a specific client and a specific audiencebyte[]getAvatarData(String context, TokenResponse tokenResponse)Retrieves the user's avatar image data from Keycloak server.byte[]getAvatarData(URL avatarURL, String authorization)Retrieves the user's avatar image data from Keycloak server.byte[]getAvatarData(URL avatarURL, TokenResponse tokenResponse)Retrieves the user's avatar image data from Keycloak server.URLgetAvatarEndpointURL(URL realmBaseURL)Constructs the KeycloakavatarendpointURLfrom the realm's base URL.URLgetIntrospectionEndpointURL(URL realmBaseURL)Constructs the KeycloakintrospectionendpointURLfrom the realm's base URL.URLgetJWKEndpointURL(URL realmBaseURL)Constructs the KeycloakJWKendpointURLfrom the realm's base URL.URLgetRealmBaseURL(String context)Returns the Keycloak baseURLfor the given context and the default realm (d4science)URLgetRealmBaseURL(String context, String realm)Returns the Keycloak baseURLfor the given context and in the given realm.PublishedRealmRepresentationgetRealmInfo(URL realmURL)Gets the realm info setup (RSApublic_key,token-serviceURL,account-serviceURL andtokens-not-beforesetting)JSONWebKeySetgetRealmJSONWebKeySet(URL jwkURL)Loads the actual JWK from the Keycloak serverURLgetTokenEndpointURL(URL realmBaseURL)Constructs the KeycloaktokenendpointURLfrom the realm's base URL.TokenIntrospectionResponseintrospectAccessToken(String context, String clientId, String clientSecret, String accessTokenJWTString)Introspects an access token against the Keycloak server.TokenIntrospectionResponseintrospectAccessToken(URL introspectionURL, String clientId, String clientSecret, String accessTokenJWTString)Introspects an access token against the Keycloak server.booleanisAccessTokenVerified(String context, String clientId, String clientSecret, String accessTokenJWTString)Verifies an access token against the Keycloak server.booleanisAccessTokenVerified(URL introspectionURL, String clientId, String clientSecret, String accessTokenJWTString)Verifies an access token against the Keycloak server.TokenResponsequeryOIDCToken(String context, String authorization)Queries an OIDC token from the Keycloak server, by using provided authorization.TokenResponsequeryOIDCToken(String context, String clientId, String clientSecret)Queries an OIDC token from the context's Keycloak server, by using provided clientId and client secret.TokenResponsequeryOIDCToken(String context, String clientId, String clientSecret, Map<String,String> extraHeaders)Queries an OIDC token from the context's Keycloak server, by using provided clientId and client secret.TokenResponsequeryOIDCToken(String context, String authorization, Map<String,String> extraHeaders)Queries an OIDC token from the Keycloak server, by using provided authorization.TokenResponsequeryOIDCToken(URL tokenURL, String authorization)Queries an OIDC token from the Keycloak server, by using provided authorization.TokenResponsequeryOIDCToken(URL tokenURL, String clientId, String clientSecret)Queries an OIDC token from the Keycloak server, by using provided clientId and client secret.TokenResponsequeryOIDCToken(URL tokenURL, String clientId, String clientSecret, Map<String,String> extraHeaders)Queries an OIDC token from the Keycloak server, by using provided clientId and client secret.TokenResponsequeryOIDCToken(URL tokenURL, String authorization, Map<String,String> extraHeaders)Queries an OIDC token from the Keycloak server, by using provided authorization.TokenResponsequeryOIDCTokenOfUser(String context, String clientId, String clientSecret, String username, String password)Queries an OIDC token for a specific user from the context's Keycloak server, by using provided clientId and client secret and user's username and password.TokenResponsequeryOIDCTokenOfUser(String context, String clientId, String clientSecret, String username, String password, Map<String,String> extraHeaders)Queries an OIDC token for a specific user from the context's Keycloak server, by using provided clientId and client secret and user's username and password.TokenResponsequeryOIDCTokenOfUserWithContext(String context, String authorization, String username, String password, String audience)Queries an OIDC token for a specific user from the context's Keycloak server, by using provided clientId and client secret and user's username and password.TokenResponsequeryOIDCTokenOfUserWithContext(String context, String clientId, String clientSecret, String username, String password, String audience)Queries an OIDC token for a specific user from the Keycloak server, by using provided clientId and client secret and user's username and password, reducing the audience to the requested one.TokenResponsequeryOIDCTokenOfUserWithContext(String context, String clientId, String clientSecret, String username, String password, String audience, Map<String,String> extraHeaders)Queries an OIDC token for a specific user from the Keycloak server, by using provided clientId and client secret and user's username and password, reducing the audience to the requested one.TokenResponsequeryOIDCTokenOfUserWithContext(String context, String authorization, String username, String password, String audience, Map<String,String> extraHeaders)Queries an OIDC token for a specific user from the context's Keycloak server, by using provided clientId and client secret and user's username and password.TokenResponsequeryOIDCTokenOfUserWithContext(URL tokenURL, String authorization, String username, String password, String audience)Queries an OIDC token for a specific user from the context's Keycloak server, by using provided clientId and client secret and user's username and password.TokenResponsequeryOIDCTokenOfUserWithContext(URL tokenURL, String clientId, String clientSecret, String username, String password, String audience)Queries an OIDC token for a specific user from the context's Keycloak server, by using provided clientId and client secret and user's username and password, reducing the audience to the requested one.TokenResponsequeryOIDCTokenOfUserWithContext(URL tokenURL, String clientId, String clientSecret, String username, String password, String audience, Map<String,String> extraHeaders)Queries an OIDC token for a specific user from the context's Keycloak server, by using provided clientId and client secret and user's username and password, , reducing the audience to the requested one.TokenResponsequeryOIDCTokenOfUserWithContext(URL tokenURL, String authorization, String username, String password, String audience, Map<String,String> extraHeaders)Queries an OIDC token for a specific user from the context's Keycloak server, by using provided clientId and client secret and user's username and password.TokenResponsequeryOIDCTokenWithContext(String context, String authorization, String audience)Queries an OIDC token from the Keycloak server, by using provided authorization, reducing the audience to the requested one.TokenResponsequeryOIDCTokenWithContext(String context, String clientId, String clientSecret, String audience)Queries an OIDC token from the context's Keycloak server, by using provided clientId and client secret, reducing the audience to the requested one.TokenResponsequeryOIDCTokenWithContext(String context, String clientId, String clientSecret, String audience, Map<String,String> extraHeaders)Queries an OIDC token from the context's Keycloak server, by using provided clientId and client secret, reducing the audience to the requested one.TokenResponsequeryOIDCTokenWithContext(String context, String authorization, String audience, Map<String,String> extraHeaders)Queries an OIDC token from the Keycloak server, by using provided authorization, reducing the audience to the requested one.TokenResponsequeryOIDCTokenWithContext(URL tokenURL, String authorization, String audience)Queries an OIDC token from the Keycloak server, by using provided authorization, reducing the audience to the requested one.TokenResponsequeryOIDCTokenWithContext(URL tokenURL, String clientId, String clientSecret, String audience)Queries an OIDC token from the Keycloak server, by using provided clientId and client secret, reducing the audience to the requested one.TokenResponsequeryOIDCTokenWithContext(URL tokenURL, String clientId, String clientSecret, String audience, Map<String,String> extraHeaders)Queries an OIDC token from the Keycloak server, by using provided clientId and client secret, reducing the audience to the requested one.TokenResponsequeryOIDCTokenWithContext(URL tokenURL, String authorization, String audience, Map<String,String> extraHeaders)Queries an OIDC token from the Keycloak server, by using provided authorization, reducing the audience to the requested one.TokenResponsequeryUMAToken(String context, String clientId, String clientSecret, String audience, List<String> permissions)Queries an UMA token from the Keycloak server, by using provided clientId and client secret for the given audience (context), in URLEncoded form or not, and optionally a list of permissions.TokenResponsequeryUMAToken(String context, String authorization, String audience, List<String> permissions)Queries an UMA token from the Keycloak server, by using provided authorization, for the given audience (context), in URLEncoded form or not, and optionally a list of permissions.TokenResponsequeryUMAToken(String context, TokenResponse oidcTokenResponse, String audience, List<String> permissions)Queries an UMA token from the Keycloak server, by using access-token provided by theTokenResponseobject for the given audience (context), in URLEncoded form or not, and optionally a list of permissions.TokenResponsequeryUMAToken(URL tokenURL, String clientId, String clientSecret, String audience, List<String> permissions)Queries an UMA token from the Keycloak server, by using provided clientId and client secret for the given audience (context), in URLEncoded form or not, and optionally a list of permissions.TokenResponsequeryUMAToken(URL tokenURL, String authorization, String audience, List<String> permissions)Queries an UMA token from the Keycloak server, by using provided authorization, for the given audience (context), in URLEncoded form or not, and optionally a list of permissions.TokenResponsequeryUMAToken(URL tokenURL, TokenResponse oidcTokenResponse, String audience, List<String> permissions)Queries an UMA token from the Keycloak server, by using access-token provided by theTokenResponseobject for the given audience (context), in URLEncoded form or not, and optionally a list of permissions.TokenResponserefreshToken(String context, String clientId, String clientSecret, String refreshTokenJWTString)Refreshes a previously issued token from the Keycloak server by using the client id and secret and the refresh token JWT encoded string obtained with the access token in the previous token response.TokenResponserefreshToken(String context, String clientId, String clientSecret, TokenResponse tokenResponse)Refreshes a previously issued token from the Keycloak server using the refresh token JWT encoded string in the token response object and the provided client id and secret.TokenResponserefreshToken(String context, TokenResponse tokenResponse)Refreshes a previously issued token from the Keycloak server using the refresh token JWT encoded string in the token response object.TokenResponserefreshToken(URL tokenURL, String clientId, String clientSecret, String refreshTokenJWTString)Refreshes a previously issued token from the Keycloak server by using the client id and secret and the refresh token JWT encoded string obtained with the access token in the previous token response.TokenResponserefreshToken(URL tokenURL, String clientId, String clientSecret, TokenResponse tokenResponse)Refreshes a previously issued token from the Keycloak server using the refresh token JWT encoded string in the token response object and the provided client id and secret.TokenResponserefreshToken(URL tokenURL, TokenResponse tokenResponse)Refreshes a previously issued token from the Keycloak server using the refresh token JWT encoded string in the token response object.KeycloakClientremoveAllScopes()Removes all the custom OIDC scopes from the list of scopes to use the next OIDC token requestsKeycloakClientremoveScopes(List<String> scopes)Removes the provided OIDC scopes from the list of scopes to use for the next OIDC token requestsKeycloakClientuseDynamicScopeInsteadOfCustomHeaderForContextRestricion(boolean useDynamicScopeInsteadOfCustomHeaderForContextRestricion)Sets a flag to use dynamic scope (D4S_DYNAMIC_SCOPE_NAME= "d4s-context") instead of custom header (D4S_CONTEXT_HEADER_NAME= "x-d4science-context") when an OIDC token with context is usedKeycloakClientuseScopes(List<String> scopes)Replaces the list of the provided OIDC scopes for the next OIDC token requests
-
-
-
Field Detail
-
PROD_ROOT_SCOPE
static final String PROD_ROOT_SCOPE
- See Also:
- Constant Field Values
-
OPEN_ID_URI_PATH
static final String OPEN_ID_URI_PATH
- See Also:
- Constant Field Values
-
TOKEN_URI_PATH
static final String TOKEN_URI_PATH
- See Also:
- Constant Field Values
-
JWK_URI_PATH
static final String JWK_URI_PATH
- See Also:
- Constant Field Values
-
TOKEN_INTROSPECT_URI_PATH
static final String TOKEN_INTROSPECT_URI_PATH
- See Also:
- Constant Field Values
-
AVATAR_URI_PATH
static final String AVATAR_URI_PATH
- See Also:
- Constant Field Values
-
D4S_CONTEXT_HEADER_NAME
static final String D4S_CONTEXT_HEADER_NAME
- See Also:
- Constant Field Values
-
D4S_IDENTITY_SCOPE
static final String D4S_IDENTITY_SCOPE
- See Also:
- Constant Field Values
-
D4S_EU_EXTENDED_PROFILE_SCOPE
static final String D4S_EU_EXTENDED_PROFILE_SCOPE
- See Also:
- Constant Field Values
-
D4S_DYNAMIC_SCOPE_NAME
static final String D4S_DYNAMIC_SCOPE_NAME
- See Also:
- Constant Field Values
-
D4S_DYNAMIC_SCOPE_NAME_TOKEN_CLAIM
static final String D4S_DYNAMIC_SCOPE_NAME_TOKEN_CLAIM
- See Also:
- Constant Field Values
-
DEFAULT_DYNAMIC_SCOPE_SEPARATOR
static final String DEFAULT_DYNAMIC_SCOPE_SEPARATOR
- See Also:
- Constant Field Values
-
DEFAULT_REALM
static final String DEFAULT_REALM
- See Also:
- Constant Field Values
-
-
Method Detail
-
useScopes
KeycloakClient useScopes(List<String> scopes)
Replaces the list of the provided OIDC scopes for the next OIDC token requests- Parameters:
scopes- the list of scopes to use in the calls- Returns:
- the client itself
-
addScopes
KeycloakClient addScopes(List<String> scopes)
Adds the provided OIDC scopes to the list of scopes to use for the next OIDC token requests- Parameters:
scopes- the list of scopes to add- Returns:
- the client itself
-
addDynamicScope
KeycloakClient addDynamicScope(String dynamicScope, String value)
Adds the dynamic scope to the list of scopes to use for the next OIDC token requests- Parameters:
dynamicScope- the dynamic scope that will be the prefixvalue- the value of the dynamic scope- Returns:
- the client itself
-
removeScopes
KeycloakClient removeScopes(List<String> scopes)
Removes the provided OIDC scopes from the list of scopes to use for the next OIDC token requests- Parameters:
scopes- the list of scopes to remove- Returns:
- the client itself
-
removeAllScopes
KeycloakClient removeAllScopes()
Removes all the custom OIDC scopes from the list of scopes to use the next OIDC token requests- Returns:
- the client itself
-
useDynamicScopeInsteadOfCustomHeaderForContextRestricion
KeycloakClient useDynamicScopeInsteadOfCustomHeaderForContextRestricion(boolean useDynamicScopeInsteadOfCustomHeaderForContextRestricion)
Sets a flag to use dynamic scope (D4S_DYNAMIC_SCOPE_NAME= "d4s-context") instead of custom header (D4S_CONTEXT_HEADER_NAME= "x-d4science-context") when an OIDC token with context is used- Parameters:
useDynamicScopeInsteadOfCustomHeaderForContextRestricion- use or not use dynamic scope- Returns:
- the client itself
-
getRealmBaseURL
URL getRealmBaseURL(String context) throws KeycloakClientException
Returns the Keycloak baseURLfor the given context and the default realm (d4science)- Parameters:
context- the context where the endpoint is needed (e.g./gcubefor DEV)- Returns:
- the Keycloak
tokenendpoint URL - Throws:
KeycloakClientException- if something goes wrong discovering the endpoint URL
-
getRealmBaseURL
URL getRealmBaseURL(String context, String realm) throws KeycloakClientException
Returns the Keycloak baseURLfor the given context and in the given realm.- Parameters:
context- the context where the endpoint is needed (e.g./gcubefor DEV)realm- the realm to use to construct the base URL- Returns:
- the Keycloak
tokenendpoint URL - Throws:
KeycloakClientException- if something goes wrong discovering the endpoint URL
-
getTokenEndpointURL
URL getTokenEndpointURL(URL realmBaseURL) throws KeycloakClientException
Constructs the KeycloaktokenendpointURLfrom the realm's base URL.- Parameters:
realmBaseURL- the realm's base URL to use- Returns:
- the Keycloak
tokenendpoint URL - Throws:
KeycloakClientException- if something goes wrong discovering the endpoint URL
-
getJWKEndpointURL
URL getJWKEndpointURL(URL realmBaseURL) throws KeycloakClientException
Constructs the KeycloakJWKendpointURLfrom the realm's base URL.- Parameters:
realmBaseURL- the realm's base URL to use- Returns:
- the Keycloak
JWKendpoint URL - Throws:
KeycloakClientException- if something goes wrong discovering the endpoint URL
-
getIntrospectionEndpointURL
URL getIntrospectionEndpointURL(URL realmBaseURL) throws KeycloakClientException
Constructs the KeycloakintrospectionendpointURLfrom the realm's base URL.- Parameters:
realmBaseURL- the realm's base URL to use- Returns:
- the Keycloak
introspectionendpoint URL - Throws:
KeycloakClientException- if something goes wrong discovering the endpoint URL
-
computeIntrospectionEndpointURL
URL computeIntrospectionEndpointURL(URL tokenEndpointURL) throws KeycloakClientException
Compute the keycloakintrospectionendpointURLstarting from the provided token endpoint.- Parameters:
tokenEndpointURL- the token endpoint to use in the compute- Returns:
- the keycloak
introspectionendpoint URL - Throws:
KeycloakClientException- if something goes wrong discovering the endpoint URL
-
getAvatarEndpointURL
URL getAvatarEndpointURL(URL realmBaseURL) throws KeycloakClientException
Constructs the KeycloakavatarendpointURLfrom the realm's base URL.- Parameters:
realmBaseURL- the realm's base URL to use- Returns:
- the Keycloak
avatarendpoint URL - Throws:
KeycloakClientException- if something goes wrong discovering the endpoint URL
-
getRealmInfo
PublishedRealmRepresentation getRealmInfo(URL realmURL) throws KeycloakClientException
Gets the realm info setup (RSApublic_key,token-serviceURL,account-serviceURL andtokens-not-beforesetting)- Parameters:
realmURL- the realm URL- Returns:
- the configured realm info
- Throws:
KeycloakClientException- if something goes wrong getting realm info
-
getRealmJSONWebKeySet
JSONWebKeySet getRealmJSONWebKeySet(URL jwkURL) throws KeycloakClientException
Loads the actual JWK from the Keycloak server- Parameters:
jwkURL- the server's jwk URL to use- Returns:
- an object with JWK details
- Throws:
KeycloakClientException- if something goes wrong getting JWK info
-
queryOIDCToken
TokenResponse queryOIDCToken(String context, String clientId, String clientSecret) throws KeycloakClientException
Queries an OIDC token from the context's Keycloak server, by using provided clientId and client secret.- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)clientId- the client idclientSecret- the client secret- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCToken
TokenResponse queryOIDCToken(String context, String clientId, String clientSecret, Map<String,String> extraHeaders) throws KeycloakClientException
Queries an OIDC token from the context's Keycloak server, by using provided clientId and client secret.- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)clientId- the client idclientSecret- the client secretextraHeaders- extra HTTP headers to add to the request- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCToken
TokenResponse queryOIDCToken(URL tokenURL, String clientId, String clientSecret) throws KeycloakClientException
Queries an OIDC token from the Keycloak server, by using provided clientId and client secret.- Parameters:
tokenURL- the token endpointURLof the Keycloak serverclientId- the client idclientSecret- the client secret- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCToken
TokenResponse queryOIDCToken(URL tokenURL, String clientId, String clientSecret, Map<String,String> extraHeaders) throws KeycloakClientException
Queries an OIDC token from the Keycloak server, by using provided clientId and client secret. Optionally extra HTTP headers can be provided to be used in the call.- Parameters:
tokenURL- the token endpointURLof the Keycloak serverclientId- the client idclientSecret- the client secretextraHeaders- extra HTTP headers to add to the request- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCToken
TokenResponse queryOIDCToken(String context, String authorization) throws KeycloakClientException
Queries an OIDC token from the Keycloak server, by using provided authorization.- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)authorization- the authorization to be set as header (e.g. a "Basic ...." auth or an encoded JWT access token preceded by the "Bearer " string)- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCToken
TokenResponse queryOIDCToken(String context, String authorization, Map<String,String> extraHeaders) throws KeycloakClientException
Queries an OIDC token from the Keycloak server, by using provided authorization. Optionally extra HTTP headers can be provided to be used in the call.- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)authorization- the authorization to be set as header (e.g. a "Basic ...." auth or an encoded JWT access token preceded by the "Bearer " string)extraHeaders- extra HTTP headers to add to the request- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCToken
TokenResponse queryOIDCToken(URL tokenURL, String authorization) throws KeycloakClientException
Queries an OIDC token from the Keycloak server, by using provided authorization.- Parameters:
tokenURL- the token endpointURLof the OIDC serverauthorization- the authorization to be set as header (e.g. a "Basic ...." auth or an encoded JWT access token preceded by the "Bearer " string)- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCToken
TokenResponse queryOIDCToken(URL tokenURL, String authorization, Map<String,String> extraHeaders) throws KeycloakClientException
Queries an OIDC token from the Keycloak server, by using provided authorization. Optionally extra HTTP headers can be provided to be used in the call.- Parameters:
tokenURL- the token endpointURLof the OIDC serverauthorization- the authorization to be set as header (e.g. a "Basic ...." auth or an encoded JWT access token preceded by the "Bearer " string)extraHeaders- extra HTTP headers to add to the request- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCTokenWithContext
TokenResponse queryOIDCTokenWithContext(String context, String clientId, String clientSecret, String audience) throws KeycloakClientException
Queries an OIDC token from the context's Keycloak server, by using provided clientId and client secret, reducing the audience to the requested one. The implementation uses the customx-d4science-contextHTTP header that the proper mapper on Keycloak uses to reduce the audience- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)clientId- the client idclientSecret- the client secretaudience- an optional parameter to shrink the token's audience to the requested one (e.g. a specific context), by leveraging on the custom HTTP header and corresponding mapper on Keycloak- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCTokenWithContext
TokenResponse queryOIDCTokenWithContext(String context, String clientId, String clientSecret, String audience, Map<String,String> extraHeaders) throws KeycloakClientException
Queries an OIDC token from the context's Keycloak server, by using provided clientId and client secret, reducing the audience to the requested one. Optionally extra HTTP headers can be provided to be used in the call. The implementation uses the customx-d4science-contextHTTP header that the proper mapper on Keycloak uses to reduce the audience- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)clientId- the client idclientSecret- the client secretaudience- an optional parameter to shrink the token's audience to the requested one (e.g. a specific context), by leveraging on the custom HTTP header and corresponding mapper on KeycloakextraHeaders- extra HTTP headers to add to the request- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCTokenWithContext
TokenResponse queryOIDCTokenWithContext(URL tokenURL, String clientId, String clientSecret, String audience) throws KeycloakClientException
Queries an OIDC token from the Keycloak server, by using provided clientId and client secret, reducing the audience to the requested one. The implementation uses the customx-d4science-contextHTTP header that the proper mapper on Keycloak uses to reduce the audience- Parameters:
tokenURL- the token endpointURLof the Keycloak serverclientId- the client idclientSecret- the client secretaudience- an optional parameter to shrink the token's audience to the requested one (e.g. a specific context), by leveraging on the custom HTTP header and corresponding mapper on Keycloak- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCTokenWithContext
TokenResponse queryOIDCTokenWithContext(URL tokenURL, String clientId, String clientSecret, String audience, Map<String,String> extraHeaders) throws KeycloakClientException
Queries an OIDC token from the Keycloak server, by using provided clientId and client secret, reducing the audience to the requested one. Optionally extra HTTP headers can be provided to be used in the call. The implementation uses the customx-d4science-contextHTTP header that the proper mapper on Keycloak uses to reduce the audience- Parameters:
tokenURL- the token endpointURLof the Keycloak serverclientId- the client idclientSecret- the client secretaudience- an optional parameter to shrink the token's audience to the requested one (e.g. a specific context), by leveraging on the custom HTTP header and corresponding mapper on KeycloakextraHeaders- extra HTTP headers to add to the request- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCTokenWithContext
TokenResponse queryOIDCTokenWithContext(String context, String authorization, String audience) throws KeycloakClientException
Queries an OIDC token from the Keycloak server, by using provided authorization, reducing the audience to the requested one.- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)authorization- the authorization to be set as header (e.g. a "Basic ...." auth or an encoded JWT access token preceded by the "Bearer " string)audience- an optional parameter to shrink the token's audience to the requested one (e.g. a specific context), by leveraging on the custom HTTP header and corresponding mapper on Keycloak- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCTokenWithContext
TokenResponse queryOIDCTokenWithContext(String context, String authorization, String audience, Map<String,String> extraHeaders) throws KeycloakClientException
Queries an OIDC token from the Keycloak server, by using provided authorization, reducing the audience to the requested one. Optionally extra HTTP headers can be provided to be used in the call.- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)authorization- the authorization to be set as header (e.g. a "Basic ...." auth or an encoded JWT access token preceded by the "Bearer " string)audience- an optional parameter to shrink the token's audience to the requested one (e.g. a specific context), by leveraging on the custom HTTP header and corresponding mapper on KeycloakextraHeaders- extra HTTP headers to add to the request- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCTokenWithContext
TokenResponse queryOIDCTokenWithContext(URL tokenURL, String authorization, String audience) throws KeycloakClientException
Queries an OIDC token from the Keycloak server, by using provided authorization, reducing the audience to the requested one.- Parameters:
tokenURL- the token endpointURLof the OIDC serverauthorization- the authorization to be set as header (e.g. a "Basic ...." auth or an encoded JWT access token preceded by the "Bearer " string)audience- an optional parameter to shrink the token's audience to the requested one (e.g. a specific context), by leveraging on the custom HTTP header and corresponding mapper on Keycloak- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCTokenWithContext
TokenResponse queryOIDCTokenWithContext(URL tokenURL, String authorization, String audience, Map<String,String> extraHeaders) throws KeycloakClientException
Queries an OIDC token from the Keycloak server, by using provided authorization, reducing the audience to the requested one. Optionally extra HTTP headers can be provided to be used in the call.- Parameters:
tokenURL- the token endpointURLof the OIDC serverauthorization- the authorization to be set as header (e.g. a "Basic ...." auth or an encoded JWT access token preceded by the "Bearer " string)audience- an optional parameter to shrink the token's audience to the requested one (e.g. a specific context), by leveraging on the custom HTTP header and corresponding mapper on KeycloakextraHeaders- extra HTTP headers to add to the request- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCTokenOfUser
TokenResponse queryOIDCTokenOfUser(String context, String clientId, String clientSecret, String username, String password) throws KeycloakClientException
Queries an OIDC token for a specific user from the context's Keycloak server, by using provided clientId and client secret and user's username and password.- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)clientId- the client idclientSecret- the client secretusername- the user's usernamepassword- the user's password- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCTokenOfUser
TokenResponse queryOIDCTokenOfUser(String context, String clientId, String clientSecret, String username, String password, Map<String,String> extraHeaders) throws KeycloakClientException
Queries an OIDC token for a specific user from the context's Keycloak server, by using provided clientId and client secret and user's username and password. Optionally extra HTTP headers can be provided to be used in the call.- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)clientId- the client idclientSecret- the client secretusername- the user's usernamepassword- the user's passwordextraHeaders- extra HTTP headers to add to the request- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCTokenOfUserWithContext
TokenResponse queryOIDCTokenOfUserWithContext(String context, String authorization, String username, String password, String audience) throws KeycloakClientException
Queries an OIDC token for a specific user from the context's Keycloak server, by using provided clientId and client secret and user's username and password.- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)authorization- the authorization to be set as header (e.g. a "Basic ...." auth or an encoded JWT access token preceded by the "Bearer " string)username- the user's usernamepassword- the user's passwordaudience- an optional parameter to shrink the token's audience to the requested one (e.g. a specific context), by leveraging on the custom HTTP header and corresponding mapper on Keycloak- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCTokenOfUserWithContext
TokenResponse queryOIDCTokenOfUserWithContext(String context, String clientId, String clientSecret, String username, String password, String audience) throws KeycloakClientException
Queries an OIDC token for a specific user from the Keycloak server, by using provided clientId and client secret and user's username and password, reducing the audience to the requested one. The implementation uses the customx-d4science-contextHTTP header that the proper mapper on Keycloak uses to reduce the audience- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)clientId- the client idclientSecret- the client secretusername- the user's usernamepassword- the user's passwordaudience- an optional parameter to shrink the token's audience to the requested one (e.g. a specific context), by leveraging on the custom HTTP header and corresponding mapper on Keycloak- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCTokenOfUserWithContext
TokenResponse queryOIDCTokenOfUserWithContext(String context, String clientId, String clientSecret, String username, String password, String audience, Map<String,String> extraHeaders) throws KeycloakClientException
Queries an OIDC token for a specific user from the Keycloak server, by using provided clientId and client secret and user's username and password, reducing the audience to the requested one. Optionally extra HTTP headers can be provided to be used in the call. The implementation uses the customx-d4science-contextHTTP header that the proper mapper on Keycloak uses to reduce the audience- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)clientId- the client idclientSecret- the client secretusername- the user's usernamepassword- the user's passwordaudience- an optional parameter to shrink the token's audience to the requested one (e.g. a specific context), by leveraging on the custom HTTP header and corresponding mapper on KeycloakextraHeaders- extra HTTP headers to add to the request- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCTokenOfUserWithContext
TokenResponse queryOIDCTokenOfUserWithContext(URL tokenURL, String clientId, String clientSecret, String username, String password, String audience) throws KeycloakClientException
Queries an OIDC token for a specific user from the context's Keycloak server, by using provided clientId and client secret and user's username and password, reducing the audience to the requested one. The implementation uses the customx-d4science-contextHTTP header that the proper mapper on Keycloak uses to reduce the audience- Parameters:
tokenURL- the token endpointURLof the Keycloak serverclientId- the client idclientSecret- the client secretusername- the user's usernamepassword- the user's passwordaudience- an optional parameter to shrink the token's audience to the requested one (e.g. a specific context), by leveraging on the custom HTTP header and corresponding mapper on Keycloak- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCTokenOfUserWithContext
TokenResponse queryOIDCTokenOfUserWithContext(URL tokenURL, String clientId, String clientSecret, String username, String password, String audience, Map<String,String> extraHeaders) throws KeycloakClientException
Queries an OIDC token for a specific user from the context's Keycloak server, by using provided clientId and client secret and user's username and password, , reducing the audience to the requested one. Optionally extra HTTP headers can be provided to be used in the call.- Parameters:
tokenURL- the token endpointURLof the Keycloak serverclientId- the client idclientSecret- the client secretusername- the user's usernamepassword- the user's passwordaudience- an optional parameter to shrink the token's audience to the requested one (e.g. a specific context), by leveraging on the custom HTTP header and corresponding mapper on KeycloakextraHeaders- extra HTTP headers to add to the request- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCTokenOfUserWithContext
TokenResponse queryOIDCTokenOfUserWithContext(String context, String authorization, String username, String password, String audience, Map<String,String> extraHeaders) throws KeycloakClientException
Queries an OIDC token for a specific user from the context's Keycloak server, by using provided clientId and client secret and user's username and password. Optionally extra HTTP headers can be provided to be used in the call.- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)authorization- the authorization to be set as header (e.g. a "Basic ...." auth or an encoded JWT access token preceded by the "Bearer " string)username- the user's usernamepassword- the user's passwordaudience- an optional parameter to shrink the token's audience to the requested one (e.g. a specific context), by leveraging on the custom HTTP header and corresponding mapper on KeycloakextraHeaders- extra HTTP headers to add to the request- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCTokenOfUserWithContext
TokenResponse queryOIDCTokenOfUserWithContext(URL tokenURL, String authorization, String username, String password, String audience) throws KeycloakClientException
Queries an OIDC token for a specific user from the context's Keycloak server, by using provided clientId and client secret and user's username and password.- Parameters:
tokenURL- the token endpointURLof the OIDC serverauthorization- the authorization to be set as header (e.g. a "Basic ...." auth or an encoded JWT access token preceded by the "Bearer " string)username- the user's usernamepassword- the user's passwordaudience- an optional parameter to shrink the token's audience to the requested one (e.g. a specific context), by leveraging on the custom HTTP header and corresponding mapper on Keycloak- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryOIDCTokenOfUserWithContext
TokenResponse queryOIDCTokenOfUserWithContext(URL tokenURL, String authorization, String username, String password, String audience, Map<String,String> extraHeaders) throws KeycloakClientException
Queries an OIDC token for a specific user from the context's Keycloak server, by using provided clientId and client secret and user's username and password. Optionally extra HTTP headers can be provided to be used in the call.- Parameters:
tokenURL- the token endpointURLof the OIDC serverauthorization- the authorization to be set as header (e.g. a "Basic ...." auth or an encoded JWT access token preceded by the "Bearer " string)username- the user's usernamepassword- the user's passwordaudience- an optional parameter to shrink the token's audience to the requested one (e.g. a specific context), by leveraging on the custom HTTP header and corresponding mapper on KeycloakextraHeaders- extra HTTP headers to add to the request- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryUMAToken
TokenResponse queryUMAToken(String context, String authorization, String audience, List<String> permissions) throws KeycloakClientException
Queries an UMA token from the Keycloak server, by using provided authorization, for the given audience (context), in URLEncoded form or not, and optionally a list of permissions.- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)authorization- the authorization to be set as header (e.g. a "Basic ...." auth or an encoded JWT access token preceded by the "Bearer " string)audience- the audience (context) where to request the issuing of the ticket (URLEncoded)permissions- a list of permissions, can benull- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryUMAToken
TokenResponse queryUMAToken(URL tokenURL, String authorization, String audience, List<String> permissions) throws KeycloakClientException
Queries an UMA token from the Keycloak server, by using provided authorization, for the given audience (context), in URLEncoded form or not, and optionally a list of permissions.- Parameters:
tokenURL- the token endpointURLof the OIDC serverauthorization- the authorization to be set as header (e.g. a "Basic ...." auth or an encoded JWT access token preceded by the "Bearer " string)audience- the audience (context) where to request the issuing of the ticket (URLEncoded)permissions- a list of permissions, can benull- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryUMAToken
TokenResponse queryUMAToken(String context, TokenResponse oidcTokenResponse, String audience, List<String> permissions) throws KeycloakClientException
Queries an UMA token from the Keycloak server, by using access-token provided by theTokenResponseobject for the given audience (context), in URLEncoded form or not, and optionally a list of permissions.- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)oidcTokenResponse- the previously issued token asTokenResponseobjectaudience- the audience (context) where to request the issuing of the ticketpermissions- a list of permissions, can benull- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryUMAToken
TokenResponse queryUMAToken(URL tokenURL, TokenResponse oidcTokenResponse, String audience, List<String> permissions) throws KeycloakClientException
Queries an UMA token from the Keycloak server, by using access-token provided by theTokenResponseobject for the given audience (context), in URLEncoded form or not, and optionally a list of permissions.- Parameters:
tokenURL- the token endpointURLof the OIDC serveroidcTokenResponse- the previously issued token asTokenResponseobjectaudience- the audience (context) where to request the issuing of the ticketpermissions- a list of permissions, can benull- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryUMAToken
TokenResponse queryUMAToken(String context, String clientId, String clientSecret, String audience, List<String> permissions) throws KeycloakClientException
Queries an UMA token from the Keycloak server, by using provided clientId and client secret for the given audience (context), in URLEncoded form or not, and optionally a list of permissions.- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)clientId- the client idclientSecret- the client secretaudience- the audience (context) where to request the issuing of the ticketpermissions- a list of permissions, can benull- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
queryUMAToken
TokenResponse queryUMAToken(URL tokenURL, String clientId, String clientSecret, String audience, List<String> permissions) throws KeycloakClientException
Queries an UMA token from the Keycloak server, by using provided clientId and client secret for the given audience (context), in URLEncoded form or not, and optionally a list of permissions.- Parameters:
tokenURL- the token endpointURLof the Keycloak serverclientId- the client idclientSecret- the client secretaudience- the audience (context) where to request the issuing of the ticketpermissions- a list of permissions, can benull- Returns:
- the issued token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the query
-
refreshToken
TokenResponse refreshToken(String context, TokenResponse tokenResponse) throws KeycloakClientException
Refreshes a previously issued token from the Keycloak server using the refresh token JWT encoded string in the token response object. Client id will be read from "issued for" access token's claim and client secret will be not sent.
NOTE: Forpublicclients types only.- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)tokenResponse- the previously issued token asTokenResponseobject- Returns:
- the refreshed token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the refresh query
-
refreshToken
TokenResponse refreshToken(URL tokenURL, TokenResponse tokenResponse) throws KeycloakClientException
Refreshes a previously issued token from the Keycloak server using the refresh token JWT encoded string in the token response object. Client id will be read from "issued for" access token's claim and client secret will be not sent.
NOTE: Forpublicclients types only.- Parameters:
tokenURL- the token endpointURLof the OIDC servertokenResponse- the previously issued token asTokenResponseobject- Returns:
- the refreshed token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the refresh query
-
refreshToken
TokenResponse refreshToken(String context, String clientId, String clientSecret, TokenResponse tokenResponse) throws KeycloakClientException
Refreshes a previously issued token from the Keycloak server using the refresh token JWT encoded string in the token response object and the provided client id and secret.- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)clientId- the requestor client id, may benulland in this case will be take from the access token "issued for" claimclientSecret- the requestor client secret, may benullfor non-confidential clientstokenResponse- the previously issued token asTokenResponseobject- Returns:
- the refreshed token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the refresh query
-
refreshToken
TokenResponse refreshToken(URL tokenURL, String clientId, String clientSecret, TokenResponse tokenResponse) throws KeycloakClientException
Refreshes a previously issued token from the Keycloak server using the refresh token JWT encoded string in the token response object and the provided client id and secret.- Parameters:
tokenURL- the token endpointURLof the OIDC serverclientId- the requestor client id, may benulland in this case will be take from the access token "issued for" claimclientSecret- the requestor client secret, may benullfor non-confidential clientstokenResponse- the previously issued token asTokenResponseobject- Returns:
- the refreshed token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the refresh query
-
refreshToken
TokenResponse refreshToken(String context, String clientId, String clientSecret, String refreshTokenJWTString) throws KeycloakClientException
Refreshes a previously issued token from the Keycloak server by using the client id and secret and the refresh token JWT encoded string obtained with the access token in the previous token response.- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)clientId- the requestor client idclientSecret- the requestor client secret, may benullfor non-confidential clientsrefreshTokenJWTString- the previously issued refresh token JWT string- Returns:
- the refreshed token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the refresh query
-
refreshToken
TokenResponse refreshToken(URL tokenURL, String clientId, String clientSecret, String refreshTokenJWTString) throws KeycloakClientException
Refreshes a previously issued token from the Keycloak server by using the client id and secret and the refresh token JWT encoded string obtained with the access token in the previous token response.- Parameters:
tokenURL- the token endpointURLof the OIDC serverclientId- the requestor client idclientSecret- the requestor client secret, may benullfor non-confidential clientsrefreshTokenJWTString- the previously issued refresh token JWT string- Returns:
- the refreshed token as
TokenResponseobject - Throws:
KeycloakClientException- if something goes wrong performing the refresh query
-
exchangeTokenForAccessToken
TokenResponse exchangeTokenForAccessToken(String context, String oidcAccessToken, String clientId, String clientSecret, String audience) throws KeycloakClientException
Exchanges a token for another access token for a specific client and a specific audience- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)oidcAccessToken- the original access token to exchangeclientId- the authorized client's idclientSecret- the authorized client's secretaudience- the requested token audience- Returns:
- the exchanged token response
- Throws:
KeycloakClientException- if an error occurs during the exchange
-
exchangeTokenForAccessToken
TokenResponse exchangeTokenForAccessToken(URL tokenURL, String oidcAccessToken, String clientId, String clientSecret, String audience) throws KeycloakClientException
Exchanges a token for another access token for a specific client and a specific audience- Parameters:
tokenURL- the token endpoint URLoidcAccessToken- the original access token to exchangeclientId- the authorized client's idclientSecret- the authorized client's secretaudience- the requested token audience- Returns:
- the exchanged token response
- Throws:
KeycloakClientException- if an error occurs during the exchange
-
exchangeTokenForRefreshToken
TokenResponse exchangeTokenForRefreshToken(String context, String oidcAccessToken, String clientId, String clientSecret, String audience) throws KeycloakClientException
Exchanges a token for another access and a refresh tokens for a specific client and a specific audience- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)oidcAccessToken- the original access token to exchangeclientId- the authorized client's idclientSecret- the authorized client's secretaudience- the requested token audience- Returns:
- the exchanged token response
- Throws:
KeycloakClientException- if an error occurs during the exchange
-
exchangeTokenForRefreshToken
TokenResponse exchangeTokenForRefreshToken(URL tokenURL, String oidcAccessToken, String clientId, String clientSecret, String audience) throws KeycloakClientException
Exchanges a token for another access and a refresh tokens for a specific client and a specific audience- Parameters:
tokenURL- the token endpoint URLoidcAccessToken- the original access token to exchangeclientId- the authorized client's idclientSecret- the authorized client's secretaudience- the requested token audience- Returns:
- the exchanged token response
- Throws:
KeycloakClientException- if an error occurs during the exchange
-
exchangeTokenForOfflineToken
TokenResponse exchangeTokenForOfflineToken(String context, String oidcAccessToken, String clientId, String clientSecret, String audience) throws IllegalArgumentException, KeycloakClientException
Exchanges a token for another access and an offline refresh tokens for a specific client and a specific audience The refresh token will be of the offline type only if the original token has theoffline_accesswithin its scopes- Parameters:
context- the token endpoint URLoidcAccessToken- the original access token to exchangeclientId- the authorized client's idclientSecret- the authorized client's secretaudience- the requested token audience- Returns:
- the exchanged token response
- Throws:
IllegalArgumentException- if the original token does'nt contains theoffline_accessscope within its scopes or if is impossible to parse the access token as JSONKeycloakClientException- if an error occurs during the exchange
-
exchangeTokenForOfflineToken
TokenResponse exchangeTokenForOfflineToken(URL tokenURL, String oidcAccessToken, String clientId, String clientSecret, String audience) throws IllegalArgumentException, KeycloakClientException
Exchanges a token for another access and an offline refresh tokens for a specific client and a specific audience The refresh token will be of the offline type only if the original token has the scopeoffline_accesswithin its scopes- Parameters:
tokenURL- the token endpoint URLoidcAccessToken- the original access token to exchangeclientId- the authorized client's idclientSecret- the authorized client's secretaudience- the requested token audience- Returns:
- the exchanged token response
- Throws:
IllegalArgumentException- if the original token does'nt contains theoffline_accessscope within its scopes or if is impossible to parse the access token as JSONKeycloakClientException- if an error occurs during the exchange
-
introspectAccessToken
TokenIntrospectionResponse introspectAccessToken(String context, String clientId, String clientSecret, String accessTokenJWTString) throws KeycloakClientException
Introspects an access token against the Keycloak server.- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)clientId- the requestor client idclientSecret- the requestor client secretaccessTokenJWTString- the access token to verify- Returns:
- a
TokenIntrospectionResponseobject with the introspection results; in particular, theactivefield represents the token validity - Throws:
KeycloakClientException- if something goes wrong performing the verification
-
introspectAccessToken
TokenIntrospectionResponse introspectAccessToken(URL introspectionURL, String clientId, String clientSecret, String accessTokenJWTString) throws KeycloakClientException
Introspects an access token against the Keycloak server.- Parameters:
introspectionURL- the introspection endpointURLof the Keycloak serverclientId- the requestor client idclientSecret- the requestor client secretaccessTokenJWTString- the access token to verify- Returns:
- a
TokenIntrospectionResponseobject with the introspection results; in particular, theactivefield represents the token validity - Throws:
KeycloakClientException- if something goes wrong performing the verification
-
isAccessTokenVerified
boolean isAccessTokenVerified(String context, String clientId, String clientSecret, String accessTokenJWTString) throws KeycloakClientException
Verifies an access token against the Keycloak server.- Parameters:
context- the context where the Keycloak's is needed (e.g./gcubefor DEV)clientId- the requestor client idclientSecret- the requestor client secretaccessTokenJWTString- the access token to verify- Returns:
trueif the token is active,falseotherwise- Throws:
KeycloakClientException- if something goes wrong performing the verification
-
isAccessTokenVerified
boolean isAccessTokenVerified(URL introspectionURL, String clientId, String clientSecret, String accessTokenJWTString) throws KeycloakClientException
Verifies an access token against the Keycloak server.- Parameters:
introspectionURL- the introspection endpointURLof the Keycloak serverclientId- the requestor client idclientSecret- the requestor client secretaccessTokenJWTString- the access token to verify- Returns:
trueif the token is active,falseotherwise- Throws:
KeycloakClientException- if something goes wrong performing the verification
-
getAvatarData
byte[] getAvatarData(String context, TokenResponse tokenResponse) throws KeycloakClientException
Retrieves the user's avatar image data from Keycloak server.- Parameters:
context- the context used to compute the server endpoint in the correct environmenttokenResponse- the token response where to get the bearer token for the authorization header.- Returns:
- the avatar's data bytes
- Throws:
KeycloakClientException- if something goes wrong in the request
-
getAvatarData
byte[] getAvatarData(URL avatarURL, TokenResponse tokenResponse) throws KeycloakClientException
Retrieves the user's avatar image data from Keycloak server.- Parameters:
avatarURL- the server's avatar endpoint URLtokenResponse- the token response where to get the bearer token for the authorization header.- Returns:
- the avatar's data bytes
- Throws:
KeycloakClientException- if something goes wrong in the request
-
getAvatarData
byte[] getAvatarData(URL avatarURL, String authorization) throws KeycloakClientException
Retrieves the user's avatar image data from Keycloak server.- Parameters:
avatarURL- the server's avatar endpoint URLauthorization- the string to user as authorization header (e.g. 'bearer xxxx')- Returns:
- the avatar's data bytes
- Throws:
KeycloakClientException- if something goes wrong in the request
-
-