gpt4 book ai didi

spring-boot - Keycloak 授权服务 - 动态资源和资源属性

转载 作者:行者123 更新时间:2023-12-05 07:06:32 25 4
gpt4 key购买 nike

我有一个 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

有什么想法吗?

最佳答案

据我所知,支持创建资源时的动态 url。关于资源属性,你可以使用这样的东西:

var attributes = resource.getAttributes();

您可以附加一个专用属性,例如所有权,其中值为创建者 (user1)。

关于spring-boot - Keycloak 授权服务 - 动态资源和资源属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62448748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com