refererヘッダーをチェックして、それがあなたのニーズに合っているかどうか確認してください。成功したログインプロセスの後にリダイレクトするために使用してください。手動春に多くの作品を構成している場合SimpleUrlAuthenticationSuccessHandler
@Bean
public AuthenticationSuccessHandler successHandler() {
SimpleUrlAuthenticationSuccessHandler handler = new SimpleUrlAuthenticationSuccessHandler();
handler.setUseReferer(true);
return handler;
}
を使用するためのthis answerを確認するか - あなたは、フィルタの位相にリファラURLを取得するためthis answer を使用してセッションに保存することができます。私が見るとしてではなく、このリダイレクトがオーバーヘッドである - ので、あなたは、「... - 成功した認証を扱う」procesing後にリダイレクトすることができOAuth2ClientAuthenticationProcessingFilterを拡張し、のdoFilterでリファラ値
public class MyOAuth2ClientAuthenticationProcessingFilter extends OAuth2ClientAuthenticationProcessingFilter {
...
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
String referrer = request.getHeader("Referer");
if (null != referrer)
request.getSession().setAttribute("url_prior_login", referrer);
super.doFilter(req, res, chain);
}
}
を得る:その答えの 一つの修正は可能性があり、どこかこのロジックを配置しよう
successHandlerを()のようになります(例えばsuccessHandler()またはpricipalExtractorを()UserInfoTokenServicesにあなたが社会的にOAuthプロバイダからより多くのユーザの詳細情報が必要な場合。):
@Bean
public AuthenticationSuccessHandler successHandler() {
AuthenticationSuccessHandler rst = new AuthenticationSuccessHandler() {
@Override
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response,
Authentication authentication) throws IOException, ServletException {
...
HttpSession session = request.getSession();
String redirectUrl = null;
if (session != null) {
redirectUrl = (String) session
.getAttribute("url_prior_login");
if (null == redirectUrl || redirectUrl.trim().length() <= 0)
redirectUrl = "http://your_default_redirect_url";
response.sendRedirect(redirectUrl);
};
return rst;
}
とにかくチェックスプリングdocs
フロントエンドはバックエンドに制御権を渡しません。バックエンドはコントロールを戻すことは決してありません。フロントエンドはバックエンドに依頼します。依然として制御が可能であり、作業を継続することも、バックエンドがビルドと応答を終了するまで待機することもできます。バックエンドコントローラが戻ったら、それがバックエンドの対話の終わりです。 –
どうやって解決しましたか? – kevcodez
@kevcodezこの記事で提案したリダイレクトコールを上書きするカスタムコントローラを追加しました:http://www.littlebigextra.com/how-to-change-the-default-spring-social-redirect-flow/ – alphathesis