Skip to content

Instantly share code, notes, and snippets.

@xdu
Created April 4, 2012 13:25
Show Gist options
  • Save xdu/2301042 to your computer and use it in GitHub Desktop.
Save xdu/2301042 to your computer and use it in GitHub Desktop.
HttpComponents server over SSL socket
KeyStore ks = KeyStore.getInstance("JKS");
ks.load(CyberClient.class.getResourceAsStream("/test.keystore"), "password".toCharArray());
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
kmf.init(ks, "password".toCharArray());
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(kmf.getKeyManagers(), null, null);
SSLServerSocketFactory ssf = sc.getServerSocketFactory();
socket = (SSLServerSocket) ssf.createServerSocket(8888);
// socket = new ServerSocket(port);
params = new SyncBasicHttpParams()
.setIntParameter(CoreConnectionPNames.SO_TIMEOUT, 0)
.setIntParameter(CoreConnectionPNames.SOCKET_BUFFER_SIZE, 8*1024)
.setBooleanParameter(CoreConnectionPNames.STALE_CONNECTION_CHECK, false)
.setBooleanParameter(CoreConnectionPNames.TCP_NODELAY, true)
.setParameter(CoreProtocolPNames.ORIGIN_SERVER, "HttpComponents/1.1");
HttpProcessor proc = new ImmutableHttpProcessor(new HttpResponseInterceptor[] {
new ResponseDate(),
new ResponseServer(),
new ResponseContent(),
new ResponseConnControl()
});
HttpRequestHandlerRegistry registry = new HttpRequestHandlerRegistry();
registry.register("*", new CyberClientHandler());
service = new HttpService(
proc,
new DefaultConnectionReuseStrategy(),
new DefaultHttpResponseFactory(),
registry,
params);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment