小编t.j*_*joe的帖子

Keycloak 通过 Authzclient 检查权限

我正在尝试通过 keycloak authzclient 从 keycloak 服务器检查用户权限。但是不断失败,现在我不确定我是否对这个过程有一些误解。

AuthzClient authzClient = AuthzClient.create();
String eat = authzClient.obtainAccessToken("tim", "test123").getToken();

AuthorizationResource resource = authzClient.authorization(eat);

PermissionRequest request = new PermissionRequest();
request.setResourceSetName("testresource");

String ticket = authzClient.protection().permission().forResource(request).getTicket();
AuthorizationResponse authResponse = resource.authorize(new AuthorizationRequest(ticket));

System.out.println(authResponse.getRpt());
Run Code Online (Sandbox Code Playgroud)

最后一次调用 authResponse.getRpt() 失败并显示 403 forbidden。但是管理控制台中的以下设置评估为 Permit?

钥匙斗篷评估设置

客户端配置是:

{
  "realm": "testrealm",
  "auth-server-url": "http://localhost:8080/auth",
  "ssl-required": "external",
  "resource": "tv",
  "credentials": {
    "secret": "d0c436f7-ed19-483f-ac84-e3b73b6354f0"
  },
  "use-resource-role-mappings": true
}
Run Code Online (Sandbox Code Playgroud)

以下代码:

AuthzClient authzClient = AuthzClient.create();
String eat = authzClient.obtainAccessToken("tim", "test123").getToken();

EntitlementResponse response = authzClient.entitlement(eat).getAll("tv");
String rpt = response.getRpt();

TokenIntrospectionResponse requestingPartyToken …
Run Code Online (Sandbox Code Playgroud)

java permissions keycloak

5
推荐指数
1
解决办法
3942
查看次数

标签 统计

java ×1

keycloak ×1

permissions ×1