如何使用Java API从keycloak获取用户的名字,姓氏和属性?

时间:2018-09-11 15:52:05

标签: java keycloak

我可以使用Java API代码从给定用户名和密码的情况下从keycloak获取令牌:

 AccessTokenResponse tokenresponse = authzClient.obtainAccessToken(user, password);

如何从Keycloak获取此用户的名字,姓氏以及其他属性?例如ID?

1 个答案:

答案 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();