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

时间:2010-06-21 11:32:10

标签: java security web-services

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

谢谢!

2 个答案:

答案 0 :(得分:3)

这是您从请求中检索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。

答案 1 :(得分:0)

java.security.cert.Certificate投放到java.security.cert.X509Certificate并检查您可用的方法,例如getSubjectDN()