如何从 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 密码?