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

如何正确配置与使用OAuth2RefreshtokensWebFilter?

解决OAuth2RefreshtokensWebFilter获取Authentication为null的问题

核心问题原因

你当前把过滤器放在OAuth2LoginAuthenticationFilter之后,但此时SecurityContext还未被后续的过滤器(比如SecurityContextHolderAwareRequestFilter)绑定到当前请求上下文,所以SecurityContextHolder.getContext().getAuthentication()会返回null。

正确的过滤器添加方式

将OAuth2RefreshtokensWebFilter添加到SecurityContextHolderAwareRequestFilter之后,这个过滤器负责将已认证的Authentication对象注入到请求上下文,确保你能获取到有效认证信息:

.and() // JHipster Generated
    .addFilterAfter(oAuth2RefreshTokensWebFilter, SecurityContextHolderAwareRequestFilter.class)
.oauth2Client(); // JHipster Generated

额外的校验建议

在过滤器逻辑中先做非空校验,避免空指针异常:

Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication != null && authentication.isAuthenticated()) {
    // 执行你的token刷新逻辑
}

补充说明

对于Keycloak作为SSO的场景,JHipster的OAuth2登录流程中,OAuth2LoginAuthenticationFilter完成认证后,会由SecurityContextPersistenceFilter将认证信息存入SecurityContext,再由SecurityContextHolderAwareRequestFilter将上下文绑定到当前请求。选择这个过滤器作为后置节点,能确保你的刷新过滤器在认证上下文完全就绪后执行。

内容的提问来源于stack exchange,提问作者Another Good Guy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 16:15:41