Class SecurityConfig.Builder

java.lang.Object
com.couchbase.client.dcp.SecurityConfig.Builder
Enclosing class:
SecurityConfig

public static class SecurityConfig.Builder extends Object
This builder allows to customize the default security configuration.
  • Constructor Details

    • Builder

      public Builder()
  • Method Details

    • build

      public SecurityConfig build()
      Builds the SecurityConfig out of this builder.
      Returns:
      the built security config.
    • enableTls

      public SecurityConfig.Builder enableTls(boolean tlsEnabled)
      Enables TLS for all client/server communication (disabled by default).
      Parameters:
      tlsEnabled - true if enabled, false otherwise.
      Returns:
      this SecurityConfig.Builder for chaining purposes.
    • enableHostnameVerification

      public SecurityConfig.Builder enableHostnameVerification(boolean hostnameVerificationEnabled)
      Allows to enable or disable hostname verification (enabled by default).

      Note that disabling hostname verification will cause the TLS connection to not verify that the hostname/ip is actually part of the certificate and as a result not detect certain kinds of attacks. Only disable if you understand the impact and risks!

      Parameters:
      hostnameVerificationEnabled - set to true if it should be enabled, false for disabled.
      Returns:
      this SecurityConfig.Builder for chaining purposes.
    • enableNativeTls

      public SecurityConfig.Builder enableNativeTls(boolean nativeTlsEnabled)
      Enables/disables native TLS (enabled by default).
      Parameters:
      nativeTlsEnabled - true if it should be enabled, false otherwise.
      Returns:
      this SecurityConfig.Builder for chaining purposes.
    • trustCertificates

      public SecurityConfig.Builder trustCertificates(List<X509Certificate> certificates)
      Loads the given list of X.509 certificates into the trust store.
      Parameters:
      certificates - the list of certificates to load.
      Returns:
      this SecurityConfig.Builder for chaining purposes.
    • trustCertificate

      public SecurityConfig.Builder trustCertificate(Path certificatePath)
      Loads a X.509 trust certificate from the given path and uses it.
      Parameters:
      certificatePath - the path to load the certificate from.
      Returns:
      this SecurityConfig.Builder for chaining purposes.
    • trustManagerFactory

      public SecurityConfig.Builder trustManagerFactory(TrustManagerFactory trustManagerFactory)
      Allows to provide a trust manager factory directly for maximum flexibility.

      While providing the most flexibility, most users will find the other overloads more convenient, like passing in a trustStore(KeyStore) directly or via filepath trustStore(Path, String, String).

      Parameters:
      trustManagerFactory - the trust manager factory to use.
      Returns:
      this SecurityConfig.Builder for chaining purposes.
    • trustStore

      public SecurityConfig.Builder trustStore(KeyStore trustStore)
      Initializes the TrustManagerFactory with the given trust store.
      Parameters:
      trustStore - the loaded trust store to use.
      Returns:
      this SecurityConfig.Builder for chaining purposes.
    • trustStore

      public SecurityConfig.Builder trustStore(Path trustStorePath, String trustStorePassword)
      Loads a trust store from a file path and password and initializes the TrustManagerFactory.

      Assumes the file format is readable by KeyStore.getDefaultType() (this typically includes JKS and PKCS12).

      Parameters:
      trustStorePath - the path to the truststore.
      trustStorePassword - the password (can be null if not password protected).
      Returns:
      this SecurityConfig.Builder for chaining purposes.
    • trustStore

      public SecurityConfig.Builder trustStore(Path trustStorePath, String trustStorePassword, String trustStoreType)
      Loads a trust store from a file path and password and initializes the TrustManagerFactory.
      Parameters:
      trustStorePath - the path to the truststore.
      trustStorePassword - the password (can be null if not password protected).
      trustStoreType - (nullable) the type of the trust store. If null, the KeyStore.getDefaultType() will be used.
      Returns:
      this SecurityConfig.Builder for chaining purposes.