0

Web アプリケーションで Spring セキュリティを使用しており、認証に x509 証明書を使用しています。

<x509 subject-principal-regex="CN=[^,]* ([^,]*),.*$" user-service- ref="MyAuthService"  />

すべて正常に動作し、プリンシパルを取得して Java クラスで取得できます。私のトラブルは、環境にインフラストラクチャ レベルの変更 (サーバーの移行やセキュリティの変更など) があったときに始まります。この情報を取得できなくなりました。私がやりたいことは、プリンシパルを取得するために正規表現を変更する必要があるかどうかを確認するために、x509 証明書から取得しているヘッダー/サブジェクトをデバッグすることです。しかし、春のセキュリティでそれを行う方法がわかりません。アプリケーションレベルでx509証明書から完全なヘッダー/サブジェクトをログに記録するにはどうすればよいですか。私は春のセキュリティ3.1を使用しています

4

1 に答える 1

0

証明書が処理されているときに証明書の詳細を確認したい場合は、これらのフィルターを実装する Spring コードがデバッグ ロギングを実装していることに注意してください。たとえば、X509AuthenticationFilter は X509Certificate オブジェクトの toString() の結果を記録します。

logger.debug("X.509 client authentication certificate:" + certs[0]);

同様に、SubjectDnX509PrincipalExtractor は、証明書から抽出した subjectDN と、決定したユーザー名をログに記録します。

この場合、Log4J を使用している場合は、log4j.xml 構成ファイルに次の内容を記述して、ログ ファイルでこれらを取得できます。

<logger name="org.springframework.security.web.authentication.preauth.x509">
    <level value="debug" />
</logger>

他のロギング フレームワークには、特定のクラスまたはパッケージのデバッグ ロギングを有効にする同様のメカニズムがあります。

于 2013-11-06T15:08:46.403 に答える