我可以使用Java API代码从给定用户名和密码的情况下从keycloak获取令牌:
AccessTokenResponse tokenresponse = authzClient.obtainAccessToken(user, password);
如何从Keycloak获取此用户的名字,姓氏以及其他属性?例如ID?
答案 0 :(得分:0)
我使用的代码只是从AccessToken
获取信息。这是从JAX-RS服务获取的,但是您不清楚如何尝试访问它。也许它仍然可以给您一些想法。
@Path("/something")
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response aMethod(@Context SecurityContext securityContext) {
Principal principal = securityContext.getUserPrincipal();
KeycloakPrincipal<KeycloakSecurityContext> keycloakPrincipal = (KeycloakPrincipal<KeycloakSecurityContext>) principal;
AccessToken accessToken = keycloakPrincipal.getKeycloakSecurityContext().getToken();
// first name
accessToken.getGivenName()
// last name
accessToken.getFamilyName();
// email
accessToken.getEmail();
// roles
accessToken.getRealmAccess().getRoles();