首页 > 解决方案 > 如何使用 Java API 从 keycloak 获取用户的名字、姓氏和属性?

问题描述

我可以使用 Java API 代码从 keycloak 获取一个令牌:

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

如何从 Keycloak 获取此用户的名字、姓氏以及其他属性?比如身份证?

标签: javakeycloak

解决方案


我使用的代码只是从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();

推荐阅读