Получение ip клиента при выполнении ocsp в Netty - PullRequest
0 голосов
/ 05 ноября 2018

Я устанавливаю безопасное соединение TLS с Netty. Я использую взаимную аутентификацию на моем соединении. Сертификат от клиента проверяется с ocsp.

Процедуры проверки с использованием Ocsp выполняются так же, как я определяю netty как хранилище доверенных сертификатов.

Отключение от tcp, если сертификат клиента отозван или неизвестен. Пока все хорошо.

Я хочу напечатать ip клиента в журналах, когда сертификат отозван или неизвестен. Я много чего перепробовал, но не смог.

Вы можете мне помочь?

Строитель строится следующим образом. Мои ocsp коды находятся в классе WebSocketTrustManagerFactory:

builder = SslContextBuilder
         .forServer(kmf)
         .clientAuth(ClientAuth.REQUIRE)
         .trustManager(new WebSocketTrustManagerFactory(finalTm));

1 Ответ

0 голосов
/ 05 ноября 2018

Полагаю, вы могли бы проверить SslHandshakeCompletionEvent и записать его в журнал ошибки.

Что-то вроде:

public void class MyHandler extends ChannelInboundHandlerAdapter {

    @Override
    public void userEventTriggered(ChannelHandlerContext ctx, Object evt) {
        if (evt instance of SslHandshakeCompletionEvent) {
            SslHandshakeCompletionEvent sslEvent = (SslHandshakeCompletionEvent) evt;
            if (!sslEvent.isSuccessful()) {
                Throwable cause = sslEvent.cause();
                logger.debug("Handshake failed for {}", ctx.channel().remoteAddress(), cause);
            }
        }
        ctx.fireUserEvent(evt);
    }
}
...