public class SSLRemoteApplication extends RemoteApplication implements X509TrustManager
Note: The SSL connection is not supported for Applets calling this API (i.e. inside a browser). The calling Java code must be run as a Java Application, Servlet, etc.
RemoteApplication
CONNECTION_ALLOWED, EVENT_ERROR, EVENT_INFORMATIONAL, EVENT_WARNING, RAPP_CLOSE, RAPP_GET_REPLY, RAPP_ID_TRANS, RAPP_LOG_EVENT, RAPP_REPLY_DATA, RAPP_REPLY_ERROR, RAPP_REQUEST_ACK, RAPP_REQUEST_DATA, RAPP_REQUEST_NACK, RAPP_STATUS_TRANS, STATUS_ERROR, STATUS_OK, STATUS_REDIRECTION, TRANSACTION_LEVEL
Constructor and Description |
---|
SSLRemoteApplication(String applicationName)
Creates a new instance of the SSL Remote Application class using the
specified
applicationName without a previous connection
(i.e. |
SSLRemoteApplication(String applicationName,
String sessionID)
Creates a new instance of the SSL Remote Application class using the
specified
applicationName and a previous
sessionID (if non-null). |
Modifier and Type | Method and Description |
---|---|
void |
checkClientTrusted(X509Certificate[] chain,
String authType)
Given the partial or complete certificate chain provided by the peer, build a certificate
path to a trusted root and return if it can be validated and is trusted for client SSL
authentication based on the authentication type.
|
void |
checkServerTrusted(X509Certificate[] chain,
String authType)
Given the partial or complete certificate chain provided by the peer, build a certificate
path to a trusted root and return if it can be validated and is trusted for server SSL
authentication based on the authentication type.
|
protected String |
connect(String hostName,
int port)
Connects to a server over an SSL socket.
|
X509Certificate[] |
getAcceptedIssuers()
Gets an array of certificate authority certificates which are trusted for authenticating peers.
|
String |
paramString()
Gets the parameter string for this class for testing purposes.
|
void |
setClientCertificate(String certificateFileName,
String privateKeyPassword)
Sets the client certificate file name to use if the server application
in the server requires "client certificates".
|
void |
setStrongEncryption(boolean doStrongEncryption)
Selects 128 bit encryption (true) or not (false).
|
close, connect, connect, getReply, getServerHostAddress, getServerPort, getSessionID, hasBlockingReply, inDebugMode, isConnected, isSessionIDReconnectable, logDebugOutput, logServerEvent, requestClose, requestTransaction, setAuthentication, setDebugMode, setServer, setServers, setStaticDebugMode, toString
public SSLRemoteApplication(String applicationName)
applicationName
without a previous connection
(i.e. a sessionID
).
Use the method setStrongEncryption
to select 128 bit encryption
(true) or not (false).
Use the method setClientCertificate
to define
the file name to use if a "client certificate" is used for the
application in the server.
Use the calls setServer
or setServers
to set up the servers to contact.
If user authentication is required, use the method
setAuthentication
to set it up.
After this has been done, call the connect
method
to establish a connection.
applicationName
- The application name to use.setStrongEncryption(boolean)
,
setClientCertificate(java.lang.String, java.lang.String)
public SSLRemoteApplication(String applicationName, String sessionID)
applicationName
and a previous
sessionID
(if non-null).
Use the method setStrongEncryption
to select 128 bit encryption
(true) or not (false), default is strong.
Use the method setClientCertificate
to define
the file name to use if a "client certificate" is used for the
application in the server.
Use the calls setServer
or setServers
to set up the servers to contact.
If user authentication is required, use the method
setAuthentication
to set it up.
After this has been done, call the connect
method
to establish a connection.
applicationName
- The application name to use.sessionID
- The previously connection session ID
or null for none.setStrongEncryption(boolean)
,
setClientCertificate(java.lang.String, java.lang.String)
public void setStrongEncryption(boolean doStrongEncryption)
doStrongEncryption
- Select true
to use 128 bit encryption
of false
for less.public void setClientCertificate(String certificateFileName, String privateKeyPassword)
certificateFileName
- The certificate file name or null for none.privateKeyPassword
- The private key password or null for none.protected String connect(String hostName, int port) throws UnknownHostException, IOException
connect
in class RemoteApplication
IOException
- if an I/O error occurs when creating the socket.UnknownHostException
- Thrown to indicate that the IP address of a host could not be determined.public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException
checkClientTrusted
in interface X509TrustManager
chain
- The peer certificate chain.authType
- The authentication type based on the client certificate.CertificateException
- Always, a client doesn't connect in our case.public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException
The authentication type is the key exchange algorithm portion of the cipher suites represented as a String, such as "RSA", "DHE_DSS". Note: for some exportable cipher suites, the key exchange algorithm is determined at run time during the handshake. For instance, for TLS_RSA_EXPORT_WITH_RC4_40_MD5, the authType should be RSA_EXPORT when an ephemeral RSA key is used for the key exchange, and RSA when the key from the server certificate is used. Checking is case-sensitive.
checkServerTrusted
in interface X509TrustManager
chain
- The peer certificate chain.authType
- The authentication type based on the client certificate.CertificateException
- Always, a client doesn't connect in our case.public X509Certificate[] getAcceptedIssuers()
getAcceptedIssuers
in interface X509TrustManager
public String paramString()
paramString
in class RemoteApplication
Phantom® and NetPhantom® are registered trademarks of Mindus SARL.
© © Mindus SARL, 2024. All rights reserved.