【发布时间】:2018-12-10 13:09:29
【问题描述】:
我在我的 Spring 应用程序中使用 keycloak 进行身份验证,如何为用户设置一些属性。 我已经在管理控制台上添加了一个自定义映射器。
【问题讨论】:
-
你试过什么?你到底想要什么?
标签: java authentication spring-security keycloak keycloak-services
我在我的 Spring 应用程序中使用 keycloak 进行身份验证,如何为用户设置一些属性。 我已经在管理控制台上添加了一个自定义映射器。
【问题讨论】:
标签: java authentication spring-security keycloak keycloak-services
请看下面附加的屏幕截图,在用户部分有可以设置属性的选项卡
现在的问题是如何通过代码访问这些用户属性?
所以这里是可以用来访问用户属性的代码。
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 的用户属性部分中声明的密钥。
【讨论】: