【发布时间】:2021-03-13 05:47:32
【问题描述】:
我希望能够使用 Java 授权 API 从 Keycloak UI 重现该行为:
我的目标是获取用户可以访问的特定资源类型的所有资源的列表。 我在这里测试了很多东西。
这将为我提供一个可以访问的每个资源的列表。虽然我担心这不会很好地扩展。
AuthzClient authzClient = AuthzClient.create();
AuthorizationResource authorizationResource = authzClient.authorization(keycloakSecurityContext.getTokenString());
return authorizationResource.authorize().getToken();
这是我用来获取特定范围权限的方法。
AuthzClient authzClient = AuthzClient.create();
AuthorizationResource authResource = authzClient.authorization(keycloakSecurityContext.getTokenString());
AuthorizationRequest authRequest = new AuthorizationRequest();
authRequest.addPermission(null, SCOPE1);
authRequest.addPermission(null, SCOPE2);
return authResource.authorize(authRequest).getToken();
但是我想要的是对特定类型的请求,这似乎是不可能的。
我知道我可以列出特定类型:
authzClient.protection().resource()
.find(null,null,null,null, "The-Type-I-Want", null, false, 0, Integer.MAX_VALUE)
但同样,这似乎不合适,因为它不是基于用户的许可,如果我尝试使用它肯定不会很好地扩展。
那么如何进行资源类型授权请求?
【问题讨论】:
标签: java resources authorization keycloak