Tomcat 7访问日志与客户端证书主题名称

Eri*_*eet 7 apache ssl logging tomcat client-certificates

我试图在我的tomcat访问日志文件中包含客户端证书信息.

我已经回顾了这篇文章:https://serverfault.com/questions/624790/tomcat-log-the-equivalent-of-ssl-client-s-dn但这只返回对证书的引用,我不能实际上提取任何属性.

我的日志文件模式如下所示:

pattern="... [%{javax.servlet.request.X509Certificate}r]"
Run Code Online (Sandbox Code Playgroud)

这是回归:[[Ljava.security.cert.X509Certificate; @ 667a078]

有没有办法访问证书属性,如下所示:

pattern="... [%{javax.servlet.request.X509Certificate.SubjectName}r]"
Run Code Online (Sandbox Code Playgroud)

我希望能够在不进行任何代码修改的情况下提取证书信息.

Kon*_*nko 0

如果您使用该主题名称对用户进行身份验证,那么我认为您可以使用“ %u”记录用户名

如果您需要其他任何内容,则需要编写 ajavax.servlet.Filter或 aServletRequestListener将该值设置为 的属性ServletRequest。该值可以是任何实现 toString() 的对象。

请求javax.servlet.request.X509Certificate属性是一个证书数组,在 Servlet 规范第 3.9 章 SSL 属性(Servlet 规范 3.1)中定义