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

Spring Boot集成Keycloak登录报401 Authorization header not found错误排查

问题根因定位

报错的核心原因是Keycloak配置中的bearer-only参数设置不符合Web应用的接入场景:

  • 当bearer-only设为true时,当前服务会被识别为纯后端接口服务,仅接受携带合法Bearer令牌的请求,不会主动触发重定向到Keycloak登录页的逻辑。请求无Authorization头时就会直接返回401,和你日志中的NOT_ATTEMPTED: bearer only、Authorization header not found报错完全匹配。
解决方案

你开发的是需要走浏览器登录流程的Web应用,直接修改yml配置里的bearer-only值为false即可:

keycloak:
  realm: "myRealm"
  auth-server-url: "http://localhost:18080/auth"
  ssl-required: "external"
  resource: "myResource"
  credentials:
    secret: "xxxxxxxxxxxxxxxxxxxxxxxxx"
  use-resource-role-mappings: "true"
  bearer-only: "false" # 此处从true改为false
补充验证说明
  • 配置修改后重启应用,再次访问受保护的页面时,Keycloak适配器会自动触发重定向到Keycloak登录页,登录成功后会跳转回应用原访问地址,不需要你手动实现获取令牌、携带令牌调用接口的逻辑,适配器已经封装了完整的授权码流程处理。
  • 可同步检查Keycloak控制台对应客户端的Access Type设置为confidential,和你当前配置携带密钥的模式匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:48:05