我有一个Spring Boot应用程序,正在使用Keycloak的授权服务。
假设我有一个名为Report1
,id为1
,由user1
创建的报告。
访问该资源的URL将是/app/{reportId}
。要访问报告,将使用/app/1
我想将对此URL的访问限制为仅限于报告所有者/创建者(user1
)。由于这是一种“动态”URL,并且ID未预先确定,因此我无法在Keycloak中创建具有静态URL(app/1
)的资源。
我想引入类似以下JS策略:
var context = $evaluation.context;
var identity = context.identity;
var permission = $evaluation.permission;
var resource = <Report1>
if (resource.<created_by_user_id> == identity.id) {
$evaluation.grant();
}
从上面的代码:
Report1
应该动态地从数据库中确定。created_by_user_id
是 Report1 的一个属性,其中包含user1
。
有什么想法吗?