Ich verwende Netty, um eine gegenseitige authentifizierte TLS-Verbindung aufzubauen. Wie kann ich die IP-Adresse des Peers (Client) erhalten, wenn die Peer-Authentifizierung fehlgeschlagen ist?Peer-IP-Adresse abrufen, wenn SSL-Peer-Authentifizierung in Java/Netty fehlschlägt
Ich füge SslHandler in die Channel-Pipeline des Servers und versuche, es zu bekommen, wenn der Kanal aktiviert ist. Der Fehler tritt auf, wenn getPeerPrincipal() aufgerufen wird und eine Ausnahme ausgelöst wird. Ich versuche, den Peer-Host auszudrucken und getPeerHost() aufzurufen, wenn ich die Ausnahme behandle. Aber ich bekomme nur null.
Alle Hinweise dazu. Danke vielmals!
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);
}
}
});
}
Es funktioniert sehr gut. Vielen Dank! – user3674571
@ user3674571 froh zu helfen, kann es mir helfen, wenn Sie klicken, um die Antwort zu akzeptieren :) – taoxiaopang