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 |
|---|---|
Client |
build()
Constructs a new
Client 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 |
setBaseUrlResolver(com.okta.commons.http.config.BaseUrlResolver baseUrlResolver) |
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 |
setClientCredentialsResolver(ClientCredentialsResolver clientCredentialsResolver) |
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 |
setRequestAuthenticatorFactory(RequestAuthenticatorFactory factory) |
ClientBuilder |
setRequestExecutorFactory(com.okta.commons.http.RequestExecutorFactory requestExecutorFactory)
Sets the
RequestExecutorFactory, otherwise it will be loaded as a Service / SPI
via the RequestExecutorFactory class. |
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 ClientBuilderproxy - the Proxy you need to use.public ClientBuilder setCacheManager(CacheManager cacheManager)
ClientBuilderCacheManager that should be used to cache Okta REST resources, reducing round-trips to the
Okta API server and enhancing application performance.
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.*;
...
Client 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.
The 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 ClientBuildercacheManager - 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)
ClientBuildersetConnectionTimeout in interface ClientBuildertimeout - connection and socket timeout in secondspublic ClientBuilder setClientCredentials(ClientCredentials clientCredentials)
ClientBuilderApiKey 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 ClientBuilderclientCredentials - the token to use to authenticate requests to the Okta API server.public ClientBuilder setRequestAuthenticatorFactory(RequestAuthenticatorFactory factory)
public ClientBuilder setClientCredentialsResolver(ClientCredentialsResolver clientCredentialsResolver)
public ClientBuilder setBaseUrlResolver(com.okta.commons.http.config.BaseUrlResolver baseUrlResolver)
public ClientBuilder setRetryMaxElapsed(int maxElapsed)
ClientBuildersetRetryMaxElapsed in interface ClientBuildermaxElapsed - retry max elapsed duration in secondspublic ClientBuilder setRetryMaxAttempts(int maxAttempts)
ClientBuildersetRetryMaxAttempts in interface ClientBuildermaxAttempts - retry max attemptspublic ClientBuilder setRequestExecutorFactory(com.okta.commons.http.RequestExecutorFactory requestExecutorFactory)
ClientBuilderRequestExecutorFactory, otherwise it will be loaded as a Service / SPI
via the RequestExecutorFactory class.setRequestExecutorFactory in interface ClientBuilderrequestExecutorFactory - that should be used to create the RequestExecutorpublic Client build()
ClientBuilderClient instance based on the ClientBuilder's current configuration state.build in interface ClientBuilderClient instance based on the ClientBuilder's current configuration state.public ClientBuilder setOrgUrl(String baseUrl)
ClientBuilderhttps://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 ClientBuilderbaseUrl - 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 ClientBuilderauthorizationMode - mode of authorization for requests to the Okta API server.public ClientBuilder setScopes(Set<String> scopes)
ClientBuilderdocumentation above.setScopes in interface ClientBuilderscopes - set of scopes for which the client requests access.public ClientBuilder setPrivateKey(String privateKey)
ClientBuilderdocumentation above.setPrivateKey in interface ClientBuilderprivateKey - either the fully qualified string path to the private key PEM file (or)
the full PEM payload content.public ClientBuilder setPrivateKey(Path privateKeyPath)
ClientBuilderdocumentation above.setPrivateKey in interface ClientBuilderprivateKeyPath - representing the path to private key PEM file.public ClientBuilder setPrivateKey(InputStream privateKeyStream)
ClientBuilderdocumentation above.setPrivateKey in interface ClientBuilderprivateKeyStream - representing an InputStream with private key PEM file content.public ClientBuilder setPrivateKey(PrivateKey privateKey)
ClientBuilderdocumentation above.setPrivateKey in interface ClientBuilderprivateKey - the PrivateKey instance.public ClientBuilder setClientId(String clientId)
ClientBuilderdocumentation above.setClientId in interface ClientBuilderclientId - string representing the client ID.public ClientBuilder setKid(String kid)
ClientBuildersetKid in interface ClientBuilderkid - string representing the Key ID.public ClientConfiguration getClientConfiguration()
Copyright © 2017–2023 Okta. All rights reserved.