2016-01-08 3 views
7

tomcatアクセスログファイルにクライアント証明書情報を含めることを試みています。Tomcatアクセスログクライアント証明書サブジェクト名

私はこの記事を見直しました: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

悲しいことに、他の場所でクライアント証明書を終了し、splunkにダンプしました。 –

答えて

0

あなたがそのサブジェクト名を使用してユーザーを認証した場合、私はあなたが何かを必要とする場合は、その値を設定しjavax.servlet.FilterServletRequestListenerを記述する必要がある「%u

を持つユーザ名をログに記録することができると思いますServletRequestの属性として値は、toString()を実装する任意のオブジェクトです。

javax.servlet.request.X509Certificate要求属性は、証明書の配列であり、あなたがこれまでの任意のコードを変更せずにこれを行う方法を理解しましたServlet仕様ch.3.9 SSL属性(サーブレット仕様3.1)