Netty入门(七)使用SSL/TLS加密Netty程序
生活随笔
收集整理的這篇文章主要介紹了
Netty入门(七)使用SSL/TLS加密Netty程序
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
為了支持 SSL/TLS,Java 提供了 javax.net.ssl API 的類 SslContext 和 SslEngine 使它相對(duì)簡(jiǎn)單的實(shí)現(xiàn)解密和加密。Netty 利用該 API 實(shí)現(xiàn)了 ChannelHandler 的子類 SslHandler。下圖為 Sslhandler 的數(shù)據(jù)流圖:
?
? 下面是 SslHandler 的一個(gè)簡(jiǎn)單使用:
1 public class SslChannelInitializer extends ChannelInitializer<Channel> { 2 private final SslContext context; 3 private final boolean client; 4 private final boolean startTls; // 第一次請(qǐng)求是否加密 5 6 public SslChannelInitializer(SslContext context, boolean client, boolean startTls) { 7 this.context = context; 8 this.client = client; 9 this.startTls = startTls; 10 } 11 12 @Override 13 protected void initChannel(Channel ch) throws Exception { 14 // 給每個(gè) SslHandler 實(shí)例使用一個(gè)新的 SslEngine 15 SSLEngine engine = context.newEngine(ch.alloc()); 16 engine.setUseClientMode(client); // 設(shè)置SslEngine是client或者是server模式 17 // 添加SslHandler到pipeline作為第一個(gè)處理器 18 ch.pipeline().addFirst("ssl", new SslHandler(engine, startTls)); 19 } 20 21 }?
? 如上所示,SslHandler 使用 ChannelInitializer 添加到 ChannelPipeline。在大多數(shù)情況下,SslHandler 將成為 ChannelPipeline 的第一個(gè) ChannelHandler。
SslHandler 還有很多有用的方法,如下:
?
轉(zhuǎn)載于:https://www.cnblogs.com/coderJiebao/p/Netty07.html
總結(jié)
以上是生活随笔為你收集整理的Netty入门(七)使用SSL/TLS加密Netty程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 20155338 《网络攻防》 Exp7
- 下一篇: 报车险流程