如何将 Keycloak 7 与 Spring Boot 2 集成

How to integrate Keycloak 7 with Spring Boot 2

我想为 Spring Boot 2.1.x 后端设置 Keycloak 适配器 (v7.0.0)。不知怎的,这没有按预期工作,mvn clean spring:boot-run 显示错误。

为了得到一个游乐场,我克隆了这个工作 repo。在使用旧版本的 Keycloak 和 Spring Boot 成功构建后,我更改了依赖项(和版本)。

对于我包含的 POM:

<dependency>
  <groupId>org.keycloak</groupId>
  <artifactId>keycloak-spring-boot-starter</artifactId>
  <version>7.0.0</version>
</dependency>

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.keycloak.bom</groupId>
        <artifactId>keycloak-adapter-bom</artifactId>
        <version>7.0.0</version>
        <type>pom</type>
        <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

并通过 application.yml 文件提供属性:

keycloak:
  auth-server-url: http://127.0.0.1:8081/auth/
  resource: persons-app
  realm: PersonRealm
  public-client: true
  principal-attribute: preferred_username

这是在 Keycloaks docs.

之后

结果显示错误:

Description:

Parameter 1 of method setKeycloakSpringBootProperties in org.keycloak.adapters.springboot.KeycloakBaseSpringBootConfiguration required a bean of type 'org.keycloak.adapters.springboot.KeycloakSpringBootConfigResolver' that could not be found.


Action:

Consider defining a bean of type 'org.keycloak.adapters.springboot.KeycloakSpringBootConfigResolver' in your configuration.

这已经定义好了。这就是问题所在。我不知道什么版本的 Keycloak 和 Spring Boot 一起工作有一定的限制。也许有人可以解释我在这里错过了什么或要设置什么版本。谢谢!

这里有人提出了同样的问题:我会向您指出另一个问题,以获取有关该问题的更多信息和临时解决方法。

目前没有最终解决方案,这是 Keycloak Spring Boot Adapter 7.0.0 的问题。如果您使用以前版本的适配器 (6.0.1) 那么它将正常工作,即使 Keycloak 服务器是 运行 版本 7.0.0(您只是没有获得新适配器中引入的新功能).