rest - подходы, чтобы ограничить пользователя своими данными - PullRequest
0 голосов
/ 25 сентября 2019

Я столкнулся с проблемой, когда мне нужно ограничить объем запроса только данными конкретного пользователя.Имея API, где предыдущий аутентифицированный пользователь может получить список данных, мне сначала нужно проверить, принадлежит ли запрашиваемая информация запрашивающей стороне.

Например, пользователь с идентификатором 1 может извлечь только подмножество данныхгде владельцем фактически является тот, кто имеет идентификатор 1. При вызове /api/elements/{elementId} с предыдущим аутентифицированным пользователем должен быть возвращен только элемент с предоставленным elementId IF пользователем, который выполнил запрос.владелец или IF пользователь, который выполнил запрос, имеет роль ADMIN (или любую другую предоставленную роль).В любом другом случае должен возвращаться null или 404 статус HTTP.

После некоторого исследования у меня есть такой подход:

Использовать идентификатор пользователя вкаждая операция CRUD: этот подход заставляет проверять, принадлежит ли текущий элемент пользователю, который сделал запрос.

Плюсы: Я могу заверить, что только данные, принадлежащие этому пользователю, будут прочитаны / записаны

Минусы: Мне нужно добавить пользователяидентификатор во ВСЕХ запросах, а также ограничение возвращаемых данных, исключая из этого условия пользователя с ролью ADMIN, который может запрашивать все без каких-либо ограничений.

Я использую Spring Boot с Spring Security и JWT для аутентификации/ авторизации.Все работает нормально, но наличие этого ограничения заставило меня подумать о каком-то решении Framework (если это возможно) вместо подхода, описанного выше.

Как бы вы подошли к этой проблеме, чтобы решить это ограничение с этими условиями?

Ссылки, связанные с этой проблемой, но без конкретного решения для моего случая:

Заранее спасибо!

...