我可以使用以下方式获取用户名:
@Autowired
private HttpServletRequest request;
Principal user = request.getUserPrincipal();
mqMessage.setUserName(user.getName());
但我想得到firstName&登录用户的lastName。 我怎样才能获得ff。 userinfo使用SpringBoot keycloak适配器?
答案 0 :(得分:3)
KeycloakAuthenticationToken token = (KeycloakAuthenticationToken) request.getUserPrincipal();
KeycloakPrincipal principal=(KeycloakPrincipal)token.getPrincipal();
KeycloakSecurityContext session = principal.getKeycloakSecurityContext();
AccessToken accessToken = session.getToken();
username = accessToken.getPreferredUsername();
emailID = accessToken.getEmail();
lastname = accessToken.getFamilyName();
firstname = accessToken.getGivenName();
realmName = accessToken.getIssuer();
Access realmAccess = accessToken.getRealmAccess();
roles = realmAccess.getRoles();
您可以使用上面的代码段来获取名字和姓氏 这来自 2.4.0
答案 1 :(得分:2)
通过Keycloak 11和Spring安全性实现
更多参考文献:https://www.keycloak.org/docs/latest/securing_apps/#_spring_security_adapter
SUM