java - 如何在 Jetty 中读取 HTTPS 连接的 TLS 版本?

标签 java ssl https jetty

我将 Jetty 服务器嵌入到我的应用程序中。在我的应用程序中,我可以通过读取请求属性的 javax.servlet.request.cipher_suite 来读取它协商的密码套件。现在我想检查我的客户端是否使用 TLSv1.0、TLSv.1.1 或 TLSv.1.2。如果我启用 SSL 调试,我可以在我的控制台上看到它:

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

但是如何在我的 handler() 中读取它呢?

我研究了 org.eclipse.jetty.server.Requestjavax.servlet.http.HttpServletRequest。有 getProtocol() 方法,但它返回 HTTP/1.1

最佳答案

这个问题暂时悬而未决,但既然现在有了答案,它可能与其他人相关。

您可以通过将 SecureRequestCustomizer 添加到其 HttpConfiguration 来配置您的 ServerConnector。可以在 StackOverflow 找到一个例子。 , 但还有更多out there .

设置此定制器时,信息作为属性添加,您可以从 HttpServletRequest 中检索。作为 "bugreport" 的结果添加了完整的 SSLSession并且至少在 >= 9.3 的版本中可用。默认属性名称是 org.eclipse.jetty.servlet.request.ssl_session 但您可以通过调用 setSslSessionAttribute("your.attribute.name") 在您的配置中自行设置它>

关于java - 如何在 Jetty 中读取 HTTPS 连接的 TLS 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19244133/

相关文章:

ios - 对安全性极为陌生。如何将 SSL 添加到我的 Web 应用程序?

c# - HTTPS 代理实现 (SSLStream)

java - 显示标签 : Showing records with Partial List

java - 在 spring 中以编程方式将类的实例绑定(bind)到限定符

java - 更改 root 设备上的日期 (Android M)

linux - mod_rewrite REQUEST_URI 混淆

web-services - 使用 CodeIgniter API 进行身份验证

http - SSL 自签名证书

javascript - Wordpress 网站上的不安全 <form> 调用

java - 运行 AppFuse 项目时出现错误 : "Failed to execute goal on project"