Spring boot 将KeyClope管理客户端3.1.0.Final与Spring Boot 1.5.1集成

Spring boot 将KeyClope管理客户端3.1.0.Final与Spring Boot 1.5.1集成,spring-boot,resteasy,keycloak,Spring Boot,Resteasy,Keycloak,我正在尝试将keydove管理客户端与springboot集成 但在我尝试创建新帐户时引发了一个异常: Caused by: javax.ws.rs.ProcessingException: RESTEASY003145: Unable to find a MessageBodyReader of content-type application/json and type class org.keycloak.representations.AccessTokenResponse 因此,我尝

我正在尝试将keydove管理客户端与springboot集成

但在我尝试创建新帐户时引发了一个异常:

Caused by: javax.ws.rs.ProcessingException: RESTEASY003145: Unable to find a MessageBodyReader of content-type application/json and type class org.keycloak.representations.AccessTokenResponse
因此,我尝试以如下方式明确注册KeyClope的Jackson提供商:

            KeycloakBuilder
            .builder()
            .serverUrl(SERVER_URL)
            .realm(REALM)
            .username(USERNAME)
            .password(PASSWORD)
            .clientId(CLIENT_ID)
            .resteasyClient(new ResteasyClientBuilder()
                  .providerFactory(factory.register(ResteasyJackson2Provider.class))
                    .connectionPoolSize(10)
                    .build())
            .build();
但是我无法导入
ResteasyJackson2Provider.class

pom.xml

<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-spring-security-adapter</artifactId>
    <version>3.1.0.Final</version>
</dependency>
<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-admin-client</artifactId>
    <version>3.1.0.Final</version>
</dependency>
<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jaxrs</artifactId>
    <version>3.1.3.Final</version>
</dependency>
<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-client</artifactId>
    <version>3.1.3.Final</version>
</dependency>
<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jackson2-provider</artifactId>
    <version>3.1.3.Final</version>
</dependency>

过了一会儿,我想出了解决这个问题的办法:

首先,我用独立项目(empty maven project)测试了它,问题仍然出现,因为
resteasy jackson provider
。它应该是
resteasy-jackson2-provider
(注意它的resteasy-jackson2-provider)

现在,我知道问题不知何故来自于SpringBoot,RESTeasy。最后,我提出了一个实用的pom.xml

    <dependency>
        <groupId>org.keycloak</groupId>
        <artifactId>keycloak-admin-client</artifactId>
        <version>3.1.0.Final</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-client</artifactId>
        <version>3.1.3.Final</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jackson2-provider</artifactId>
        <version>3.1.3.Final</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.8.8</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.8.8</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.8.8</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.jaxrs</groupId>
        <artifactId>jackson-jaxrs-json-provider</artifactId>
        <version>2.8.8</version>
    </dependency>

工作示例:

过了一会儿,我想出了这个问题的解决方案:

首先,我用独立项目(empty maven project)测试了它,问题仍然出现,因为
resteasy jackson provider
。它应该是
resteasy-jackson2-provider
(注意它的resteasy-jackson2-provider)

现在,我知道问题不知何故来自于SpringBoot,RESTeasy。最后,我提出了一个实用的pom.xml

    <dependency>
        <groupId>org.keycloak</groupId>
        <artifactId>keycloak-admin-client</artifactId>
        <version>3.1.0.Final</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-client</artifactId>
        <version>3.1.3.Final</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jackson2-provider</artifactId>
        <version>3.1.3.Final</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.8.8</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.8.8</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.8.8</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.jaxrs</groupId>
        <artifactId>jackson-jaxrs-json-provider</artifactId>
        <version>2.8.8</version>
    </dependency>

工作示例:

admin cli它已经配置好了,但是您可以使用任何客户端,只要验证流在两个部分上都匹配!admin cli它已经配置好了,但是您可以使用任何客户端,只要验证流在两个部分上都匹配!
            KeycloakBuilder
            .builder()
            .serverUrl("localhost:8080/auth")
            .realm("master")
            .username("YOUR_USERNAME")
            .password("YOUR_PASSWORD")
            .clientId("admin-cli")
            .build();