Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在没有servlet的情况下获取RESTfulWeb服务(Java&;Jersey)中的客户端证书?_Java_Web Services_Rest_Ssl Certificate_Jersey - Fatal编程技术网

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

如何在没有servlet的情况下获取RESTfulWeb服务(Java&;Jersey)中的客户端证书?,java,web-services,rest,ssl-certificate,jersey,Java,Web Services,Rest,Ssl Certificate,Jersey,我想从客户端证书访问“subjectDN”,即从证书获取用户数据(公共名称、电子邮件等),但对身份验证部分不感兴趣 如果我想使用servlet,我知道我可以使用如下方式读取请求头中发送的证书 (X509Certificate[])request.getAttribute("javax.servlet.request.X509Certificate"); 然而,在我的RESTfulWeb服务中,我不使用servlet——因此我缺少对请求头的访问。restful web服务是使用Jersey框架用

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

如果我想使用servlet,我知道我可以使用如下方式读取请求头中发送的证书

(X509Certificate[])request.getAttribute("javax.servlet.request.X509Certificate");
然而,在我的RESTfulWeb服务中,我不使用servlet——因此我缺少对请求头的访问。restful web服务是使用Jersey框架用Java编写的。我的GlassFish应用服务器已正确配置为SSL


有没有想过如何在不使用Servlet的情况下实现这一点?任何实用的替代方法?

在jersey中,您可以尝试使用
@Context-HttpServletRequest
request作为资源方法的参数:

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

希望这有帮助……

非常感谢——就这样。