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

Keycloak登录界面闲置过久出现authorization_request_not_found错误排查

问题原因与解决方案

错误原因分析

  1. OAuth2授权请求会话过期:使用Keycloak作为授权服务器时,Spring Security会将OAuth2授权请求临时存储在应用的HTTP会话中。若登录界面长时间闲置,HTTP会话会因超时被销毁,对应的授权请求也会丢失,此时点击授权链接就会触发authorization_request_not_found错误。
  2. 回调地址配置错误:登录完成后跳转至http://localhost:9090而非预期的/list,大概率是Keycloak客户端的redirect_uri配置有误,或是Spring Security中登录成功后的跳转逻辑未正确指向/list。
  3. 会话超时参数不合理:应用的HTTP会话超时时间设置过短,或是Keycloak端针对授权请求的缓存超时配置偏短,导致闲置一段时间后授权请求直接失效。

解决方案

  • 调整会话超时设置:
    • 在Spring Boot应用中,通过配置server.servlet.session.timeout延长HTTP会话超时时间(例如设置为3600s即1小时)。
    • 在Keycloak控制台对应客户端的设置页面,调整会话相关超时参数(如Access Token Lifespan、Session Idle Timeout),确保授权请求的生命周期能覆盖用户可能的闲置时长。
  • 修正回调地址配置:
    • 在Keycloak客户端的Valid Redirect URIs中添加正确的回调地址:http://localhost:9090/login/oauth2/code/keycloak-confidential-user(这是Spring Security OAuth2客户端默认的回调路径,需与客户端ID匹配)。
    • 在Spring Security配置中,通过defaultSuccessUrl("/list", true)指定登录成功后默认跳转至/list路径,或自定义AuthenticationSuccessHandler控制跳转逻辑。
  • 处理授权请求过期场景:
    • 在Spring Security中添加错误处理器,捕获authorization_request_not_found错误,引导用户重新发起登录请求,避免手动输入地址的繁琐操作。
  • 检查会话存储可靠性:若应用部署在多实例或有反向代理的环境中,需确保会话通过Redis等共享存储方式同步,防止因会话丢失导致授权请求找不到的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 20:33:10