我使用Spring Security的2.X的预认证与X.509证书。的Spring Security X.509预认证
我通过HttpServletRequest.getAttribute("CERTIFICATE")
得到certificateText
。
有时,上述调用返回""
(空)。我相信它会在HTTP会话过期时发生。
什么能解释为什么HttpServletRequest.getAttribute("CERT")
返回空?
编辑例如,在Kerberos中,票证在每个HTTP请求中都可用。证书不是总是在X.509 HTTP请求中?
因此,如果客户端证书验证失败,则HTTP会话将不包括'javax.servlet.request.X509Certificate'属性?我添加了日志语句来打印'request.getAttributeNames()',然后遍历它们。有时候不会有'javax.servlet.request.X509Certificate'证书。 找出失败原因的关键是Apache日志? – 2013-05-10 14:57:33
您如何连接Apache和您的servlet容器? AJP? – Michael 2013-05-10 17:01:54
Apache和Tomcat通过'mod_jk'进行通信。但我确实有这个属性设置:'conf.d/workers.properties:worker.eurekastreams.type = ajp13'按您编辑 – 2013-05-10 17:30:32