public class DefaultClientBuilder extends Object implements ClientBuilder
The default ClientBuilder
implementation. This looks for configuration files
in the following locations and order of precedence (last one wins).
DEFAULT_CLIENT_API_TOKEN_PROPERTY_NAME, DEFAULT_CLIENT_AUTHENTICATION_SCHEME_PROPERTY_NAME, DEFAULT_CLIENT_AUTHORIZATION_MODE_PROPERTY_NAME, DEFAULT_CLIENT_CACHE_CACHES_PROPERTY_NAME, DEFAULT_CLIENT_CACHE_ENABLED_PROPERTY_NAME, DEFAULT_CLIENT_CACHE_TTI_PROPERTY_NAME, DEFAULT_CLIENT_CACHE_TTL_PROPERTY_NAME, DEFAULT_CLIENT_CONNECTION_TIMEOUT_PROPERTY_NAME, DEFAULT_CLIENT_ID_PROPERTY_NAME, DEFAULT_CLIENT_KID_PROPERTY_NAME, DEFAULT_CLIENT_ORG_URL_PROPERTY_NAME, DEFAULT_CLIENT_PRIVATE_KEY_PROPERTY_NAME, DEFAULT_CLIENT_PROXY_HOST_PROPERTY_NAME, DEFAULT_CLIENT_PROXY_PASSWORD_PROPERTY_NAME, DEFAULT_CLIENT_PROXY_PORT_PROPERTY_NAME, DEFAULT_CLIENT_PROXY_USERNAME_PROPERTY_NAME, DEFAULT_CLIENT_REQUEST_TIMEOUT_PROPERTY_NAME, DEFAULT_CLIENT_RETRY_MAX_ATTEMPTS_PROPERTY_NAME, DEFAULT_CLIENT_SCOPES_PROPERTY_NAME, DEFAULT_CLIENT_TESTING_DISABLE_HTTPS_CHECK_PROPERTY_NAME
Constructor and Description |
---|
DefaultClientBuilder() |
Modifier and Type | Method and Description |
---|---|
ApiClient |
build()
Constructs a new
ApiClient instance based on the ClientBuilder's current configuration state. |
ClientConfiguration |
getClientConfiguration() |
ClientBuilder |
setAuthorizationMode(AuthorizationMode authorizationMode)
Overrides the default (very secure)
Okta SSWS Digest
Authentication Scheme used to authenticate every request sent to the Okta API server.
|
ClientBuilder |
setCacheManager(CacheManager cacheManager)
Sets the
CacheManager that should be used to cache Okta REST resources, reducing round-trips to the
Okta API server and enhancing application performance. |
ClientBuilder |
setClientCredentials(ClientCredentials clientCredentials)
Allows specifying an
ApiKey instance directly instead of relying on the
default location + override/fallback behavior defined in the documentation above . |
ClientBuilder |
setClientId(String clientId)
Allows specifying the client ID instead of relying on the default location + override/fallback behavior defined
in the
documentation above . |
ClientBuilder |
setConnectionTimeout(int timeout)
Sets both the timeout until a connection is established and the socket timeout (i.e.
|
ClientBuilder |
setKid(String kid)
Allows specifying the Key ID (kid) instead of relying on the YAML config.
|
ClientBuilder |
setOrgUrl(String baseUrl)
Sets the base URL of the Okta REST API to use.
|
ClientBuilder |
setPrivateKey(InputStream privateKeyStream)
Allows specifying the private key (PEM file) path (for private key jwt authentication) directly instead
of relying on the default location + override/fallback behavior defined
in the
documentation above . |
ClientBuilder |
setPrivateKey(Path privateKeyPath)
Allows specifying the private key (PEM file) path (for private key jwt authentication) directly instead
of relying on the default location + override/fallback behavior defined
in the
documentation above . |
ClientBuilder |
setPrivateKey(PrivateKey privateKey)
Allows specifying the private key (PEM file) path (for private key jwt authentication) directly instead
of relying on the default location + override/fallback behavior defined
in the
documentation above . |
ClientBuilder |
setPrivateKey(String privateKey)
Allows specifying the private key (PEM file) path (for private key jwt authentication) directly instead
of relying on the default location + override/fallback behavior defined
in the
documentation above . |
ClientBuilder |
setProxy(com.okta.commons.http.config.Proxy proxy)
Sets the HTTP proxy to be used when communicating with the Okta API server.
|
ClientBuilder |
setRetryMaxAttempts(int maxAttempts)
Sets the maximum number of attempts to retrying before giving up.
|
ClientBuilder |
setRetryMaxElapsed(int maxElapsed)
Sets the maximum number of seconds to wait when retrying before giving up.
|
ClientBuilder |
setScopes(Set<String> scopes)
Allows specifying a list of scopes directly instead of relying on the
default location + override/fallback behavior defined in the
documentation above . |
public ClientBuilder setProxy(com.okta.commons.http.config.Proxy proxy)
ClientBuilder
Proxy proxy = new Proxy("whatever.domain.com", 443);
Client client = Clients
.builder().setProxy(proxy).build();
setProxy
in interface ClientBuilder
proxy
- the Proxy
you need to use.public ClientBuilder setCacheManager(CacheManager cacheManager)
ClientBuilder
CacheManager
that should be used to cache Okta REST resources, reducing round-trips to the
Okta API server and enhancing application performance.
Single JVM Applications
If your application runs on a single JVM-based applications, the
CacheManagerBuilder
should be sufficient for your needs. You
create a CacheManagerBuilder
by using the Caches
utility class,
for example:
import static com.okta.sdk.cache.Caches.*; ... ApiClient client = Clients.builder()... .setCacheManager(newCacheManager()
.withDefaultTimeToLive(1, TimeUnit.DAYS) //general default .withDefaultTimeToIdle(2, TimeUnit.HOURS) //general default .withCache(forResource
(User.class) //User-specific cache settings .withTimeToLive(1, TimeUnit.HOURS) .withTimeToIdle(30, TimeUnit.MINUTES)) .withCache(forResource
(Group.class) //Group-specific cache settings .withTimeToLive(2, TimeUnit.HOURS)) .build() //build the CacheManager ) .build(); //build the Client
The above TTL and TTI times are just examples showing API usage - the times themselves are not recommendations. Choose TTL and TTI times based on your application requirements.
Multi-JVM / Clustered ApplicationsThe default CacheManager
instances returned by the
CacheManagerBuilder
might not be sufficient for a
multi-instance application that runs on multiple JVMs and/or hosts/servers, as there could be cache-coherency
problems across the JVMs. See the CacheManagerBuilder
JavaDoc for additional information.
In these multi-JVM environments, you will likely want to create a simple CacheManager implementation that wraps your distributed Caching API/product of choice and then plug that implementation in to the Okta SDK via this method. Hazelcast is one known cluster-safe caching product, and the Okta SDK has out-of-the-box support for this as an extension module. See the top-level class JavaDoc for a Hazelcast configuration example.
setCacheManager
in interface ClientBuilder
cacheManager
- the CacheManager
that should be used to cache Okta REST resources, reducing
round-trips to the Okta API server and enhancing application performance.public ClientBuilder setConnectionTimeout(int timeout)
ClientBuilder
setConnectionTimeout
in interface ClientBuilder
timeout
- connection and socket timeout in secondspublic ClientBuilder setClientCredentials(ClientCredentials clientCredentials)
ClientBuilder
ApiKey
instance directly instead of relying on the
default location + override/fallback behavior defined in the documentation above
.
Currently you should use a com.okta.sdk.impl.api.TokenClientCredentials (if you are NOT using an okta.yaml file)setClientCredentials
in interface ClientBuilder
clientCredentials
- the token to use to authenticate requests to the Okta API server.public ClientBuilder setRetryMaxElapsed(int maxElapsed)
ClientBuilder
setRetryMaxElapsed
in interface ClientBuilder
maxElapsed
- retry max elapsed duration in secondspublic ClientBuilder setRetryMaxAttempts(int maxAttempts)
ClientBuilder
setRetryMaxAttempts
in interface ClientBuilder
maxAttempts
- retry max attemptspublic ApiClient build()
ClientBuilder
ApiClient
instance based on the ClientBuilder's current configuration state.build
in interface ClientBuilder
ApiClient
instance based on the ClientBuilder's current configuration state.public ClientBuilder setOrgUrl(String baseUrl)
ClientBuilder
https://api.okta.com/v1
- the most common use case for Okta's public SaaS cloud.
Customers using Okta's Enterprise HA cloud might need to configure this to be
https://enterprise.okta.io/v1
for example.
setOrgUrl
in interface ClientBuilder
baseUrl
- the base URL of the Okta REST API to use.public ClientBuilder setAuthorizationMode(AuthorizationMode authorizationMode)
ClientBuilder
Client client = Clients.builder()... // setApiKey, etc... .setAuthorizationMode(AuthorizationMode.SSWS) //set the SSWS authentication mode .build(); //build the Client
setAuthorizationMode
in interface ClientBuilder
authorizationMode
- mode of authorization for requests to the Okta API server.public ClientBuilder setScopes(Set<String> scopes)
ClientBuilder
documentation above
.setScopes
in interface ClientBuilder
scopes
- set of scopes for which the client requests access.public ClientBuilder setPrivateKey(String privateKey)
ClientBuilder
documentation above
.setPrivateKey
in interface ClientBuilder
privateKey
- either the fully qualified string path to the private key PEM file (or)
the full PEM payload content.public ClientBuilder setPrivateKey(Path privateKeyPath)
ClientBuilder
documentation above
.setPrivateKey
in interface ClientBuilder
privateKeyPath
- representing the path to private key PEM file.public ClientBuilder setPrivateKey(InputStream privateKeyStream)
ClientBuilder
documentation above
.setPrivateKey
in interface ClientBuilder
privateKeyStream
- representing an InputStream with private key PEM file content.public ClientBuilder setPrivateKey(PrivateKey privateKey)
ClientBuilder
documentation above
.setPrivateKey
in interface ClientBuilder
privateKey
- the PrivateKey
instance.public ClientBuilder setClientId(String clientId)
ClientBuilder
documentation above
.setClientId
in interface ClientBuilder
clientId
- string representing the client ID.public ClientBuilder setKid(String kid)
ClientBuilder
setKid
in interface ClientBuilder
kid
- string representing the Key ID.public ClientConfiguration getClientConfiguration()
Copyright © 2017–2023 Okta. All rights reserved.