如何使用keycloak在springboot中获取userinfo?

时间:2018-03-05 07:21:59

标签: spring-mvc spring-boot spring-security keycloak keycloak-services

我可以使用以下方式获取用户名:

@Autowired
 private HttpServletRequest request;
 Principal user = request.getUserPrincipal();
 mqMessage.setUserName(user.getName());

但我想得到firstName&登录用户的lastName。 我怎样才能获得ff。 userinfo使用SpringBoot keycloak适配器?

2 个答案:

答案 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