给定带有Java API代码的用户和密码,我可以从keycloak获取一个令牌:
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();