我将 Jersey 框架与 Netty 结合使用。
我正在通过 SSL 客户端证书对客户端进行身份验证。
我正在尝试实现一个 GET whoami() 方法供客户调用。我希望响应包含来自用于调用 netty 服务器的客户端 ssl 证书的一些信息。
我想我需要使用某种@Context 参数,但我找不到进入 SSLEngine 的方法。
我找到了一个我想用 Girzzly[1] 做的事的例子,但我没能在 netty 中找到类似的东西。
对于如何访问客户端 SSL 详细信息,您有什么想法吗?在 Netty 中我可以使用哪些 Context 对象?
更新说明:如何从我的@GET 资源中访问 ChannelPipeline?
最佳答案
获取 SSLEngine 取决于您的 ChannelPipeline 在 Netty 中的初始化方式。一种常见的模式是插入 SslHandler像这样进入管道 example .这是一个 unit test您可以在其中明确看到 SSLEngine 被 SslHandler 包装并插入到管道中。了解管道的配置方式后,您可以使用 ChannelPipeline.get(...) 从管道中获取元素。按类型或名称。
要获得更具体的答案,您必须提供有关您的配置的更多详细信息。我不熟悉您的设置、Netty 和 Jersey 的交互方式,或者 Netty 的界面对您的可访问性。
关于java - 如何在使用 Netty 运行的 Jersey 中获取 SSL 信息(对等证书)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26855490/