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

KeyCloak整合Spring Boot仅GET请求正常,非GET请求返回403问题咨询

问题原因

这个问题的核心是HttpSecurity配置的执行顺序错误,导致CSRF防护被意外开启:

  • 你在自定义configure(HttpSecurity http)方法中先执行了http.csrf().disable()关闭CSRF防护,随后调用了super.configure(http)
  • Keycloak提供的父类配置方法会重新启用CSRF防护,直接覆盖了你之前的关闭配置
  • CSRF防护默认仅拦截POST、PUT、DELETE等修改类型的请求,GET请求不受校验规则影响,因此GET请求能正常返回,其他请求会因为没有携带合法CSRF Token直接返回403。且该拦截发生在认证逻辑之后,所以你能看到正常的认证通过日志。
解决方案

调整配置方法的执行顺序,将父类配置调用放在自定义配置的最前面即可,修改后的配置如下:

protected void configure(HttpSecurity http) throws Exception {
    // 先执行父类配置,再写自定义规则覆盖需要修改的部分
    super.configure(http);
    http.csrf().disable().authorizeRequests()
        .anyRequest().hasRole("admin");
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:39:00