如何阻止OAuth2客户端二次重定向至授权服务器并解决[authorization_request_not_found]错误
问题描述
OAuth2授权码流程可正常执行,但会触发二次重定向至授权服务器,最终抛出authorization_request_not_found异常。目前无法确定是配置错误,还是开发环境中将OAuth2客户端与授权服务器部署在同一Spring Boot应用中引发的特殊问题。
相关配置
- SecurityFilterChain 配置(对应代码段:SecurityFilterChainConfig.java第122-181行)
- OAuth2客户端配置(对应配置段:application.properties第223-241行)
- OAuth2授权服务器RegisteredClientRepository配置(对应代码段:SecurityFilterChainConfig.java第307-334行)
- OAuth2授权服务器AuthorizationServerSettings配置(对应代码段:SecurityFilterChainConfig.java第340-352行)
浏览器视角的失败流程
- 启动Spring Boot应用
com.github.justincranford.spring.Application - 在浏览器中打开
https://127.0.0.1:8443/ - 点击主页的「Internal OAuth2 Client」按钮触发流程,跳转至
/login页面 - 输入用户名
appuser和密码appuser提交 - 页面显示
[authorization_request_not_found]
日志分析
从日志来看,OAuth2授权码流程实际触发了两次:
- 第一次执行成功,授权服务器返回了
access_token、refresh_token和id_token,日志记录了AuthenticationSuccessEvent、HttpSessionIdChangedEvent、SessionFixationProtectionEvent、InteractiveAuthenticationSuccessEvent等事件。 - 在上述事件记录后,客户端意外地再次重定向至授权服务器,第二次流程触发
authorization_request_not_found异常,这就是浏览器端显示的错误。
已尝试的排查手段
已开启TRACE级别日志并进行调试,但仍无法定位二次重定向的原因。
求助需求
寻求问题解决方法或进一步调试的思路。
内容的提问来源于stack exchange,提问作者Justin Cranford
相关产品推荐
相关产品推荐

