2017-01-11 3 views
0

Ich kann keine Benutzergruppen wie in Proben erhalten. Beispiele von: Werfen Sie einen Blick auf unsere Testsuite. Zum Beispiel:Benutzer keycloak Not Found Ausnahme

UserTest

GroupTest

Beispielcode von Beispielen für Gruppen Benutzer zu empfangen ist Mitglied von:

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

Mein Ansatz: 1. Ich keycloak Objekt für die Admin-cli erstellen Client in Myrealm-Bereich:

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. Wenn ich versuche, Benutzer zu erhalten:

    //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(); 
    

In keycloak von Admin-cli I Bereich "mein" erstellt mit 2 Benutzer und 2 Gruppen Jeder Benutzer ist Mitglied beider Gruppen. admin gehört zu diesen Benutzern und ist Mitglied dieser beiden Gruppen.

Benutzer, die ich erstellt habe, sind in "myrealm" Bereich, "admin" ist einer von ihnen.

Ich habe auch versucht, alle verfügbaren Rollen von Clients und Realm geben, aber das ändert nichts.

Admin-cli bedeutete, dass ich keycloak App auf localhost

Was bin ich?

Libs Ich verwende:

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; 

Antwort

1

ich nur in das gleiche Problem wie du gestolpert. Das Problem war mit der "Get" -Methode. Sein Argument ist kein Benutzername (admin), sondern eine Benutzerkennung. Etwas wie "494061c1-c8f3-44c9-8542-df895af81716".

In meinem Fall habe ich richtig versucht, die Benutzer-ID zu übergeben, aber ich verwendete Token-ID statt, die etwas völlig anderes ist.