Определите, какая версия TLS согласована клиентом с сервером Netty, с помощью SniHandler
В настоящее время я работаю над сервером Netty с SniHandler в стадии разработки. Я хотел бы зарегистрировать согласованную версию TLS в сеансе, но я не могу найти эту информацию в SniHandler или SniHandler.SslContext.
Я пытался получить доступ к SslHandler из SniHandler, но я не понял, как это сделать, поскольку SniHandler запускается, как показано ниже:
p.addLast("sniHandler", new SniHandler(options.domainNameMapping));
Не знаю, на правильном ли я пути. Надеюсь, кто-то может дать мне несколько советов по получению сеанса формы версии TLS.
Спасибо
Сожалею, что задаю аналогичный вопрос, который нужно было решить месяц назад.Определите, какая версия TLS была согласована клиентом с сервером netty
Кроме того, это второстепенная сторона вопроса, которую я хотел бы знать. Я пытался получить описанный выше sniHandler из ctx в другом обработчике с кодом ниже.
SniHandler sniHandler = (SniHandler) ctx.pipeline().get("sniHandler");
Кажется, он возвращает мне нулевое значение, кто-нибудь знает, что мне не хватает?
Спасибо-спасибо
1 ответ
В
SniHandler
заменяется на после анализа информации SNI. Таким образом, вы получите информацию от
SslHandler
.
Что-то типа:
SslHandler sslHandler = ctx.pipeline().get(SslHandler.class);
SSLEngine engine = sslHandler.engine();
String protocol = engine.getSession().getProtocol();