我正在尝试使用 keycloak 作为我的授权服务器(在网关级别)并拦截所有请求以确定用户是否获得授权。
我已经在 keycloak 端完成了所有配置,并且在使用其 UI 评估时,我获得了所需的访问控制。
我的问题是这段代码我必须提供请求的 resource_Id,这不是一种动态的方式。
这是我的代码快照。
PermissionRequest request = new PermissionRequest(resourceId);
String ticket = authzClient.protection().permission().create(request).getTicket();
authzClient.authorization(req.user().principal().getString("access_token"))
.authorize(new AuthorizationRequest(ticket));
如果用户无权使用此资源,我会收到“UnauthorizedException”,我想使用请求的资源 URI 而不是 resourceId,有没有办法这样做?
请注意,我使用的是 Vertx 框架而不是 Spring Boot。