我们在 Netty 之上实现 SSL。但目前的设计存在缺陷。如果失败,客户端将重试连接服务器。这在网络或服务器负载过重的问题中是需要的。但错误的客户端凭据会导致持续失败。
有一些解决方案:
不幸的是我不知道如何使用 Netty 来实现这一点。几个问题:
请在这里帮忙。
据我所知,没有安全的方法可以将 SSL 连接降级为明文连接。
要检测握手失败,您需要实现userEventTriggered()处理程序方法:
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) {
if (evt instanceof SslHandshakeCompletionEvent) {
if (!((SslHandshakeCompletionEvent) evt).isSuccess()) {
// handshake failed
}
}
}
Run Code Online (Sandbox Code Playgroud)
您还可以向握手 future 添加监听器:
ChannelPipeline p = ...;
SslHandler sslHandler = p.get(SslHandler.class);
sslHandler.handshakeFuture().addListener(new FutureListener<Channel> { ... });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2477 次 |
| 最近记录: |