生产环境Spring Cloud Gateway随机出现Invalid User问题求助
问题背景
我们的项目采用微服务架构,网关服务仅负责认证与授权,services1和services2作为资源服务器。网关基于Spring Boot搭建,使用spring-cloud-starter-gateway-mvc与Spring Security组件。
该架构在本地、非生产及生产环境均能正常运行,但会随机出现用户登录后使用过程中触发Invalid User错误的情况,此时应用卡顿且所有用户均受影响,一段时间后自动恢复。
相关日志示例:
2024-08-21T07:55:56.343Z DEBUG 1 --- [gateway-service] [nio-9092-exec-3] o.s.s.web.DefaultRedirectStrategy : Redirecting to https://prod.myurl.com/login 2024-08-21T07:55:56.397Z DEBUG 1 --- [gateway-service] [nio-9092-exec-5] o.s.security.web.FilterChainProxy : Securing GET /login 2024-08-21T07:55:56.720Z DEBUG 1 --- [gateway-service] [nio-9092-exec-2] o.s.security.web.FilterChainProxy : Securing GET /oauth2/authorization/azure 2024-08-21T07:55:56.721Z DEBUG 1 --- [gateway-service] [nio-9092-exec-2] o.s.s.web.DefaultRedirectStrategy : Redirecting to https://login.microsoftonline.com/tenantid/oauth2/v2.0/authorize?response_type=code&client_id=client123&scope=api://az0-myurld-prod-app/User.Read%20openid&state=dwerr%3D&redirect_uri=https://prod.myurl.com/login/oauth2/code/azure&nonce=xxxxyyy 2024-08-21T07:55:58.240Z DEBUG 1 --- [gateway-service] [nio-9092-exec-4] o.s.security.web.FilterChainProxy : Securing GET /login?error 2024-08-21T07:56:08.010Z DEBUG 1 --- [gateway-service] [nio-9092-exec-7] o.s.security.web.FilterChainProxy : Securing GET /login/oauth2/code/azure?code=code123&session_state=session123 2024-08-21T07:56:08.010Z DEBUG 1 --- [gateway-service] [nio-9092-exec-7] o.s.s.web.DefaultRedirectStrategy : Redirecting to /login?error
获取Azure令牌需两步流程:先发送用户名密码获取授权码,再用授权码换取令牌。流程逻辑正常,但偶尔获取授权码后经Spring Filter处理时触发Invalid User错误。
疑问与排查请求
- 如何在本地复现该问题?
- 触发Spring Filter报错的授权码可能存在哪些问题?
- 是否与Spring Session或线程相关?
- 为何单个用户出现问题后所有用户均受影响,且自动恢复?
注:无生产环境访问权限,可提供项目配置等额外信息。
内容的提问来源于stack exchange,提问作者Manoj Singh
相关产品推荐
相关产品推荐

