如何在泽西运行Netty的SSL信息(对等证书)?

时间:2014-11-11 00:26:07

标签: java ssl jersey netty client-certificates

我正在使用Jersey框架和Netty。

我通过SSL客户端证书验证客户端。

我正在尝试为客户端调用实现GET whoami()方法。我希望响应中包含用于调用netty服务器的客户端ssl证书中的一些信息。

我想我需要使用某种@Context参数,但是我没有找到进入SSLEngine的方法。

我找到了一个使用Girzzly [1]想要做的事情的例子,但是我没有在netty中找到类似的东西。

您对如何访问客户端SSL详细信息有任何想法吗?在Netty中我可以使用哪些Context对象?

更新澄清:我如何从@ GET资源中访问ChannelPipeline?

[1] http://jersey.576304.n2.nabble.com/Context-SecurityContext-not-initialized-with-SSL-client-certs-td7556681.html

1 个答案:

答案 0 :(得分:0)

获取SSLEngine取决于您在Netty中初始化ChannelPipeline的方式。一种常见的模式是将SslHandler插入管道中,就像在此example中一样。这是一个unit test,您可以在其中明确地看到SSLEngine被SslHandler包装并插入到管道中。了解管道的配置后,您可以按类型或名称使用ChannelPipeline.get(...)从管道中获取元素。

要获得更具体的答案,您必须提供有关配置的更多详细信息。我不熟悉你的设置,Netty和Jersey如何互动,或者Netty的界面对你有多大的了解。