gpt4 book ai didi

spring-boot - 在Spring Boot中获取Keycloak的AccessToken

转载 作者:行者123 更新时间:2023-12-02 20:31:58 25 4
gpt4 key购买 nike

我在我的 spring boot 应用程序中使用 Keycloak 进行授权管理,我从这个 curl 命令获取访问 token :

curl \
-d "client_id=admin-cli" \
-d "username=user" \
-d "password=password" \
-d "grant_type=password" \
"http://localhost:8180/auth/realms/SpringBootKeycloak/protocol/openid-connect/token"

现在我想在我的 Controller 中获取这个 accessToken,我尝试了这个 example但它似乎不起作用,它显示此错误:

org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken cannot be cast to org.keycloak.KeycloakPrincipal

最佳答案

你可以试试下面的代码

        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.Final

这与示例相同,您可以分享您的作品以了解您的位有什么问题

关于spring-boot - 在Spring Boot中获取Keycloak的AccessToken,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48432626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com