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

Spring OAuth2集成Keycloak启动报错:authorizationUri不能为空

问题分析与解决:authorizationUri cannot be empty 启动异常

核心原因

你的Keycloak OAuth2客户端配置存在两个关键问题:

  1. issuer-uri 路径错误:当前配置的http://localhost:8080/realms/sdia3/account是Keycloak用户账户页面地址,并非Realm的OpenID Connect发现端点地址。Spring Security OAuth2客户端依赖issuer-uri自动拉取authorizationUri、tokenUri等核心端点信息,错误路径导致无法获取这些必要URI,直接触发authorizationUri cannot be empty异常。
  2. 缺失客户端身份凭证配置:OAuth2客户端必须配置client-id和client-secret(Keycloak控制台创建客户端时生成的凭证),否则即使修复issuer-uri,仍会因配置不完整导致启动失败。

解决步骤

1. 修正Keycloak的issuer-uri配置

将application.properties中的Keycloak issuer-uri修改为Realm根地址(移除末尾的/account):

spring.security.oauth2.client.registration.keycloak.issuer-uri=http://localhost:8080/realms/sdia3

Spring Security会自动通过该地址访问/.well-known/openid-configuration端点,自动获取所有必需的OAuth2端点信息。

2. 补充Keycloak客户端身份配置

在application.properties中添加Keycloak客户端的client-id和client-secret(替换为Keycloak控制台生成的实际值):

spring.security.oauth2.client.registration.keycloak.client-id=你的Keycloak客户端ID
spring.security.oauth2.client.registration.keycloak.client-secret=你的Keycloak客户端密钥

3. 验证其他客户端配置完整性

检查Google、GitHub的OAuth2客户端配置,确保包含完整的client-id、client-secret、redirect-uri(可使用Spring Boot默认占位符{baseUrl}/login/oauth2/code/{registrationId}),避免其他客户端出现类似配置缺失问题。

4. 重启项目

完成上述配置修正后,重新启动Spring Boot项目,authorizationUri会通过issuer自动发现,启动异常即可解决。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 02:55:54