2016-01-08 42 views
7

我想将客户端证书信息包含在我的tomcat访问日志文件中。Tomcat 7访问日志与客户端证书使用者名称

我已阅读此文章:https://serverfault.com/questions/624790/tomcat-log-the-equivalent-of-ssl-client-s-dn但这只返回对证书的引用,我实际上无法提取任何属性。

我的日志文件模式如下:

pattern="... [%{javax.servlet.request.X509Certificate}r]" 

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

是否有访问证书的属性,如道路这:

pattern="... [%{javax.servlet.request.X509Certificate.SubjectName}r]" 

我希望能够提取证书信息,无需任何代码修改。

+0

你有没有找出如何做到这一点没有任何代码修改被定义? – WiteCastle

+0

可悲的是。最终终止其他地方的客户端证书并倾销。 –

回答

0

如果您使用的主题名称进行身份验证的用户,那么我认为你可以登录与“%u

如果您有什么需要,你需要编写用户名的javax.servlet.FilterServletRequestListener,设置该值作为ServletRequest上的一个属性。该值可以是实现toString()的任何对象。

javax.servlet.request.X509Certificate的请求属性是证书的阵列,并且在Servlet规范ch.3.9 SSL属性(servlet规范3.1)