1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.waarp.openr66.proxy.protocol.http.adminssl;
21
22 import io.netty.channel.ChannelInitializer;
23 import io.netty.channel.ChannelPipeline;
24 import io.netty.channel.socket.SocketChannel;
25 import io.netty.handler.codec.http.HttpContentCompressor;
26 import io.netty.handler.codec.http.HttpObjectAggregator;
27 import io.netty.handler.codec.http.HttpServerCodec;
28 import io.netty.handler.ssl.SslHandler;
29 import io.netty.handler.stream.ChunkedWriteHandler;
30 import org.waarp.openr66.proxy.configuration.ConfigurationProxyR66;
31
32 import static org.waarp.openr66.protocol.configuration.Configuration.*;
33
34
35
36
37 public class HttpSslInitializer extends ChannelInitializer<SocketChannel> {
38 final boolean useHttpCompression;
39
40 public HttpSslInitializer(final boolean useHttpCompression) {
41 this.useHttpCompression = useHttpCompression;
42 }
43
44 @Override
45 protected void initChannel(final SocketChannel ch) {
46 final ChannelPipeline pipeline = ch.pipeline();
47
48 final SslHandler sslhandler =
49 getWaarpSslContextFactory().createHandlerServer(false, ch);
50 pipeline.addLast("ssl", sslhandler);
51
52 pipeline.addLast("decoder", new HttpServerCodec());
53 pipeline.addLast("aggregator", new HttpObjectAggregator(
54 ConfigurationProxyR66.configuration.getMaxGlobalMemory()));
55 pipeline.addLast("streamer", new ChunkedWriteHandler());
56 if (useHttpCompression) {
57 pipeline.addLast("deflater", new HttpContentCompressor());
58 }
59 pipeline.addLast("handler", new HttpSslHandlerProxyR66());
60 }
61 }