我可以通过使用以下方式获取用户名:
@Autowired
private HttpServletRequest request;
Principal user = request.getUserPrincipal();
mqMessage.setUserName(user.getName());
但是我想获得登录用户的名字和姓氏。
我怎么能得到ff。使用SpringBoot keycloak适配器的userinfo?
最佳答案
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
关于spring-mvc - 如何在 Spring 启动时使用keycloak获取userinfo?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49105290/