Spring Security:ホームページにアクセスせずにログインした後にリンクをたどる方法

2020-02-13 java spring spring-security

私は、ダッシュボードに入るためのログインページがあるアプリケーションの開発者の1人です。ダッシュボード内には、アプリケーションの他の部分に移動するさまざまなリンクがあります。

ログインしていないときに内部リンクの1つを入力したい場合に問題が発生します。そのため、ブラウザでアドレスを入力し、資格情報を入力してWebページに進みますが、代わりにダッシュボードにリダイレクトされます。

入力するウェブページは次のとおりです。

http://localhost:8080/admin-ng/index.html#!/events/events/cd15fb84-d6b1-49ab-a28c-e5e07683907e/tools/editor

ただし、ログイン後は常にダッシュボードにリダイレクトされます。

http://localhost:8080/admin-ng/index.html#!/events/events

その後、もう一度入力すると、アドレスが機能します。

また、ログイン後にアドレスを再度呼び出すために、残りのエンドポイントを使用してみましたが、機能しません。同じ動作です。

私はそれが春のセキュリティ設定ファイルであるはずだと思います。ログイン後のリクエストの処理方法。「#」以降の残りの情報は失われると思います。私は何ができますか?

ありがとう

Answers

たぶん、成功ハンドラーBeanを追加できます:

          .loginPage(LOGIN_FORM_URL)
          .loginProcessingUrl("/login")
          .successHandler(successHandler()) 
... 

@Bean
public SavedRequestAwareAuthenticationSuccessHandler successHandler() {
     SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
    successHandler.setTargetUrlParameter("myredirectparam");
    successHandler.setDefaultTargetUrl("mydefaultredirect");
    return successHandler;

}

問題は、 認証成功ハンドラまたはエントリポイントから発生します。

デバッグして、 INITIAL_REQUEST_PATHセッション属性に何が含まれているか、それがあなたの望むものであるかどうかを判断することをお勧めします。

Related