在给定用户和密码的情况下,我可以使用Java API代码从keycloak获得一个令牌:
AccessTokenResponse tokenresponse = authzClient.obtainAccessToken(user, password);
如何从Keycloak获取该用户的名字、姓氏以及其他属性?例如Id?
发布于 2018-09-12 04:17:34
我使用的代码只是从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();
https://stackoverflow.com/questions/52279816
复制相似问题