java - 如何使用 Java API 从 keycloak 获取用户的名字、姓氏和属性?
问题描述
我可以使用 Java API 代码从 keycloak 获取一个令牌:
AccessTokenResponse tokenresponse = authzClient.obtainAccessToken(user, password);
如何从 Keycloak 获取此用户的名字、姓氏以及其他属性?比如身份证?
解决方案
我使用的代码只是从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();
推荐阅读
- javascript - 变形不和谐文本
- python - 为什么有些图片的url只能显示在html里面,而不能在浏览器中直接通过url打开?
- javascript - 如何删除画布周围的灰色边框
- javascript - 试图在 html 中连接字符串
- angular - Angular:TypeError:无法读取未定义的属性“toLowerCase”
- azure - Azure PowerShell Set-AzKeyVaultAccessPolicy 命令设置对数据工厂的访问策略
- javascript - 替换和原始函数 var 之间的区别
- c# - 如何对多个单词(不是字符)进行正则表达式拆分
- reactjs - 如何解析 react-final-form 中未触及的字段
- javascript - 当使用一个字符串从另一个函数调用一个函数时,人们会怎么做呢?