繁体   English   中英

如何在不使用Servlet的情况下在静态Web服务(Java和Jersey)中获取客户端证书?

[英]How to fetch client-side certificate in restful web service (Java & Jersey) without Servlets?

我想从客户端证书访问“ subjectDN”,即从证书中获取用户数据(公用名,电子邮件等),但对身份验证部分不感兴趣。

如果我要使用Servlet,则可以理解,我可以使用类似以下内容读取请求标头中发送的证书

(X509Certificate[])request.getAttribute("javax.servlet.request.X509Certificate");

但是,在我宁静的Web服务中,我不使用Servlet-因此我无法访问请求标头。 宁静的Web服务使用Jersey框架以Java编写。 我的GlassFish应用程序服务器已正确配置为SSL。

关于如何在不使用Servlet的情况下实现此目标的任何想法? 有其他实用的替代方法吗?

在球衣中,您可以尝试使用@Context HttpServletRequest请求作为资源方法的参数:

@GET
public Response getSomeView(@Context HttpServletRequest request){
     [here you have access to the request object]
}

希望有帮助...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM