keycloak管理クライアント戻ってkeycloakでユーザーを作成はIllegalArgumentException

ksadjad:

私はkeycloak管理クライアントを介してユーザーを作成したいが、私は取得しています:

java.lang.IllegalArgumentExceptionが:RESTEASY003720:パスのparamレルムは、パラメータマップによって提供されていません

ここでkeycloakのための私の豆です。

@Bean
Keycloak keycloak() {
return KeycloakBuilder
    .builder()
    .serverUrl(localhost:9080/auth)
    .realm(REALM)
    .clientId(CLIENT_ID)
    .username(USERNAME)
    .password(PASSWORD)
    .resteasyClient(new ResteasyClientBuilder().connectionPoolSize(10).build())
    .build();
}

私はkeycloakを呼び出すため、このコードを使用します。

CredentialRepresentation credentialRepresentation = new 
CredentialRepresentation();
credentialRepresentation.setType(CredentialRepresentation.PASSWORD);
credentialRepresentation.setValue(password);
UserRepresentation userRepresentation = new UserRepresentation();
userRepresentation.setUsername(username);
userRepresentation.setFirstName(firstName);
userRepresentation.setLastName(lastName);
userRepresentation.setEnabled(true);
userRepresentation.setCredentials(
    Arrays.asList(credentialRepresentation));
keycloak.realm(REALM).users().create(userRepresentation);

keycloakとkeycloak管理クライアントの両方が同じバージョンである(4.0.0.Final)

私のスタックトレースは次のようになります。

java.lang.IllegalArgumentExceptionが:RESTEASY003720:PARAMパスレルムはorg.jboss.resteasy.specimpl.ResteasyUriBuilder.buildStringでorg.jboss.resteasy.specimpl.ResteasyUriBuilder.replaceParameter(ResteasyUriBuilder.java:659)におけるパラメータフォルダによって提供されていますorg.jbossでorg.jboss.resteasy.specimpl.ResteasyUriBuilder.build(ResteasyUriBuilder.java:772)でorg.jboss.resteasy.specimpl.ResteasyUriBuilder.buildFromValuesで(ResteasyUriBuilder.java:581)(ResteasyUriBuilder.java:780)。 org.jboss.resteasyでorg.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.createRequestでresteasy.client.jaxrs.internal.ClientWebTarget.getUri(ClientWebTarget.java:108)(ClientInvoker.java:124)。 org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.javaでclient.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:104):com.sun.proxyで76)。org.keycloak.admin.client.token.TokenManagerでorg.keycloak.admin.client.token.TokenManager.grantTokenで$ Proxy240.grantToken(不明なソース)(TokenManager.java:89) org.mycompany.usermanagement.service.KeycloakService.createUserInSSOで.getAccessToken(TokenManager.java:69)(KeycloakService.java:45)

そしてここで私のbuild.gradleです

compile group: 'org.keycloak', name: 'keycloak-admin-client', version: '4.0.0.Final'
compile group: 'org.jboss.resteasy', name: 'resteasy-jaxrs', version: '3.1.4.Final'
compile group: 'org.jboss.resteasy', name: 'resteasy-client', version: '3.1.4.Final'
compile group: 'org.jboss.resteasy', name: 'resteasy-jackson2-provider', version: '3.1.4.Final'
黒真珠 :

あなたは春のブートを使用していますか?

私は自分自身のためにあなたのシナリオを試みたが、(keycloak 4.0.0と春ブーツ1.5.10.RELEASE上でテスト)私のためにうまく機能しています。

私はあなたがビーンKeycloakを(私のコードは公式からです作成方法という1つの変更を行っているドキュメント)。そのことを確認しrealmているmasterclient_idありますadmin-cli

@Bean
Keycloak initKeycloakWithAdminRole() {
    return Keycloak.getInstance(
            "http://localhost:8080/auth",
            "master",
            "admin",
            "admin",
            "admin-cli");


私のコード

サービスコード

コントローラのコード

Depedencies こちら

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=167312&siteId=1