如何在没有Servlet的情况下在restful Web服务(Java& Jersey)中获取客户端证书?

时间:2010-07-29 14:27:41

标签: java web-services rest ssl-certificate jersey

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

如果我使用servlet,我知道我可以使用类似

的内容读取请求标头中发送的证书
(X509Certificate[])request.getAttribute("javax.servlet.request.X509Certificate");

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

有关如何在不使用Servlet的情况下实现此目的的任何想法?任何务实的替代方式?

1 个答案:

答案 0 :(得分:3)

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

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

希望有所帮助....