1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.waarp.openr66.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.protocol.configuration.Configuration;
31
32
33
34
35 public class HttpSslInitializer extends ChannelInitializer<SocketChannel> {
36 private final boolean useHttpCompression;
37
38 public HttpSslInitializer(final boolean useHttpCompression) {
39 this.useHttpCompression = useHttpCompression;
40 }
41
42 @Override
43 protected void initChannel(final SocketChannel ch) {
44 final ChannelPipeline pipeline = ch.pipeline();
45
46 final SslHandler sslhandler = Configuration.getWaarpSslContextFactory()
47 .createHandlerServer(false, ch);
48 pipeline.addLast("ssl", sslhandler);
49
50 pipeline.addLast("decoder", new HttpServerCodec());
51 pipeline.addLast("aggregator", new HttpObjectAggregator(
52 Configuration.configuration.getMaxGlobalMemory()));
53 pipeline.addLast("streamer", new ChunkedWriteHandler());
54 if (useHttpCompression) {
55 pipeline.addLast("deflater", new HttpContentCompressor());
56 }
57 pipeline.addLast("handler", new HttpSslHandler());
58 }
59
60 }