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

问题描述 投票:0回答:1

给定带有Java API代码的用户和密码,我可以从keycloak获取一个令牌:

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

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

java keycloak
1个回答
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();
© www.soinside.com 2019 - 2024. All rights reserved.