Quiero crear un usuario a través keycloak cliente de administración, pero me estoy haciendo:
java.lang.IllegalArgumentException: RESTEASY003720: ruta reino parámetro no ha sido proporcionada por el mapa de parámetros
Aquí está mi frijol para 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();
}
Yo uso este código para llamar 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);
tanto keycloak y keycloak cliente de administración son la misma versión (4.0.0.Final)
Mi StackTrace se ve así:
java.lang.IllegalArgumentException: RESTEASY003720: param reino camino ha sido proporcionada por la carpeta de parámetros en org.jboss.resteasy.specimpl.ResteasyUriBuilder.replaceParameter (ResteasyUriBuilder.java:659) en org.jboss.resteasy.specimpl.ResteasyUriBuilder.buildString (ResteasyUriBuilder.java:581) en org.jboss.resteasy.specimpl.ResteasyUriBuilder.buildFromValues (ResteasyUriBuilder.java:780) en org.jboss.resteasy.specimpl.ResteasyUriBuilder.build (ResteasyUriBuilder.java:772) en org.jboss. resteasy.client.jaxrs.internal.ClientWebTarget.getUri (ClientWebTarget.java:108) en org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.createRequest (ClientInvoker.java:124) en org.jboss.resteasy. client.jaxrs.internal.proxy.ClientInvoker.invoke (ClientInvoker.java:104) en org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke (ClientProxy.java:76) en com.sun.proxy. $ Proxy240.grantToken (origen desconocido) en org.keycloak.admin.client.token.TokenManager.grantToken (TokenManager.java:89) en org.keycloak.admin.client.token.TokenManager .getAccessToken (TokenManager.java:69) en org.mycompany.usermanagement.service.KeycloakService.createUserInSSO (KeycloakService.java:45)
y aquí está mi 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'
¿Está utilizando la primavera de arranque?
He probado su escenario para mí, y funciona bien para mí (probado en keycloak 4.0.0 y la primavera de arranque 1.5.10.RELEASE).
He hecho 1 cambio que la forma de crear la haba Keycloak (mi código es de oficiales docs ). Asegúrese de que realm
es master
y client_id
es admin-cli
.
@Bean
Keycloak initKeycloakWithAdminRole() {
return Keycloak.getInstance(
"http://localhost:8080/auth",
"master",
"admin",
"admin",
"admin-cli");
Mi código
servicio Código
controlador Código
depedencies aquí