Search in sources :

Example 21 with SSLServerSocketFactory

use of javax.net.ssl.SSLServerSocketFactory in project java-chassis by ServiceComb.

the class SSLManager method createSSLServerSocket.

public static SSLServerSocket createSSLServerSocket(SSLOption option, SSLCustom custom) {
    try {
        SSLContext context = createSSLContext(option, custom);
        SSLServerSocketFactory factory = context.getServerSocketFactory();
        SSLServerSocket socket = (SSLServerSocket) factory.createServerSocket();
        socket.setEnabledProtocols(option.getProtocols().split(","));
        String[] supported = socket.getSupportedCipherSuites();
        String[] eanbled = option.getCiphers().split(",");
        socket.setEnabledCipherSuites(getEnabledCiphers(supported, eanbled));
        socket.setNeedClientAuth(option.isAuthPeer());
        return socket;
    } catch (UnknownHostException e) {
        throw new IllegalArgumentException("unkown host");
    } catch (IOException e) {
        throw new IllegalArgumentException("unable create socket");
    }
}
Also used : UnknownHostException(java.net.UnknownHostException) SSLServerSocketFactory(javax.net.ssl.SSLServerSocketFactory) SSLContext(javax.net.ssl.SSLContext) IOException(java.io.IOException) SSLServerSocket(javax.net.ssl.SSLServerSocket)

Example 22 with SSLServerSocketFactory

use of javax.net.ssl.SSLServerSocketFactory in project athenz by yahoo.

the class SocketTest method runPingServer.

private void runPingServer(int port, KeyRefresher keyRefresher) throws Exception {
    SSLContext sslContext = Utils.buildSSLContext(keyRefresher.getKeyManagerProxy(), keyRefresher.getTrustManagerProxy());
    SSLServerSocketFactory sslServerSocketFactory = sslContext.getServerSocketFactory();
    SSLServerSocket sslServerSocket = (SSLServerSocket) sslServerSocketFactory.createServerSocket(port);
    new Thread(() -> {
        while (running) {
            try {
                final Socket s = sslServerSocket.accept();
                new Thread(() -> {
                    try {
                        BufferedReader is = new BufferedReader(new InputStreamReader(s.getInputStream()));
                        OutputStream os = s.getOutputStream();
                        while (running) {
                            String line = is.readLine();
                            if (line.equals("ping")) {
                                os.write("pong\n".getBytes());
                            }
                        }
                    } catch (IOException ignored) {
                    // die
                    }
                }).start();
            } catch (IOException ignored) {
            // die.
            }
        }
    }).start();
}
Also used : InputStreamReader(java.io.InputStreamReader) OutputStream(java.io.OutputStream) BufferedReader(java.io.BufferedReader) SSLServerSocketFactory(javax.net.ssl.SSLServerSocketFactory) SSLContext(javax.net.ssl.SSLContext) IOException(java.io.IOException) SSLServerSocket(javax.net.ssl.SSLServerSocket) Socket(java.net.Socket) SSLSocket(javax.net.ssl.SSLSocket) SSLServerSocket(javax.net.ssl.SSLServerSocket)

Aggregations

SSLServerSocketFactory (javax.net.ssl.SSLServerSocketFactory)22 SSLServerSocket (javax.net.ssl.SSLServerSocket)13 SSLContext (javax.net.ssl.SSLContext)10 IOException (java.io.IOException)7 ServerSocket (java.net.ServerSocket)4 KeyStore (java.security.KeyStore)4 KeyManagerFactory (javax.net.ssl.KeyManagerFactory)4 SSLSocket (javax.net.ssl.SSLSocket)3 TrustManagerFactory (javax.net.ssl.TrustManagerFactory)3 InetAddress (java.net.InetAddress)2 SSLSessionContext (javax.net.ssl.SSLSessionContext)2 ObjectID (iaik.asn1.ObjectID)1 AlgorithmID (iaik.asn1.structures.AlgorithmID)1 Name (iaik.asn1.structures.Name)1 X509Certificate (iaik.x509.X509Certificate)1 BufferedReader (java.io.BufferedReader)1 InputStream (java.io.InputStream)1 InputStreamReader (java.io.InputStreamReader)1 OutputStream (java.io.OutputStream)1 UnsupportedEncodingException (java.io.UnsupportedEncodingException)1