私は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
ているmaster
とclient_id
ありますadmin-cli
。
@Bean
Keycloak initKeycloakWithAdminRole() {
return Keycloak.getInstance(
"http://localhost:8080/auth",
"master",
"admin",
"admin",
"admin-cli");
私のコード
サービスコード
コントローラのコード
Depedencies こちら