我想从客户端证书访问“subjectDN”,即从证书中获取用户数据(常用名、电子邮件等),但对身份验证部分不感兴趣。
如果我使用 servlet,我知道我可以使用类似的东西读取请求 header 中发送的证书
(X509Certificate[])request.getAttribute("javax.servlet.request.X509Certificate");
但是,在我的 restful web 服务中我不使用 Servlets - 所以我无法访问请求 header 。 Restful Web 服务是使用 Jersey 框架用 Java 编写的。我的 GlassFish 应用服务器已正确配置 SSL。
关于如何在不使用 Servlet 的情况下实现这一点的任何想法?有什么实用的替代方法吗?
最佳答案
在 jersey 中,您可以尝试将 @Context HttpServletRequest
请求作为资源方法的参数:
@GET
public Response getSomeView(@Context HttpServletRequest request){
[here you have access to the request object]
}
希望有所帮助....
关于java - 如何在没有 Servlet 的情况下在 Restful Web 服务(Java 和 Jersey)中获取客户端证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3363518/