1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 package org.apache.http.impl.nio.ssl;
29
30 import javax.net.ssl.SSLContext;
31 import javax.net.ssl.SSLException;
32
33 import org.apache.http.impl.nio.DefaultServerIOEventDispatch;
34 import org.apache.http.impl.nio.reactor.SSLIOSession;
35 import org.apache.http.impl.nio.reactor.SSLSetupHandler;
36 import org.apache.http.nio.NHttpServerIOTarget;
37 import org.apache.http.nio.NHttpServiceHandler;
38 import org.apache.http.nio.reactor.IOSession;
39 import org.apache.http.params.HttpConnectionParams;
40 import org.apache.http.params.HttpParams;
41 import org.apache.http.util.Args;
42
43
44
45
46
47
48
49
50
51 @Deprecated
52 public class SSLServerIOEventDispatch extends DefaultServerIOEventDispatch {
53
54 private final SSLContext sslContext;
55 private final SSLSetupHandler sslHandler;
56
57
58
59
60
61
62
63
64
65
66
67
68 public SSLServerIOEventDispatch(
69 final NHttpServiceHandler handler,
70 final SSLContext sslContext,
71 final SSLSetupHandler sslHandler,
72 final HttpParams params) {
73 super(handler, params);
74 Args.notNull(sslContext, "SSL context");
75 Args.notNull(params, "HTTP parameters");
76 this.sslContext = sslContext;
77 this.sslHandler = sslHandler;
78 }
79
80
81
82
83
84
85
86
87
88
89
90 public SSLServerIOEventDispatch(
91 final NHttpServiceHandler handler,
92 final SSLContext sslContext,
93 final HttpParams params) {
94 this(handler, sslContext, null, params);
95 }
96
97
98
99
100
101
102
103
104
105
106
107
108
109 protected SSLIOSession createSSLIOSession(
110 final IOSession session,
111 final SSLContext sslContext,
112 final SSLSetupHandler sslHandler) {
113 return new SSLIOSession(session, sslContext, sslHandler);
114 }
115
116 protected NHttpServerIOTarget createSSLConnection(final SSLIOSession sslioSession) {
117 return super.createConnection(sslioSession);
118 }
119
120 @Override
121 protected NHttpServerIOTarget createConnection(final IOSession session) {
122 final SSLIOSession sslioSession = createSSLIOSession(session, this.sslContext, this.sslHandler);
123 session.setAttribute(SSLIOSession.SESSION_KEY, sslioSession);
124 final NHttpServerIOTarget conn = createSSLConnection(sslioSession);
125 try {
126 sslioSession.initialize();
127 } catch (final SSLException ex) {
128 this.handler.exception(conn, ex);
129 sslioSession.shutdown();
130 }
131 return conn;
132 }
133
134 @Override
135 public void onConnected(final NHttpServerIOTarget conn) {
136 final int timeout = HttpConnectionParams.getSoTimeout(this.params);
137 conn.setSocketTimeout(timeout);
138 this.handler.connected(conn);
139 }
140
141 }