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 HttpReponsiveSslInitializer
36 extends ChannelInitializer<SocketChannel> {
37 private final boolean useHttpCompression;
38
39 public HttpReponsiveSslInitializer(final boolean useHttpCompression) {
40 this.useHttpCompression = useHttpCompression;
41 }
42
43 @Override
44 protected void initChannel(final SocketChannel ch) {
45 final ChannelPipeline pipeline = ch.pipeline();
46
47 final SslHandler sslhandler = Configuration.getWaarpSslContextFactory()
48 .createHandlerServer(false, ch);
49 pipeline.addLast("ssl", sslhandler);
50
51 pipeline.addLast("decoder", new HttpServerCodec());
52 pipeline.addLast("aggregator", new HttpObjectAggregator(
53 Configuration.configuration.getMaxGlobalMemory()));
54 pipeline.addLast("streamer", new ChunkedWriteHandler());
55 if (useHttpCompression) {
56 pipeline.addLast("deflater", new HttpContentCompressor());
57 }
58 pipeline.addLast("handler", new HttpResponsiveSslHandler());
59 }
60
61 }