2017-01-11 1 views
0

Je ne peux pas obtenir de groupes d'utilisateurs comme dans les exemples. Échantillons de: Jetez un oeil à notre suite d'essais. Par exemple:Obtention de l'exception keycloak de l'utilisateur Not Found

UserTest

GroupTest

exemple de code d'exemples pour recevoir l'utilisateur des groupes est membre de:

List<GroupRepresentation> membership = realm.users().get(user.getId()).groups(); 

Mon approche: 1. Je crée l'objet keycloak pour admin-cli client dans le domaine myrealm:

this.keycloak = KeycloakBuilder.builder() 
      .serverUrl("http://localhost:18080/auth") 
      .realm("myrealm") 
      .username("admin") 
      .password("admin") 
      .clientId("admin-cli") 
      .resteasyClient(new ResteasyClientBuilder().connectionPoolSize(10).build()) 
      .build(); 
  1. Lorsque je tente d'obtenir l'utilisateur:

    //this line works 
    final UserResource userr = this.keycloak.realms().realm("myrealm").users().get("admin"); 
    
    //this two doesnt, in both result is javax.ws.rs.NotFoundException: HTTP 404 Not Found 
    final UserRepresentation ur = userr.toRepresentation(); 
    final List<GroupRepresentation> groups = this.getRealm().users().get(user.getId()).groups(); 
    

Dans keycloak de I créé admin-cli royaume "mondomaine" avec 2 utilisateurs et 2 groupes Chaque utilisateur est membre des deux groupes. admin est l'un de ces utilisateurs et est membre de ces deux groupes.

Les utilisateurs que j'ai créés sont dans le domaine "myrealm", "admin" en fait partie.

J'ai toujours essayé de donner tous les rôles disponibles des clients et du domaine mais cela ne change rien.

admin-cli Je voulais dire l'application keycloak sur localhost

Qu'est-ce que je manque?

Libs J'utilise:

import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder; 
import org.keycloak.admin.client.Keycloak; 
import org.keycloak.admin.client.KeycloakBuilder; 
import org.keycloak.admin.client.resource.RealmResource; 
import org.keycloak.admin.client.resource.UserResource; 
import org.keycloak.admin.client.resource.UsersResource; 
import org.keycloak.representations.idm.GroupRepresentation; 
import org.keycloak.representations.idm.UserRepresentation; 

Répondre

1

Je viens de tombé dans le même problème que vous. Le problème était avec la méthode "get". Son argument n'est pas un nom d'utilisateur (admin), mais un identifiant d'utilisateur. Quelque chose comme "494061c1-c8f3-44c9-8542-df895af81716".

Dans mon cas, j'ai correctement essayé de passer l'ID utilisateur, mais j'ai utilisé l'ID de jeton à la place qui est quelque chose de complètement différent.