2017-06-28 3 views
0

J'essaie de supprimer une session utilisateur en utilisant l'API REST de keycloak, Mais en obtenant le code d'état Http interdit 403. Je passe le jeton et le cookie dans l'en-tête, s'il vous plaît laissez-moi savoir si j'ai raté quelque chose.Keycloak REST API 403 interdit

LOGOUT static void (String userId, la session KeycloakSecurityContext) {

userId = "a12c13b7-fa2e-412f-ac8e-376fdca16a83"; 

    String url = "http://localhost:8081/auth/admin/realms/TestRealm/users/a12c13b7-fa2e-412f-ac8e-376fdca16a83/logout"; 
    HttpClient httpclient = HttpClients.createDefault(); 
    HttpPost httppost = new HttpPost(url); 

    HttpResponse response; 
    try { 

     httppost.addHeader("Accept", "application/json"); 
     httppost.addHeader("Content-Type","application/json"); 
     httppost.addHeader("Cookie", "JSESSIONID=CABD8A135C74864F0961FA629D6D489B"); 
     httppost.addHeader("Authorization", "Bearer "+session.getTokenString()); 


     response = httpclient.execute(httppost); 
     HttpEntity entity = response.getEntity(); 

     System.out.println("entity :"+response.getStatusLine()); 

     if (entity != null) { 
      String responseString = EntityUtils.toString(entity, "UTF-8"); 
      System.out.println("body ....."+responseString); 
     } 
    } catch (ClientProtocolException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

} 

Répondre

0

l'utilisateur que vous utilisez pour accéder aux fonctions selon besoins en fonction des droits sur votre royaume.

Par exemple mon utilisateur 'admin' avait besoin d'un CLIENT ROLE "view-users" de CLIENT "gestion de domaine" pour pouvoir obtenir des informations sur les utilisateurs. Dans votre cas, lorsque vous devez supprimer un utilisateur, vous pouvez avoir besoin d'un rôle "gérer les utilisateurs" ou être plus puissant.