【发布时间】:2020-10-08 10:30:23
【问题描述】:
我有一个 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应由 DB 动态确定 -
created_by_user_id是 Report1 的一个属性,其中包含user1
有什么想法吗?
【问题讨论】:
-
你是怎么解决这个问题的?
标签: spring-boot authorization keycloak