1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.jboss.netty.example.http.snoop;
17
18 import static org.jboss.netty.channel.Channels.*;
19
20 import javax.net.ssl.SSLEngine;
21
22 import org.jboss.netty.channel.ChannelPipeline;
23 import org.jboss.netty.channel.ChannelPipelineFactory;
24 import org.jboss.netty.example.securechat.SecureChatSslContextFactory;
25 import org.jboss.netty.handler.codec.http.HttpClientCodec;
26 import org.jboss.netty.handler.codec.http.HttpContentDecompressor;
27 import org.jboss.netty.handler.ssl.SslHandler;
28
29 public class HttpSnoopClientPipelineFactory implements ChannelPipelineFactory {
30
31 private final boolean ssl;
32
33 public HttpSnoopClientPipelineFactory(boolean ssl) {
34 this.ssl = ssl;
35 }
36
37 public ChannelPipeline getPipeline() throws Exception {
38
39 ChannelPipeline pipeline = pipeline();
40
41
42 if (ssl) {
43 SSLEngine engine =
44 SecureChatSslContextFactory.getClientContext().createSSLEngine();
45 engine.setUseClientMode(true);
46
47 pipeline.addLast("ssl", new SslHandler(engine));
48 }
49
50 pipeline.addLast("codec", new HttpClientCodec());
51
52
53 pipeline.addLast("inflater", new HttpContentDecompressor());
54
55
56
57
58 pipeline.addLast("handler", new HttpSnoopClientHandler());
59 return pipeline;
60 }
61 }