Spring Boot授权服务器表单登录出现Status 999错误求助
1. 校验用户认证逻辑
- 确认
UserDetailsService实现(或内存用户配置)中,密码是否添加了正确的加密前缀(如{bcrypt}),未加密的密码会直接导致认证失败 - 检查用户的权限配置是否满足授权服务器的要求,部分场景下缺失
ROLE_USER等基础权限会触发异常
2. 核对授权服务器客户端配置
- 检查
RegisteredClient的重定向URI是否与请求中的redirect_uri完全匹配(大小写、路径都要一致),不匹配会在认证后触发错误 - 确认客户端的授权类型(如
authorization_code)、范围(scope)是否正确配置,未启用对应授权类型会导致流程中断
3. 解析Trace日志的关键信息
- 重点定位日志中
status=999对应的异常堆栈,通常会包含具体错误原因:- 常见异常:
ClientAuthenticationException(客户端凭证无效)、InvalidGrantException(授权参数错误)、RedirectMismatchException(重定向URI不匹配) - 若日志信息不足,开启调试级日志:
logging: level: org.springframework.security: DEBUG org.springframework.security.oauth2: DEBUG
- 常见异常:
4. 检查过滤器链配置
- 确保授权服务器的过滤器链优先级高于普通Spring Security过滤器,避免请求被错误拦截
- 使用组件式配置时,确认
@Bean注册的SecurityFilterChain是否正确指定了授权服务器的端点(如/oauth2/authorize)
5. 排查自定义错误码映射
- 999为非标准HTTP状态码,检查
application.yml中是否存在自定义错误映射:
若映射的错误页面不存在,会显示Whitelabel错误页server: error: status: mappings: 999: /error/999
附用户提供的相关文件(请补充完整内容)
pom.xml
<!-- 粘贴你的pom.xml内容 -->
SecurityConfig 配置代码
// 粘贴你的SecurityConfig代码
Trace 日志信息
// 粘贴你的trace日志内容
内容的提问来源于stack exchange,提问作者Kevin
相关产品推荐
相关产品推荐

