1 package com.freemindcafe.socket.ssl.sample4;
4 import javax.net.ssl.KeyManager;
5 import javax.net.ssl.KeyManagerFactory;
6 import javax.net.ssl.SSLContext;
7 import javax.net.ssl.SSLServerSocket;
8 import javax.net.ssl.SSLServerSocketFactory;
9 import javax.net.ssl.SSLSocket;
10 import javax.net.ssl.TrustManagerFactory;
11 import javax.net.ssl.X509KeyManager;
13 import org.junit.Test;
15 import java.io.BufferedReader;
16 import java.io.FileInputStream;
17 import java.io.InputStream;
18 import java.io.InputStreamReader;
19 import java.net.InetAddress;
20 import java.net.Socket;
21 import java.security.KeyStore;
22 import java.security.Principal;
23 import java.security.PrivateKey;
24 import java.security.cert.X509Certificate;
29 public void ssl_server_that_demands_client_auth() {
33 "javax.net.ssl.trustStore",currentDir()+
"/src/com/freemindcafe/socket/ssl/sample4/serverkeystore.jks");
34 System.setProperty(
"javax.net.ssl.trustStorePassword",
"password");
36 "javax.net.ssl.keyStore",
37 currentDir()+
"/src/com/freemindcafe/socket/ssl/sample4/serverkeystore.jks");
38 System.setProperty(
"javax.net.ssl.keyStorePassword",
"password");
39 System.setProperty(
"javax.net.debug",
"ssl:handshake");
41 SSLServerSocketFactory sslserversocketfactory = (SSLServerSocketFactory) SSLServerSocketFactory
43 SSLServerSocket sslserversocket = (SSLServerSocket) sslserversocketfactory
44 .createServerSocket(9999);
46 sslserversocket.setNeedClientAuth(
true);
47 SSLSocket sslsocket = (SSLSocket) sslserversocket.accept();
49 InputStream inputstream = sslsocket.getInputStream();
50 InputStreamReader inputstreamreader =
new InputStreamReader(
52 BufferedReader bufferedreader =
new BufferedReader(
56 while ((
string = bufferedreader.readLine()) != null) {
57 System.out.println(
"server printing ################");
58 System.out.println(
string);
61 }
catch (Exception exception) {
62 exception.printStackTrace();