2013-10-08 7 views
4

Я встроил сервер Jetty в свое приложение. В моем приложении я могу прочитать шифрованный набор, который он согласовал, прочитав javax.servlet.request.cipher_suite атрибутов запроса. Теперь я хочу проверить, используют ли мои клиенты TLSv1.0, TLSv.1.1 или TLSv.1.2. Если включить отладку SSL можно увидеть на моей консоли:Как читать TLS-версию HTTPS-соединения в Jetty?

qtp2819825-43, WRITE: TLSv1.2 Application Data, length = 8038 

Но как я могу прочитать это в моем handler()?

Я изучал как org.eclipse.jetty.server.Request, так и javax.servlet.http.HttpServletRequest. Существует метод getProtocol(), но он возвращает HTTP/1.1.

ответ

0

Этот вопрос существует некоторое время, но так как есть ответ, он может иметь отношение к другим.

Вы можете настроить ServerConnector, добавив SecureRequestCustomizer к его HttpConfiguration. Пример можно найти на StackOverflow, но есть еще много out there.

При настройке этого адаптера информация добавляется в качестве атрибутов, которую вы можете получить из HttpServletRequest. Полный SSLSession был добавлен в результате "bugreport" и доступен как минимум с версиями> = 9.3. Имя атрибута по умолчанию - org.eclipse.jetty.servlet.request.ssl_session, но вы можете установить его самостоятельно в своей конфигурации, позвонив по телефону setSslSessionAttribute("your.attribute.name")

Смежные вопросы