1
votes

Erreur 400 demande incorrecte lors de la création de rôles keycloak dans Java

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)


3 commentaires

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.


5 Réponses :


0
votes

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.


0 commentaires

0
votes

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!


0 commentaires

0
votes

J'ai mis à niveau vers la dernière image jboss / keycloak et le même code a fonctionné pour moi


1 commentaires

Veuillez ajouter ceci en commentaire, tôt ou tard, cette question sera rejetée.



0
votes

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.


0 commentaires

0
votes

Vous devez définir le type d'accès client sur "public" (pas seulement), c'est important


1 commentaires

Un peu d'explication aidera les autres