0
私は相互認証されたTLS接続を構築するためにNettyを使用しています。ピア認証に失敗した場合、ピア(クライアント)のIPアドレスを取得するにはどうすればよいですか?Java/NettyでSSLピア認証が失敗した場合にピアのIPアドレスを取得します
SslHandlerをサーバーのチャネルパイプラインに追加し、チャネルがアクティブになったときに取得しようとします。このエラーは、getPeerPrincipal()が呼び出され、例外がスローされたときに発生します。私は、例外を処理するときに、ピアホストを印刷してgetPeerHost()を呼び出そうとします。しかし、私はnullを取得します。
これに関するヒント。どうもありがとう!
public void channelActive(final ChannelHandlerContext ctx) {
ctx.pipeline().get(SslHandler.class).handshakeFuture()
.addListener(new GenericFutureListener<Future<Channel>>() {
@Override
public void operationComplete(Future<Channel> future) {
try {
String peerX = ctx.pipeline().get(SslHandler.class).engine().getSession().getPeerPrincipal()
.getName();
} catch (Exception e) {
String peerHost = ctx.pipeline().get(SslHandler.class).engine().getSession().getPeerHost();
logger.error("Failed: with" + peerHost);
logger.error("Error in activating receiving channel", e);
}
}
});
}
。ありがとう! – user3674571
@ user3674571あなたが答えを受け入れるためにクリックすると、それは私を助けることができる喜んで:) – taoxiaopang