java - 从 Java Web 服务上下文中的客户端证书获取用户信息

标签 java security web-services

我正在开发一个 Java Web 服务,并启用了客户端证书安全性。 我不想为每个带有用户 ID 的方法添加参数。由于用户已经使用其客户端证书通过soap header 进行身份验证,是否可以从其证书中获取用户数据(公用名、电子邮件等)?

谢谢!

最佳答案

这是您从请求中检索 DN 的方法,

      Object certChain = request.getAttribute(
            "javax.servlet.request.X509Certificate");
       if (certChain != null) {
          X509Certificate certs[] = (X509Certificate[])certChain;
          X509Certificate cert = certs[0];
          String n = cert.getSubjectDN().getName();
        }

为此,您必须正确配置 HTTPS 连接器。如果使用 AJP,您必须配置 AJP 连接器,以便将证书从 Apache 传递到 Tomcat。

关于java - 从 Java Web 服务上下文中的客户端证书获取用户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3084247/

相关文章:

java - 如何使用 Java 流将多个列表转换为单个列表?

javascript - 如何检测图像是否具有透明背景和白色文本

java - Weblogic - java.lang.ClassNotFoundException : org. bouncycaSTLe.jce.provider.JCEMac$DES9797Alg3

java - 是否可以将 OutputStream 从 java applet 连接到浏览器的下载窗口?

.net - UDDI、DISCO 和 WSDL 有什么区别?

java - 如何从类路径以外的外部位置加载 cxf wss4j 加密属性文件

java - java错误,找不到符号

java - 将方法添加到数组列表并动态调用方法

Javascript location.hostname 安全吗?

json - 对此后端堆栈的反馈