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

Quarkus+OIDC+VertX静态路由令牌过期后不重定向问题

Quarkus OIDC令牌过期后不重定向至IDP的解决方案

核心问题原因

Quarkus的OIDC web-app模式默认会对交互式HTML请求自动触发登录重定向,但你的场景中使用自定义Vert.x路由处理静态文件,可能导致认证机制未正确识别请求类型,或是缺少强制重定向的配置,最终令牌过期后直接返回401而非触发跳转。

快速修复:添加重定向配置

在application.properties中显式配置强制重定向:

quarkus.oidc.authentication.redirect-on-401=true

虽然web-app模式下该配置默认值为true,但自定义路由可能干扰了默认逻辑,显式设置可确保Quarkus检测到无效/过期令牌时,自动重定向到Keycloak。

同时建议检查会话配置,确保会话Cookie正常工作:

# HTTPS环境下启用Secure Cookie
quarkus.http.session.cookie.secure=true
# 会话超时建议与IDP令牌过期时间匹配
quarkus.http.session.timeout=30m

自定义路由的替代方案

如果不需要自定义路由的特殊逻辑,建议改用Quarkus默认的静态资源配置,认证机制会自动介入处理:

# 静态资源访问路径
quarkus.http.static-resources.paths=/*
# 静态资源所在目录
quarkus.http.static-resources.location=${static.root.directory}

移除你编写的StaticContentDeclarativeRoute类,Quarkus会自动处理静态文件请求,同时正确触发登录重定向。

是否需要前端令牌管理库?

如果你的静态页面是纯静态HTML(无AJAX请求),完全不需要@axa-fr/react-oidc这类前端库,Quarkus服务端的OIDC web-app模式足够处理登录重定向流程。但如果页面包含AJAX接口调用,则需要前端捕获401错误,手动触发页面跳转至登录页,或者使用前端库自动处理令牌刷新与重定向。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 20:38:14