public void init()

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);
        }
    }