如何从 java api 在 keycloak 中设置自定义用户属性

Posted

技术标签:

【中文标题】如何从 java api 在 keycloak 中设置自定义用户属性【英文标题】:How to set Custom User Property in keycloak from java api 【发布时间】:2018-12-10 13:09:29 【问题描述】:

我在我的 Spring 应用程序中使用 keycloak 进行身份验证,如何为用户设置一些属性。 我已经在管理控制台上添加了一个自定义映射器。

【问题讨论】:

你试过什么?你到底想要什么? 【参考方案1】:

请看下面附加的屏幕截图,在用户部分有可以设置属性的选项卡

现在的问题是如何通过代码访问这些用户属性?

所以这里是可以用来访问用户属性的代码。

HttpServletRequest httpRequest = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
        KeycloakSecurityContext securityContext = (KeycloakSecurityContext) httpRequest.getAttribute(KeycloakSecurityContext.class.getName());
          AccessToken accessToken = securityContext.getToken();
          if(null != accessToken )
          Map<String, Object> otherClaims = accessToken.getOtherClaims() ;     
          tgtToken = securityContext.getTokenString();
          String firstUserAtt = otherClaims.get("First_User_Attribute").toString();
          String secondUserAtt = otherClaims.get("Second_User_Attribute").toString();

注意 - First_User_Attribute,Second_User_Attribute 是您在 keycloak 的用户属性部分中声明的密钥。

【讨论】:

以上是关于如何从 java api 在 keycloak 中设置自定义用户属性的主要内容,如果未能解决你的问题,请参考以下文章

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

如何通过 Keycloak Java API 根据资源类型发出授权请求?

如何验证从反应 SPA 中的 keycloak 检索的 nodejs express api 的访问令牌?

如何从 REST API(PUT 方法)更新 Keycloak 密码?

如何在不使用 rest admin api 的情况下以编程方式(java)更新 keycloak 的用户详细信息?

如何使用 httppost/rest-api 从 keycloak 获取用户列表