2

私はSpringの初心者で、SSL認証の初心者です。

私の質問は、フォームベースの認証で正常に動作する Web アプリケーションがあるということです。SSL クライアント認証を使用してアプリケーションの一部を自動的に認証する必要があります。

私がこれまでにやってきたこと。

  1. SSL を有効にする tomcat ( https://mydomain.com:9443にアクセスできます)
  2. クライアント証明書をサーバーのトラストストアにインポートする
  3. server-xml を変更し、server.xml で clientAuth="want" を作成します

    コネクタ ポート="9443"
    プロトコル="HTTP/1.1"
    SSLEnabled="真"
    maxThreads="150"
    スキーム="https"
    セキュア="真"
    clientAuth="欲しい"
    sslProtocol="TLS"
    keystoreFile="c:\serverkeystore"
    keystorePass="ChangeIt" />
    
  4. 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"/>

  5. 安全な URLに<intercept-url pattern="/upload" requires-channel="https" />を追加します
  6. myUserDetailServiceは UserDetailsS​​ervice を実装し、UserDetails オブジェクトを返します (データベースに保存されたユーザー名、パスワード、ROLES に基づいて、フォームベースの認証に使用するクラスと同じです)。

私の問題は、URL パス (/upload を使用しても) が常に login.jsp ページを表示することです。

Tomcat 6.0.35 で Spring および Spring security 3.1.3 を使用しています

どんな助けでも大歓迎です。

4

1 に答える 1