aka*_*ari 3 spring-boot keycloak
我在 Spring Boot 应用程序中使用 Keycloak 进行授权管理,我从这个curl命令中获取访问令牌:
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"
Run Code Online (Sandbox Code Playgroud)
现在我想在我的控制器中获取此 accessToken,我尝试了这个示例 ,但它似乎不起作用,它显示此错误:
org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken cannot be cast to org.keycloak.KeycloakPrincipal
Run Code Online (Sandbox Code Playgroud)
你可以尝试下面的代码
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();
Run Code Online (Sandbox Code Playgroud)
我使用的是2.4.0.Final
这与示例相同,您可以分享您的作品以了解您的位有什么问题
| 归档时间: |
|
| 查看次数: |
18139 次 |
| 最近记录: |