Package com.merative.acd.v1.util
Class HttpClientOptions
- java.lang.Object
-
- com.merative.acd.v1.util.HttpClientOptions
-
public class HttpClientOptions extends java.lang.Object
Options for customizing the HttpClient. The available HttpClient options provided by this class are: 1. Trust All Certificates 2. Keystore Provided (containing your client certificate and private key) NOTE: These options default to 'false' if not set. Trust All Certificates: By default, SSL certificate verification is performed using a CA certificate store. Ensuring that the certificate is signed by a CA that is present in the store is how to verify that the remote server is who it claims it is. In the case of self-signed certificates, the server is using a certificate that may not be signed by one of the CAs in the store. In this case, attempting to establish a connection to the server will result in an SSLHandshakeException. By configuring your HTTP Client options with 'trust all certificates' is one way to deal with self-signed certificates. NOTE: This mode is considered insecure with the possibility for a man-in-the-middle attack. Usage Example: HttpClientOptions httpOptions = new HttpClientOptions.Builder().trustAllCertificates(true).build(); Keystore Provided: If the endpoint that you are connecting to has Mutual TLS configured, as a Java client, you will be required to provide a keystore. The keystore will need to contain your client certificate and private key. For reference, a PKCS12 keystore can be created using the 'openssl' utility: openssl pkcs12 -export -in (file_containing_your_client_certificate) -inkey (file_containing_your_private_key) -out (desired_keystore_filename.p12) The keystore file, keystore password, and keystore type can be configured one of two ways: 1. System properties -Djavax.net.ssl.keyStore=$your_keystore_filename -Djavax.net.ssl.keyStorePassword=$your_keystore_password -Djavax.net.ssl.keyStoreType=$your_keystore_type 2. HttpClientOptions.Builder keyStoreFile(), keyStorePassword(), and keyStoreType() methods NOTE: When customizing your HttpClient with a keystore, the Builder keyStoreProvided() method must be set to 'true'. Usage Example: HttpClientOptions httpOptions = new HttpClientOptions.Builder().keyStoreProvided(true).build() -- In this example, keyStoreProvided() is 'true', and since the Builder's keyStoreFile(), keyStorePassword(), and keyStoreType() were not included, the code will look in the system properties for the keyStoreFile, keyStorePassword, and keyStoreType.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
HttpClientOptions.Builder
Builder.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
getKeyStoreFile()
Get the name of the keyStoreFile.java.lang.String
getKeyStorePass()
Get the keyStore password.java.lang.String
getKeyStoreType()
Get the keyStore type.boolean
isKeyStoreProvided()
Check if keyStore is provided.boolean
isTrustAllCertificates()
Check if trustAllCertificates is set.
-
-
-
Method Detail
-
isTrustAllCertificates
public boolean isTrustAllCertificates()
Check if trustAllCertificates is set.- Returns:
- true or false
-
isKeyStoreProvided
public boolean isKeyStoreProvided()
Check if keyStore is provided.- Returns:
- true or false
-
getKeyStoreFile
public java.lang.String getKeyStoreFile()
Get the name of the keyStoreFile.- Returns:
- name of keyStore file
-
getKeyStoreType
public java.lang.String getKeyStoreType()
Get the keyStore type.- Returns:
- the keyStore type, i.e "PKCS12"
-
getKeyStorePass
public java.lang.String getKeyStorePass()
Get the keyStore password.- Returns:
- keyStore password
-
-