Class SslContextClientBuilder

java.lang.Object
org.glassfish.jersey.client.SslContextClientBuilder
All Implemented Interfaces:
Supplier<SSLContext>

public final class SslContextClientBuilder extends Object implements Supplier<SSLContext>

The class that builds SSLContext for the client from keystore, truststore. Provides a cached Supplier from the built or user provided SSLContext.

The class is used internally by JerseyClientBuilder, or it can be used by connectors supporting setting the SSLContext per request.

See Also:
  • Constructor Details

    • SslContextClientBuilder

      public SslContextClientBuilder()
  • Method Details

    • sslContext

      public SslContextClientBuilder sslContext(SSLContext sslContext)
      Set the SSL context that will be used when creating secured transport connections to server endpoints from web targets created by the client instance that is using this SSL context. The SSL context is expected to have all the security infrastructure initialized, including the key and trust managers.

      Setting a SSL context instance resets any key store or trust store values previously specified.

      Parameters:
      sslContext - secure socket protocol implementation which acts as a factory for secure socket factories or SSL engines. Must not be null.
      Returns:
      an updated ssl client context builder instance.
      Throws:
      NullPointerException - in case the sslContext parameter is null.
      See Also:
    • keyStore

      public SslContextClientBuilder keyStore(KeyStore keyStore, char[] password)
      Set the client-side key store. Key store contains client's private keys, and the certificates with their corresponding public keys.

      Setting a key store instance resets any SSL context instance value previously specified.

      Note that for improved security of working with password data and avoid storing passwords in Java string objects, the keyStore(java.security.KeyStore, char[]) version of the method can be utilized. Also note that a custom key store is only required if you want to enable a custom setup of a 2-way SSL connections (client certificate authentication).

      Parameters:
      keyStore - client-side key store. Must not be null.
      password - client key password. Must not be null.
      Returns:
      an updated ssl client context builder instance.
      Throws:
      NullPointerException - in case any of the supplied parameters is null.
      See Also:
    • trustStore

      public SslContextClientBuilder trustStore(KeyStore trustStore)
      Set the client-side trust store. Trust store is expected to contain certificates from other parties the client is you expect to communicate with, or from Certificate Authorities that are trusted to identify other parties.

      Setting a trust store instance resets any SSL context instance value previously specified.

      In case a custom trust store or custom SSL context is not specified, the trust management will be configured to use the default Java runtime settings.

      Parameters:
      trustStore - client-side trust store. Must not be null.
      Returns:
      an updated ssl client context builder instance.
      Throws:
      NullPointerException - in case the supplied trust store parameter is null.
      See Also:
    • keyStore

      public SslContextClientBuilder keyStore(KeyStore keyStore, String password)
      Set the client-side key store. Key store contains client's private keys, and the certificates with their corresponding public keys.

      Setting a key store instance resets any SSL context instance value previously specified.

      Note that for improved security of working with password data and avoid storing passwords in Java string objects, the keyStore(java.security.KeyStore, char[]) version of the method can be utilized. Also note that a custom key store is only required if you want to enable a custom setup of a 2-way SSL connections (client certificate authentication).

      Parameters:
      keyStore - client-side key store. Must not be null.
      password - client key password. Must not be null.
      Returns:
      an updated ssl client context builder instance.
      Throws:
      NullPointerException - in case any of the supplied parameters is null.
      See Also:
    • isDefaultSslContext

      public boolean isDefaultSslContext()
      Get information about used SSLContext.
      Returns:
      true when used SSLContext is acquired from SslConfigurator.getDefaultContext(), false otherwise.
    • get

      public SSLContext get()
      Supply SSLContext from this builder.
      Specified by:
      get in interface Supplier<SSLContext>
      Returns:
      SSLContext
    • build

      public SSLContext build()
      Build SSLContext from the Builder.
      Returns:
      SSLContext
    • defaultSslContextProvider

      protected SslContextClientBuilder defaultSslContextProvider(DefaultSslContextProvider defaultSslContextProvider)
      Set the default SSL context provider.
      Parameters:
      defaultSslContextProvider - the default SSL context provider.
      Returns:
      an updated ssl client context builder instance.