Package com.ibm.cloud.sdk.core.security
Class TokenRequestBasedAuthenticatorImmutable<T extends AbstractToken,R extends TokenServerResponse>
- java.lang.Object
-
- com.ibm.cloud.sdk.core.security.AuthenticatorBase
-
- com.ibm.cloud.sdk.core.security.TokenRequestBasedAuthenticatorImmutable<T,R>
-
- All Implemented Interfaces:
Authenticator
- Direct Known Subclasses:
IamRequestBasedAuthenticatorImmutable
,MCSPV2Authenticator
,TokenRequestBasedAuthenticator
public abstract class TokenRequestBasedAuthenticatorImmutable<T extends AbstractToken,R extends TokenServerResponse> extends AuthenticatorBase implements Authenticator
This class serves as a common base class for Authenticator implementations that interact with a token service via a REST interface. This base class allows for the configuration of the following properties:- disableSSLVerification - a flag that indicates whether or not client-side SSL verification should be disabled.
- headers - a Map of keys/values that will be set as HTTP headers on requests sent to the token service.
- proxy - a java.net.Proxy instance that will be set on the OkHttpClient instance used to interact with the token service.
- proxyAuthenticator - an okhttp3.Authenticator instance to be set on the OkHttpClient instance used to interact with the token service.
- client - a fully-configured OkHttpClient instance to be used to interact with the token service.
-
-
Field Summary
-
Fields inherited from class com.ibm.cloud.sdk.core.security.AuthenticatorBase
ERRORMSG_ACCOUNTID_PROP_ERROR, ERRORMSG_ATLEAST_ONE_PROP_ERROR, ERRORMSG_ATMOST_ONE_PROP_ERROR, ERRORMSG_EXCLUSIVE_PROP_ERROR, ERRORMSG_PROP_INVALID, ERRORMSG_PROP_INVALID_BOOL, ERRORMSG_PROP_INVALID_INTEGER_VALUE, ERRORMSG_PROP_MISSING, ERRORMSG_REQ_FAILED
-
Fields inherited from interface com.ibm.cloud.sdk.core.security.Authenticator
AUTHTYPE_BASIC, AUTHTYPE_BEARER_TOKEN, AUTHTYPE_CONTAINER, AUTHTYPE_CP4D, AUTHTYPE_CP4D_SERVICE, AUTHTYPE_CP4D_SERVICE_INSTANCE, AUTHTYPE_IAM, AUTHTYPE_IAM_ASSUME, AUTHTYPE_MCSP, AUTHTYPE_MCSPV2, AUTHTYPE_NOAUTH, AUTHTYPE_VPC, PROPNAME_APIKEY, PROPNAME_AUTH_TYPE, PROPNAME_BEARER_TOKEN, PROPNAME_CALLER_EXT_CLAIM, PROPNAME_CLIENT_ID, PROPNAME_CLIENT_SECRET, PROPNAME_CR_TOKEN_FILENAME, PROPNAME_DISABLE_SSL, PROPNAME_DISPLAY_NAME, PROPNAME_EXPIRATION_TIME, PROPNAME_IAM_ACCOUNT_ID, PROPNAME_IAM_PROFILE_CRN, PROPNAME_IAM_PROFILE_ID, PROPNAME_IAM_PROFILE_NAME, PROPNAME_INCLUDE_BUILTIN_ACTIONS, PROPNAME_INCLUDE_CUSTOM_ACTIONS, PROPNAME_INCLUDE_ROLES, PROPNAME_PASSWORD, PROPNAME_PERMISSIONS, PROPNAME_PREFIX_ROLES, PROPNAME_SCOPE, PROPNAME_SCOPE_COLLECTION_TYPE, PROPNAME_SCOPE_ID, PROPNAME_SERVICE_BROKER_SECRET, PROPNAME_SERVICE_INSTANCE_ID, PROPNAME_UID, PROPNAME_URL, PROPNAME_USERNAME
-
-
Constructor Summary
Constructors Constructor Description TokenRequestBasedAuthenticatorImmutable()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
authenticate(okhttp3.Request.Builder builder)
Authenticate the specified request by adding an Authorization header containing a "Bearer" access token.abstract java.lang.String
authenticationType()
Returns the authentication type associated with this Authenticator.okhttp3.OkHttpClient
getClient()
Returns the OkHttpClient instance to be used when interacting with the token service.boolean
getDisableSSLVerification()
java.util.Map<java.lang.String,java.lang.String>
getHeaders()
Returns the set of user-supplied headers configured for this Authenticator.java.net.Proxy
getProxy()
okhttp3.Authenticator
getProxyAuthenticator()
java.lang.String
getToken()
This function returns the access token fetched from the token service.abstract T
requestToken()
Builds and invokes the REST request to fetch a new token from the token service.abstract void
validate()
Validates the configuration properties associated with the Authenticator.-
Methods inherited from class com.ibm.cloud.sdk.core.security.AuthenticatorBase
constructBasicAuthHeader, constructBearerTokenAuthHeader
-
-
-
-
Method Detail
-
getClient
public okhttp3.OkHttpClient getClient()
Returns the OkHttpClient instance to be used when interacting with the token service.- Returns:
- the client instance or null if a client instance has not yet been set
-
validate
public abstract void validate()
Validates the configuration properties associated with the Authenticator. Each concrete subclass must implement this method.- Specified by:
validate
in interfaceAuthenticator
-
authenticationType
public abstract java.lang.String authenticationType()
Returns the authentication type associated with this Authenticator. Each concrete subclass must implement this method.- Specified by:
authenticationType
in interfaceAuthenticator
- Returns:
- the authentication type
-
getDisableSSLVerification
public boolean getDisableSSLVerification()
- Returns:
- the disableSSLVerification flag
-
getHeaders
public java.util.Map<java.lang.String,java.lang.String> getHeaders()
Returns the set of user-supplied headers configured for this Authenticator.- Returns:
- a Map containing the configured headers
-
getProxy
public java.net.Proxy getProxy()
- Returns:
- the Proxy configured for this Authenticator
-
getProxyAuthenticator
public okhttp3.Authenticator getProxyAuthenticator()
- Returns:
- the proxy authenticator configured for this Authenticator
-
authenticate
public void authenticate(okhttp3.Request.Builder builder)
Authenticate the specified request by adding an Authorization header containing a "Bearer" access token.- Specified by:
authenticate
in interfaceAuthenticator
- Parameters:
builder
- theRequest.Builder
instance to authenticate
-
requestToken
public abstract T requestToken()
Builds and invokes the REST request to fetch a new token from the token service. Each concrete subclass must implement this method.- Returns:
- the token object
-
getToken
public java.lang.String getToken()
This function returns the access token fetched from the token service. If no token currently exists or the current token has expired, a new token is fetched from the token service.- Returns:
- the access token
-
-