1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.waarp.commandexec.ssl.client;
21
22 import io.netty.channel.ChannelPipeline;
23 import io.netty.channel.socket.SocketChannel;
24 import io.netty.handler.codec.DelimiterBasedFrameDecoder;
25 import io.netty.handler.codec.Delimiters;
26 import io.netty.handler.codec.string.StringDecoder;
27 import io.netty.handler.codec.string.StringEncoder;
28 import io.netty.handler.ssl.SslHandler;
29 import org.waarp.commandexec.client.LocalExecClientInitializer;
30 import org.waarp.common.crypto.ssl.WaarpSslContextFactory;
31 import org.waarp.common.utility.WaarpStringUtils;
32
33
34
35
36 public class LocalExecSslClientInitializer extends LocalExecClientInitializer {
37
38 private final WaarpSslContextFactory waarpSslContextFactory;
39
40 public LocalExecSslClientInitializer(
41 final WaarpSslContextFactory waarpSslContextFactory) {
42 this.waarpSslContextFactory = waarpSslContextFactory;
43 }
44
45 @Override
46 protected void initChannel(final SocketChannel ch) {
47
48 final ChannelPipeline pipeline = ch.pipeline();
49
50
51 final SslHandler sslhandler =
52 waarpSslContextFactory.createHandlerClient(ch);
53 pipeline.addLast("ssl", sslhandler);
54
55 pipeline.addLast("framer", new DelimiterBasedFrameDecoder(8192,
56 Delimiters.lineDelimiter()));
57 pipeline.addLast("decoder", new StringDecoder(WaarpStringUtils.UTF8));
58 pipeline.addLast("encoder", new StringEncoder(WaarpStringUtils.UTF8));
59
60
61 final LocalExecSslClientHandler localExecClientHandler =
62 new LocalExecSslClientHandler(this);
63 pipeline.addLast("handler", localExecClientHandler);
64 }
65
66 }