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

标签 java web-services rest ssl-certificate jersey

我想从客户端证书访问“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/

相关文章:

java - 无法在边缘 webDriver 上运行我的 Selenium 测试

java - 如何在java中使用 "web service client"

java - 如何将 nginx 连接到我的 java 模块

java - Hibernate Unchecked异常不回滚

java - 如何在docker容器中使用docker文件运行jar文件

java - OpenCV java 从标量中获取值

java - Web 服务方法结果的类是什么?

java - Post 方法在 Android 的 AsyncHttpClient 中不起作用

java - 使用 Azure Active Directory 作为 Spring-boot REST 服务的 OAUTH2 身份验证服务

json - Firestore REST API开始查询