2017-06-28 6 views
0

Ich versuche, Benutzersitzung mit keycloak REST-API zu löschen, Aber bekommen den 403 verbotenen HTTP-Statuscode. Ich gebe den Token und den Cookie in die Kopfzeile weiter, bitte lassen Sie mich wissen, wenn ich etwas verpasse.Keycloak REST API 403 verboten

static void logout (String userId, KeycloakSecurityContext Sitzung) {

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

} 

Antwort

0

der Benutzer, den Sie verwenden, um Zugang nach Funktionen muss nach Rechte auf Ihrem Gebiet.

Zum Beispiel brauchte mein 'admin' Benutzer eine CLIENT ROLE "view-users" von CLIENT "realm-management", um Informationen über Benutzer zu erhalten. In Ihrem Fall, wenn Sie einen Benutzer löschen müssen, benötigen Sie möglicherweise eine Rolle "manage-users" oder kann etwas leistungsfähiger sein.