in core/src/main/java/org/apache/mina/transport/nio/SslHelper.java [156:195]
public void init() {
if (sslEngine != null) {
// We already have a SSL engine created, no need to create a new one
return;
}
LOGGER.debug("{} Initializing the SSLEngine", session);
InetSocketAddress peer = session.getAttribute(PEER_ADDRESS, null);
// Create the SSL engine here
if (peer == null) {
sslEngine = sslContext.createSSLEngine();
} else {
sslEngine = sslContext.createSSLEngine(peer.getHostName(), peer.getPort());
}
// Initialize the engine in client mode if necessary
sslEngine.setUseClientMode(session.getService() instanceof IoClient);
// Initialize the different SslEngine modes
if (!sslEngine.getUseClientMode()) {
// Those parameters are only valid when in server mode
boolean needClientAuth = session.getAttribute(NEED_CLIENT_AUTH, false);
boolean wantClientAuth = session.getAttribute(WANT_CLIENT_AUTH, false);
// The WantClientAuth supersede the NeedClientAuth, if set.
if (needClientAuth) {
sslEngine.setNeedClientAuth(true);
}
if (wantClientAuth) {
sslEngine.setWantClientAuth(true);
}
}
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("{} SSL Handler Initialization done.", session);
}
}