I created a token with /protocol/openid-connect/token and got a JWT token back.
Now I am trying to get the username of the logged user from the token via /userinfo.
I get the 403 error code.
When I was doing that request with the admin user, it worked.
I am wondering if I have to set some roles to every user that want to be able to get back their info via /userinfo
public User getUserFromToken(String iToken) {
HttpClient httpClient = buildHttpClient();
HttpGet httpGet = new HttpGet(getKeycloakServerURL() + "/realms/" + getKeycloakRealm() + "/protocol/openid-connect/userinfo");
httpGet.addHeader("Authorization", "Bearer " + iToken);
try {
HttpResponse httpResponse = httpClient.execute(httpGet);
if (httpResponse.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
throw new IllegalStateException(httpGet.toString() + " returned " + httpResponse.getStatusLine().toString());
}
String json = IOUtils.toString(httpResponse.getEntity().getContent());
UserInfo userInfo = JsonSerialization.readValue(json, UserInfo.class);
return getUser(userInfo.getName(), getKeycloakRealm());
} catch (IOException e) {
throw new IllegalStateException(e);
}
}
anything I am missing ?
cheers !
REMI CARTIER
B.O.S.S. (Business & Operation Support Systems) P.O (Product Owner)
IMETRIK
GLOBAL INC.
T
: +1
514 448-6407 x2009
T
: +1
866 276-5382 (toll free)
F
: +1
514 904-0611
740
Notre Dame St. West, Suite 1575
Montreal,
Quebec, Canada H3C 3X6
imetrik.com