現在、client-auth に Spring x509 サポートを使用しています。アプリサーバーはverify-client="want"が設定されたJBossです。
ただし、x509 要素を spring 構成ファイルに追加すると、http 要求ごとにデジタル証明書をロードしようとします。ただし、ログインページでそれを行いたくありません。ユーザーがログイン ページの特定のボタン (「証明書を使用してログイン」など) をクリックしない限り、証明書を読み込んで使用したくありません。
特定の URL を除外する方法はありますか? または、Spring 構成の要素に x509 要素があると、http 要求ごとに証明書をロードしようとしますか?
これが私の春の設定の一部です:
<security:http create-session="always">
<x509 subject-principal-regex="CN=(.*?)," user-service-ref="myUserDetailsService" />
<intercept-url pattern= ..... // not relevant to this question
<intercept-url pattern= ..... // not relevant to this question
<security:form-login
login-page="myLoginPage"
authentication-failure-url="/myErrorPage"
default-target-url="/mySuccessPage"
always-use-default-target="true"/>
</security:http>
また、Spring にない場合、JBOSS で除外 URL を指定する方法はありますか。
JBOSS standalone.xml で構成された要素は次のとおりです。
<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">
<ssl name="ssl" key-alias="alias" certificate-key-file="keystore" verify-client="want" ca-certificate-file="truststore"/>
</connector>