Я программирую Сервис и ПО ERP с помощью API, основанного на Servicetack.
В атрибуте фильтра запросов я хочу проверить, имеет ли текущий пользователь разрешение на использование определенной службы, оценивая ACL данной службы.
В атрибуте фильтра ответов я хочу отфильтровать результат службы.
Справочная информация: в моей компании есть пользователи, которые имеют доступ ко всем клиентам и их данным. Тогда у меня есть пользователи, которые принадлежат клиенту, и эти пользователи могут видеть только данные своей компании.
Поэтому сначала я должен оценить, имеет ли пользователь доступ к запрошенной услуге (CRUD), и если да, то мне нужно определить, какие из результирующих данных пользователь может фактически увидеть в пользовательском интерфейсе.
Я заполнил свой JWT так:
{
"iat": 1556223131,
"exp": 1557432731,
"preferred_username": "sa",
"cwp_pid": "people/97-A",
"cwp_bpid": "geschaeftspartners/481-A",
"cwp_adm": "True",
"cwp_su": "True"
}
В этих атрибутах фильтра мне нужен доступ к моим утверждениям cwp_ для запуска моего фильтра откликов, а в фильтре запросов мне нужен доступ к cwp_pid (идентификатор пользователя).