如何在没有 Servlet 的情况下在 Restful Web 服务(Java 和 Jersey)中获取客户端证书?
我想从客户端证书访问“subjectDN”,即从证书中获取用户数据(公用名、电子邮件等),但对身份验证部分不感兴趣。
如果我使用 Servlet,我知道我可以使用类似的内容读取请求标头中发送的证书
(X509Certificate[])request.getAttribute("javax.servlet.request.X509Certificate");
,但是,在我的 Restful Web 服务中,我不使用 Servlet - 所以我无法访问请求标头。 Restful Web 服务是使用 Jersey 框架用 Java 编写的。我的 GlassFish 应用程序服务器已正确配置 SSL。
关于如何在不使用 Servlet 的情况下实现这一目标有什么想法吗?有什么实用的替代方法吗?
I want to access the "subjectDN" from the client-side certificate, i.e., fetch the user data (common name, email, etc) from the certificate, but am not interested in the authentication part.
If I would use a servlet, I understand that I can read the certificate sent in the request header using something like
(X509Certificate[])request.getAttribute("javax.servlet.request.X509Certificate");
However, in my restful web service I don't use Servlets - so I'm lacking access to the request header. The restful web service is written in Java using the Jersey framework. My GlassFish application server is properly configured for SSL.
Any thoughts on how to achieve this without using a Servlet? Any pragmatic alternative ways?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在泽西岛,您可以尝试将
@Context HttpServletRequest
请求作为资源方法的参数:希望有所帮助......
in jersey you can try
@Context HttpServletRequest
request as a argument to a resource method:hope that helped....