我正在使用AuthzClient使用以下代码获取访问令牌:
Map<String,Object> clientCredentials = new HashMap<>();
clientCredentials.put("secret", keycloakClientSecret);
Configuration configuration = new Configuration(
keycloakUrl, keycloakRealmName, keycloakClientId, clientCredentials, null
);
AuthzClient authzClient = AuthzClient.create(configuration);
AccessTokenResponse accessTokenResponse = authzClient.obtainAccessToken(
loginRequest.getUsername(), loginRequest.getPassword()
);
System.out.println(accessTokenResponse.getOtherClaims());
我成功获取了访问令牌和刷新令牌,但是我没有其他要求。它是空的。
我已将Mapper配置为包括来自门户的我的定制属性。我在这里做错了什么?
答案 0 :(得分:1)
我没有找到有关keycloak authzclient的任何解决方案。但是我正在将jwt解码解决方案用作https://github.com/auth0/java-jwt
我的带有jwt-decoder的示例:
public Claim getClaimByName(String key)
{
try {
DecodedJWT jwt = JWT.decode(this.tokenResponse.getAccessToken()); // just token as String
return jwt.getClaim(key);
} catch (JWTCreationException exception){
return null;
}
}
getClaimByName("site").asString()