Class SslContextConfigurator
- java.lang.Object
-
- org.glassfish.tyrus.client.SslContextConfigurator
-
public class SslContextConfigurator extends java.lang.Object
Utility class, which helps to configure ssl context.Used to configure
SslEngineConfigurator
, which will be passed to client via configuration properties. Example:SslContextConfigurator sslContextConfigurator = new SslContextConfigurator(); sslContextConfigurator.setTrustStoreFile("..."); sslContextConfigurator.setTrustStorePassword("..."); sslContextConfigurator.setTrustStoreType("..."); sslContextConfigurator.setKeyStoreFile("..."); sslContextConfigurator.setKeyStorePassword("..."); sslContextConfigurator.setKeyStoreType("..."); SslEngineConfigurator sslEngineConfigurator = new SslEngineConfigurator(sslContextConfigurator, true, false, false); client.getProperties().put(ClientManager.SSL_ENGINE_CONFIGURATOR, sslEngineConfigurator);
- Author:
- Alexey Stashok, Hubert Iwaniuk, Bruno Harbulot, Marek Potociar (marek.potociar at oracle.com)
-
-
Field Summary
Fields Modifier and Type Field Description static SslContextConfigurator
DEFAULT_CONFIG
Default SSL configuration.static java.lang.String
KEY_FACTORY_MANAGER_ALGORITHM
Key manager factory algorithm name.static java.lang.String
KEY_STORE_FILE
Key store file name.static java.lang.String
KEY_STORE_PASSWORD
Key store file password - the password used to unlock the trust store file.static java.lang.String
KEY_STORE_PROVIDER
Key store provider name.static java.lang.String
KEY_STORE_TYPE
Key store type (seeKeyStore.getType()
for more info).static java.lang.String
TRUST_FACTORY_MANAGER_ALGORITHM
Trust manager factory algorithm name.static java.lang.String
TRUST_STORE_FILE
Trust store file name.static java.lang.String
TRUST_STORE_PASSWORD
Trust store file password - the password used to unlock the trust store file.static java.lang.String
TRUST_STORE_PROVIDER
Trust store provider name.static java.lang.String
TRUST_STORE_TYPE
Trust store type (seeKeyStore.getType()
for more info).
-
Constructor Summary
Constructors Constructor Description SslContextConfigurator()
Default constructor.SslContextConfigurator(boolean readSystemProperties)
Constructor that allows you creating empty configuration.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description javax.net.ssl.SSLContext
createSSLContext()
CreateSSLContext
from current configuration.SslContextConfigurator
retrieve(java.util.Properties props)
Retrieve settings from (system) properties.SslContextConfigurator
setKeyManagerFactoryAlgorithm(java.lang.String keyManagerFactoryAlgorithm)
Sets the key manager factory algorithm.SslContextConfigurator
setKeyPassword(char[] keyPassword)
Password of the key in the key store.SslContextConfigurator
setKeyPassword(java.lang.String keyPassword)
Password of the key in the key store.SslContextConfigurator
setKeyStoreBytes(byte[] keyStoreBytes)
Sets key store payload as byte array.SslContextConfigurator
setKeyStoreFile(java.lang.String keyStoreFile)
Sets key store file name, also makes sure that if other key store configuration parameters are not set to set them to default values.SslContextConfigurator
setKeyStorePassword(char[] keyStorePassword)
Password of key store.SslContextConfigurator
setKeyStorePassword(java.lang.String keyStorePassword)
Password of key store.SslContextConfigurator
setKeyStoreProvider(java.lang.String keyStoreProvider)
Sets the key store provider name.SslContextConfigurator
setKeyStoreType(java.lang.String keyStoreType)
Type of key store.SslContextConfigurator
setSecurityProtocol(java.lang.String securityProtocol)
Sets the SSLContext protocol.SslContextConfigurator
setTrustManagerFactoryAlgorithm(java.lang.String trustManagerFactoryAlgorithm)
Sets the trust manager factory algorithm.SslContextConfigurator
setTrustStoreBytes(byte[] trustStoreBytes)
Sets trust store payload as byte array.SslContextConfigurator
setTrustStoreFile(java.lang.String trustStoreFile)
Sets trust store file name, also makes sure that if other trust store configuration parameters are not set to set them to default values.SslContextConfigurator
setTrustStorePassword(java.lang.String trustStorePassword)
Password of trust store.SslContextConfigurator
setTrustStoreProvider(java.lang.String trustStoreProvider)
Sets the trust store provider name.SslContextConfigurator
setTrustStoreType(java.lang.String trustStoreType)
Type of trust store.boolean
validateConfiguration()
ValidatesSslContextConfigurator
configuration.boolean
validateConfiguration(boolean needsKeyStore)
ValidatesSslContextConfigurator
configuration.
-
-
-
Field Detail
-
TRUST_STORE_PROVIDER
public static final java.lang.String TRUST_STORE_PROVIDER
Trust store provider name.The value MUST be a
String
representing the name of a trust store provider.No default value is set.
The name of the configuration property is "javax.net.ssl.trustStoreProvider".
- See Also:
- Constant Field Values
-
KEY_STORE_PROVIDER
public static final java.lang.String KEY_STORE_PROVIDER
Key store provider name.The value MUST be a
String
representing the name of a trust store provider.No default value is set.
The name of the configuration property is "javax.net.ssl.keyStoreProvider".
- See Also:
- Constant Field Values
-
TRUST_STORE_FILE
public static final java.lang.String TRUST_STORE_FILE
Trust store file name.The value MUST be a
String
representing the name of a trust store file.No default value is set.
The name of the configuration property is "javax.net.ssl.trustStore".
- See Also:
- Constant Field Values
-
KEY_STORE_FILE
public static final java.lang.String KEY_STORE_FILE
Key store file name.The value MUST be a
String
representing the name of a key store file.No default value is set.
The name of the configuration property is "javax.net.ssl.keyStore".
- See Also:
- Constant Field Values
-
TRUST_STORE_PASSWORD
public static final java.lang.String TRUST_STORE_PASSWORD
Trust store file password - the password used to unlock the trust store file.The value MUST be a
String
representing the trust store file password.No default value is set.
The name of the configuration property is "javax.net.ssl.trustStorePassword".
- See Also:
- Constant Field Values
-
KEY_STORE_PASSWORD
public static final java.lang.String KEY_STORE_PASSWORD
Key store file password - the password used to unlock the trust store file.The value MUST be a
String
representing the key store file password.No default value is set.
The name of the configuration property is "javax.net.ssl.keyStorePassword".
- See Also:
- Constant Field Values
-
TRUST_STORE_TYPE
public static final java.lang.String TRUST_STORE_TYPE
Trust store type (seeKeyStore.getType()
for more info).The value MUST be a
String
representing the trust store type name.No default value is set.
The name of the configuration property is "javax.net.ssl.trustStoreType".
- See Also:
- Constant Field Values
-
KEY_STORE_TYPE
public static final java.lang.String KEY_STORE_TYPE
Key store type (seeKeyStore.getType()
for more info).The value MUST be a
String
representing the key store type name.No default value is set.
The name of the configuration property is "javax.net.ssl.keyStoreType".
- See Also:
- Constant Field Values
-
KEY_FACTORY_MANAGER_ALGORITHM
public static final java.lang.String KEY_FACTORY_MANAGER_ALGORITHM
Key manager factory algorithm name.The value MUST be a
String
representing the key manager factory algorithm name.No default value is set.
The name of the configuration property is "ssl.KeyManagerFactory.algorithm".
- See Also:
- Constant Field Values
-
TRUST_FACTORY_MANAGER_ALGORITHM
public static final java.lang.String TRUST_FACTORY_MANAGER_ALGORITHM
Trust manager factory algorithm name.The value MUST be a
String
representing the trust manager factory algorithm name.No default value is set.
The name of the configuration property is "ssl.TrustManagerFactory.algorithm".
- See Also:
- Constant Field Values
-
DEFAULT_CONFIG
public static final SslContextConfigurator DEFAULT_CONFIG
Default SSL configuration. If you have changed any ofSystem.getProperties()
of javax.net.ssl family you should refresh this configuration by callingretrieve(java.util.Properties)
.
-
-
Constructor Detail
-
SslContextConfigurator
public SslContextConfigurator()
Default constructor. Reads configuration properties fromSystem.getProperties()
. CallsSslContextConfigurator(boolean)
withtrue
.
-
SslContextConfigurator
public SslContextConfigurator(boolean readSystemProperties)
Constructor that allows you creating empty configuration.- Parameters:
readSystemProperties
- Iftrue
populates configuration fromSystem.getProperties()
, else you have empty configuration.
-
-
Method Detail
-
setTrustStoreProvider
public SslContextConfigurator setTrustStoreProvider(java.lang.String trustStoreProvider)
Sets the trust store provider name.- Parameters:
trustStoreProvider
- Trust store provider to set.- Returns:
- updated
SslContextConfigurator
instance.
-
setKeyStoreProvider
public SslContextConfigurator setKeyStoreProvider(java.lang.String keyStoreProvider)
Sets the key store provider name.- Parameters:
keyStoreProvider
- Key store provider to set.- Returns:
- updated
SslContextConfigurator
instance.
-
setTrustStoreType
public SslContextConfigurator setTrustStoreType(java.lang.String trustStoreType)
Type of trust store.- Parameters:
trustStoreType
- Type of trust store to set.- Returns:
- updated
SslContextConfigurator
instance.
-
setKeyStoreType
public SslContextConfigurator setKeyStoreType(java.lang.String keyStoreType)
Type of key store.- Parameters:
keyStoreType
- Type of key store to set.- Returns:
- updated
SslContextConfigurator
instance.
-
setTrustStorePassword
public SslContextConfigurator setTrustStorePassword(java.lang.String trustStorePassword)
Password of trust store.- Parameters:
trustStorePassword
- Password of trust store to set.- Returns:
- updated
SslContextConfigurator
instance.
-
setKeyStorePassword
public SslContextConfigurator setKeyStorePassword(java.lang.String keyStorePassword)
Password of key store.- Parameters:
keyStorePassword
- Password of key store to set.- Returns:
- updated
SslContextConfigurator
instance.
-
setKeyStorePassword
public SslContextConfigurator setKeyStorePassword(char[] keyStorePassword)
Password of key store.- Parameters:
keyStorePassword
- Password of key store to set.- Returns:
- updated
SslContextConfigurator
instance.
-
setKeyPassword
public SslContextConfigurator setKeyPassword(java.lang.String keyPassword)
Password of the key in the key store.- Parameters:
keyPassword
- Password of key to set.- Returns:
- updated
SslContextConfigurator
instance.
-
setKeyPassword
public SslContextConfigurator setKeyPassword(char[] keyPassword)
Password of the key in the key store.- Parameters:
keyPassword
- Password of key to set.- Returns:
- updated
SslContextConfigurator
instance.
-
setTrustStoreFile
public SslContextConfigurator setTrustStoreFile(java.lang.String trustStoreFile)
Sets trust store file name, also makes sure that if other trust store configuration parameters are not set to set them to default values. Method resets trust store bytes if any have been set before viasetTrustStoreBytes(byte[])
.- Parameters:
trustStoreFile
- File name of trust store.- Returns:
- updated
SslContextConfigurator
instance.
-
setTrustStoreBytes
public SslContextConfigurator setTrustStoreBytes(byte[] trustStoreBytes)
Sets trust store payload as byte array. Method resets trust store file if any has been set before viasetTrustStoreFile(java.lang.String)
.- Parameters:
trustStoreBytes
- trust store payload.- Returns:
- updated
SslContextConfigurator
instance.
-
setKeyStoreFile
public SslContextConfigurator setKeyStoreFile(java.lang.String keyStoreFile)
Sets key store file name, also makes sure that if other key store configuration parameters are not set to set them to default values. Method resets key store bytes if any have been set before viasetKeyStoreBytes(byte[])
.- Parameters:
keyStoreFile
- File name of key store.- Returns:
- updated
SslContextConfigurator
instance.
-
setKeyStoreBytes
public SslContextConfigurator setKeyStoreBytes(byte[] keyStoreBytes)
Sets key store payload as byte array. Method resets key store file if any has been set before viasetKeyStoreFile(java.lang.String)
.- Parameters:
keyStoreBytes
- key store payload.- Returns:
- updated
SslContextConfigurator
instance.
-
setTrustManagerFactoryAlgorithm
public SslContextConfigurator setTrustManagerFactoryAlgorithm(java.lang.String trustManagerFactoryAlgorithm)
Sets the trust manager factory algorithm.- Parameters:
trustManagerFactoryAlgorithm
- the trust manager factory algorithm.- Returns:
- updated
SslContextConfigurator
instance.
-
setKeyManagerFactoryAlgorithm
public SslContextConfigurator setKeyManagerFactoryAlgorithm(java.lang.String keyManagerFactoryAlgorithm)
Sets the key manager factory algorithm.- Parameters:
keyManagerFactoryAlgorithm
- the key manager factory algorithm.- Returns:
- updated
SslContextConfigurator
instance.
-
setSecurityProtocol
public SslContextConfigurator setSecurityProtocol(java.lang.String securityProtocol)
Sets the SSLContext protocol. The default value isTLS
if this is null.- Parameters:
securityProtocol
- Protocol forSSLContext.getProtocol()
.- Returns:
- updated
SslContextConfigurator
instance.
-
validateConfiguration
public boolean validateConfiguration()
ValidatesSslContextConfigurator
configuration.- Returns:
true
if configuration is valid, elsefalse
.
-
validateConfiguration
public boolean validateConfiguration(boolean needsKeyStore)
ValidatesSslContextConfigurator
configuration.- Parameters:
needsKeyStore
- forces failure if no keystore is specified.- Returns:
true
if configuration is valid, elsefalse
.
-
createSSLContext
public javax.net.ssl.SSLContext createSSLContext()
CreateSSLContext
from current configuration.- Returns:
- created
SSLContext
.
-
retrieve
public SslContextConfigurator retrieve(java.util.Properties props)
Retrieve settings from (system) properties.- Parameters:
props
- property map (usually taken fromSystem.getProperties()
).- Returns:
- updated
SslContextConfigurator
instance.
-
-