0

Spring MVC アプリケーションは、次のフォーム ログイン構成を使用しています。

<security:form-login login-page="/login"
            authentication-failure-url="/login?failure=true" login-processing-url="/login/process"
            username-parameter="email" password-parameter="password"
            always-use-default-target="false" default-target-url="/welcome" />

ユーザーが保護された URL にアクセスすると、この設定により、ユーザーはその URL にリダイレクトされる前にログインするようになります。しかし、新しいユーザーがログイン ページに到達すると、リンクをクリックして新しいアカウントを作成すると、(予想どおり) ウェルカム ページにリダイレクトされます。

新しいアカウントを作成するときに元のターゲット URL を保存し、アカウントの作成後にそのターゲットにリダイレクトするにはどうすればよいですか?

4

2 に答える 2

0

次のようなBeanを定義できると思います:

 @Component
 @Scope("session")
 class sessionPath{
 String path;
 //setter getter
}

各コントローラーに現在のパスを保存します。好きな場所で使用してください。
すべてのコントローラーでコーディングしたくない場合は、Aop 参加ポイントを使用して、ユーザーの最後のセッションを自動的に保存できます。また、トリガーを追加して、新しいユーザーコントローラーを作成し、セッションを呼び出してリダイレクトします。

于 2013-09-28T16:42:20.353 に答える
0

これを行う方法を考え出しました:ログインページのクエリ文字列にURLへのリターンを追加するスプリングセキュリティを作成します

entry-point-refBean を追加してin に関連付けsecurity:httpます。Bean を拡張LoginUrlAuthenticationEntryPointおよびオーバーライドcommenceメソッドにして、リクエスト URI をセッションに保存します。

于 2013-10-17T16:58:01.000 に答える