2

ここで入手可能なサンプルを使用して、春のセキュリティ openid 統合を実装しました: OpenId+Spring Integration

統合は正常に機能します。保護されたリソースをリクエストすると、ログイン ページにリダイレクトされ、認証後に自動的に保護されたリソースにリダイレクトされます。

ただし、保護されていないページにいる場合 (ここで説明されている状況に似ています: http://forum.springsource.org/showthread.php?95317-Redirect-to-original-page-after-login-success-failure ) およびログインボタンをクリックすると、ログイン後にホームページにリダイレクトされます。ログインボタンをクリックしたページにリダイレクトしたいと思います。

春のフォーラム スレッドは、buildReturnToUrl メソッドをオーバーライドすることを提案しています。私はそれを通してデバッグしました。次の形式の returnToURL が常に生成されます。

http://localhost:8080/listocal/j_spring_openid_security_check 

op と Rob Winch の間で舞台裏で通信が行われましたが、op が実際にそれをどのように上書きしたかはわかりません。

または、次のようなコードで別のフィルターを作成しようとしました。

public void doFilter(....) {
...
DefaultSavedRequest savedRequest = new DefaultSavedRequest((HttpServletRequest) request, new PortResolverImpl());

((HttpServletRequest)request).getSession().setAttribute("SPRING_SECURITY_SAVED_REQUEST", savedRequest);

}

このフィルターが OpenIDAuthenticationFilter の前に実行される場合、保存されたリクエストは RequestCacheAwareFilter によって削除されます (おそらくこの問題が原因です: https://jira.springsource.org/browse/SEC-1241 )

このフィルターが OpenIDAuthenticationFilter の後に実行されると、各リクエストの後に投稿パラメーターが連結されるという問題が発生します。

誰かがこれについて正しい方法を指摘できますか?

4

1 に答える 1

1

この質問は、Spring フォーラムの spring-security チームによって回答されました。これを参照してください: http://forum.springsource.org/showthread.php?128480-Redirecting-to-original-(unauthenticated-page)-after-spring-security-openid-authentic

于 2012-09-20T19:00:40.693 に答える