如何将Keycloak 7与Spring Boot 2集成

时间:2019-09-04 14:11:49

标签: java spring-boot keycloak

我想为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一起使用是否有一定的限制。也许有人可以解释我在这里错过的内容或要设置的版本。谢谢!

1 个答案:

答案 0 :(得分:1)

这里也有人问过同样的问题:Issues running example keycloak spring-boot app,我将向您介绍另一个问题,以获取有关此问题的详细信息和临时解决方法。

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