如何从 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 中设置自定义用户属性的主要内容,如果未能解决你的问题,请参考以下文章