私はSpringの初心者で、SSL認証の初心者です。
私の質問は、フォームベースの認証で正常に動作する Web アプリケーションがあるということです。SSL クライアント認証を使用してアプリケーションの一部を自動的に認証する必要があります。
私がこれまでにやってきたこと。
- SSL を有効にする tomcat ( https://mydomain.com:9443にアクセスできます)
- クライアント証明書をサーバーのトラストストアにインポートする
server-xml を変更し、server.xml で clientAuth="want" を作成します
コネクタ ポート="9443" プロトコル="HTTP/1.1" SSLEnabled="真" maxThreads="150" スキーム="https" セキュア="真" clientAuth="欲しい" sslProtocol="TLS" keystoreFile="c:\serverkeystore" keystorePass="ChangeIt" />
security-context.xml のhttpの 下に x509 subject-principal-regex="CN=(.*?)," user-service-ref="customUserDetailService"を追加しました
< http auto-config="true" use-expressions="true" > < x509 subject-principal-regex="CN=(. ?)," user-service-ref="myUserDetailService" /> < インターセプト URL パターン="/アップロード" requires-channel="https" /> <intercept-url pattern="/ *" access="hasRole('ROLE_USER')" /> < form-login login-page="/login.jsp" default-target-url="/index.jsp"
authentication-failure-url="/login.jsp?error=1" /> < logout logout-url="/j_spring_security_logout" logout-success-url="/loggedout.jsp" delete-cookies="JSESSIONID"/>
- 安全な URLに<intercept-url pattern="/upload" requires-channel="https" />を追加します
- myUserDetailServiceは UserDetailsService を実装し、UserDetails オブジェクトを返します (データベースに保存されたユーザー名、パスワード、ROLES に基づいて、フォームベースの認証に使用するクラスと同じです)。
私の問題は、URL パス (/upload を使用しても) が常に login.jsp ページを表示することです。
Tomcat 6.0.35 で Spring および Spring security 3.1.3 を使用しています
どんな助けでも大歓迎です。