1

これが私がSpring-securityを設定した方法です:

   <security:http auto-config="true">
        <security:remember-me key="123456" />   <!--  Be Aware -->
        <!-- Restrict URLs based on role -->
        <security:intercept-url pattern="/index*" access="IS_AUTHENTICATED_ANONYMOUSLY" />
        <security:intercept-url pattern="/account/*" access="IS_AUTHENTICATED_ANONYMOUSLY" />        
        <security:intercept-url pattern="/assets/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />

        <security:intercept-url pattern="/**" access="ROLE_USER" />
        <!-- Override default login and logout pages -->
        <security:form-login login-page="/account/login.html" 
                             login-processing-url="/account/loginProcess" 
                             default-target-url="/home.html" 
                             authentication-failure-url="/account/login.html?login_error=1" />
        <security:logout logout-url="/account/logout" logout-success-url="/account/login.html" />
    </security:http>

また、私のログインページには、Springセキュリティに必要なすべての項目( remember-meチェックボックスj_usernamej_password )が含まれています。もう1つ指摘すべきことは、ログイン後に作成されるSpring-securitycookieです。ただし、次にブラウザを起動したときに、ホームページに自動的にリダイレクトされません。(セッションは存在しますが、 home.htmlに入ろうとするとできます)。home.htmlにリダイレクトされるように、構成で暗示する必要があるのではないかと思っていました。しかし、私がインターネットで見つけた例のどれもそれについて言及していました。手伝ってくれますか?

4

2 に答える 2

1

正確に何を期待しているのかわかりませんが、remember-meフィルターは、成功した自動ログイン(remember-me cookieに基づく認証)でリダイレクトを実行することは想定されていません。Remember-me機能の要点は、remember-me Cookieが有効な場合に、リクエストが認証チェックを通過し、フローを中断することなく処理されるようにすることです。

編集: リダイレクトをいつ、なぜ発生させたいのかは明確ではありません。ユーザーが(ログインフォームに入力して送信することにより)インタラクティブに自分自身を認証した後、ユーザーはブラウザによって保存されたremember-meCookieを受け取ります。その後(おそらく数日後)、次のセッションで、彼はアプリケーションのランダムなURLを参照します(ブックマークなど)。ブラウザにはまだremember-mecookieがあるため、リクエストとともにそれを送信します。次に、サーバー側のremember-meフィルターがCookieを処理し、それ以上の操作なしでユーザーを認証します。では、ユーザーが要求したコンテンツを提供するのではなく、なぜその要求をhome.htmlにリダイレクトしたいのでしょうか。

于 2013-03-15T19:34:25.313 に答える
1

default-target-url=/path/to/your/homepageフォームログインタグで設定してみてください

于 2013-03-15T19:41:14.563 に答える