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



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

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

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

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

最新更新