Служба авторизации Keycloak - Dynami c Ресурс и атрибуты ресурса - PullRequest
1 голос
/ 18 июня 2020

У меня есть приложение Spring Boot, и я использую службы авторизации Keycloak.

Допустим, у меня есть отчет с именем Report1 с идентификатором 1, созданный user1.

URL-адрес для доступа к ресурсу будет /app/{reportId}. Чтобы получить доступ к отчету, нужно использовать /app/1

. Я хочу ограничить доступ к этому URL-адресу только владельцу / создателю отчета (user1). Так как это своего рода URL-адрес "динамического c", а идентификатор заранее не определен, я не могу создать ресурс со статическим c URL-адресом (app/1) в Keycloak.

Я бы хотел бы ввести политику 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

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...