You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure AD B2C登录后重定向异常:无法跳转到指定/welcome页面

问题分析与解决方案

你遇到的问题是因为Azure AD B2C回调时传递的continue参数被Spring Security优先处理,覆盖了你设置的defaultSuccessUrl强制跳转逻辑,另外手动指定loginPage的方式也可能干扰了默认的跳转状态管理。以下是具体的解决方法:

核心原因

  • Azure AD B2C在授权回调时,会在state参数或回调URL中携带continue目标地址,Spring Security默认的成功处理器会优先使用这个地址,即使你设置了true强制跳转。
  • 手动指定loginPage为/oauth2/authorization/azure,绕过了Spring Security内部的登录流程状态管理,导致跳转逻辑异常。

解决方法

1. 自定义AuthenticationSuccessHandler强制跳转

直接自定义成功处理器,忽略任何请求中的跳转参数,强制跳转到/welcome:

.oauth2Login(login -> login
        .loginPage("/oauth2/authorization/azure")
        .successHandler((request, response, authentication) -> {
            // 强制跳转到指定页面
            response.sendRedirect("/welcome");
        })
)

2. 移除手动loginPage配置

Spring Security会自动处理OAuth2登录的跳转逻辑,无需手动指定loginPage为授权端点URL。移除该配置后,让框架引导用户到正确的授权页面,同时保留defaultSuccessUrl设置:

.oauth2Login(login -> login
        .defaultSuccessUrl("/welcome", true)
)

3. 检查Azure AD B2C应用配置

登录Azure门户,检查你的B2C应用注册的回复URL,确保配置的地址和Spring Security默认的回调地址一致(默认是http://localhost:8080/login/oauth2/code/azure),避免B2C返回额外的跳转参数。


内容的提问来源于stack exchange,提问作者Akash Verma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 15:22:05