Spring Boot集成Azure AD登录成功后访问/list返回404问题咨询
问题可能的原因如下:
- 租户ID配置拼写错误:你配置的属性名
tetant-id存在拼写错误,正确属性名应为tenant-id,拼写错误会导致身份校验逻辑异常,后续跳转路径错误。 - 方法级权限校验未开启:使用
@PreAuthorize注解需要在安全配置类上额外添加@EnableGlobalMethodSecurity(prePostEnabled = true)注解开启方法级权限校验,未开启时权限规则不生效,会触发默认错误跳转逻辑,最终返回404。 - Azure AD组到角色的映射配置缺失:Azure AD Spring Boot Starter默认使用Azure AD组的Object ID作为权限值,而非组名。仅配置
user-group.allowed-group-names的前提下,未添加azure.activedirectory.user-group.use-group-name-as-role=true配置,会导致用户的组名无法被正确映射为Admin/Users角色,权限校验失败后跳转至未配置的/error路径,返回404。 - 角色前缀匹配规则不兼容:
hasRole()校验规则会自动给入参添加ROLE_前缀进行匹配,若Azure AD映射的角色没有ROLE_前缀会导致匹配失败。可替换为hasAuthority('Admin')跳过前缀校验,或者调整角色前缀规则对齐映射值。 - 重定向URI配置错误:配置的
azure.activedirectory.redirect-uri-template=login/oauth2/code缺少开头的斜杠,正确值应为/login/oauth2/code,路径不匹配会导致登录回调逻辑异常,后续跳转路径错误。 - 视图资源缺失:Controller返回字符串
list作为视图名,若项目未配置对应的视图解析器,或者resources/templates目录下不存在list.html(以Thymeleaf模板为例),会直接返回404。 - Controller未被Spring扫描:若Controller类所在的包不在Spring Boot启动类的默认扫描路径下,也未手动配置
@ComponentScan指定扫描路径,会导致/list接口未被注册,访问时直接返回404。
内容的提问来源于stack exchange,提问作者volkangurbuz
相关产品推荐
相关产品推荐

