J'essaye de créer un rôle Keycloak à partir de mon programme Java. Je suis capable de créer un utilisateur donc ce n'est pas un problème de connexion à mon serveur Keycloak mais la fonction de création pour le rôle me donne toujours une erreur 400 mauvaise requête. Quelle est la solution pour créer un rôle à partir de Java?
Keycloak kc = KeycloakBuilder.builder() .serverUrl("http://localhost:8080/auth") .realm("master") .grantType(OAuth2Constants.PASSWORD) .username("***") .password("***") .clientId("admin-cli") .resteasyClient(new ResteasyClientBuilder().connectionPoolSize(10).build()) .build(); RoleRepresentation roleRepresentation = new RoleRepresentation(); roleRepresentation.setName(nomRole); roleRepresentation.setClientRole(true); kc.realm("master").roles().create(roleRepresentation);
erreur: Exception dans le thread "main" javax.ws.rs.BadRequestException: HTTP 400 Bad Request à org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.handleErrorStatus (ClientInvocation.java:215) à org.jboss.resteasy.client.jaxrs.internal.proxy.extractors.DefaultEntityExtractorFactory $ 3.extractEntity (DefaultEntityExtractorFactory.java:50) à org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invokeSync (ClientInvoker.java:150) à org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke (ClientInvoker.java:112) à org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke (ClientProxy.java:76) à com.sun.proxy. $ Proxy25.create (source inconnue) à Main.CreateKeycloakRole (Main.java:37) sur Main.main (Main.java:96)
5 Réponses :
L'une des causes possibles est que nomRole
est nul.
Je peux créer un rôle en utilisant votre code avec le client Keycloak 4.8.3 et le serveur Keycloak 4.8.3.
J'ai essayé avec la version Keycloak 4.8.3 et maintenant cela fonctionne comme prévu! Je pense que ma version était trop ancienne pour gérer la création de rôles! Pour moi, la solution était simplement de prendre une version plus récente! Merci à tous pour votre aide!
J'ai mis à niveau vers la dernière image jboss / keycloak et le même code a fonctionné pour moi
Veuillez ajouter ceci en commentaire, tôt ou tard, cette question sera rejetée.
Le même problème m'est arrivé lorsque Consentement requis
a été défini sur ON
pour un client.
Si je le règle sur OFF
cela fonctionne, je suis en train de rechercher un problème.
Vous devez définir le type d'accès client sur "public" (pas seulement), c'est important
Un peu d'explication aidera les autres
Jetez un œil à cette encre: stackoverflow.com/questions/36041604/...
As-tu trouvé la solution? Je suis confronté à la même exception lors de la création de rôles.
Je n'ai trouvé aucune solution. J'utilise la version 4.5.0 final. Je vais essayer avec le 4.8.3 comme le dit Kohei dans la réponse.