Проверка Best-Prectice вошла в систему User Spring-Boot - PullRequest
0 голосов
/ 27 мая 2020

У меня возник вопрос относительно Spring при реализации проекта:

У меня есть несколько ролей (USER, ADMIN, ADVANCED_USER), но иногда мне нужно проверить, есть ли конкретный ресурс c запрашивается пользователем, если он является частью указанной c Entity. Я проверяю, что на данный момент следующее:

Authentication auth = SecurityContextHolder.getContext().getAuthentication();
User loggedIn = userRepository.findUserByEmail(auth.getName());
if(allowedIds.contains(user.getId()) ... access allowed
else ... access denied, exception

Есть ли более умный способ добиться чего-то подобного?

1 Ответ

0 голосов
/ 27 мая 2020

Создайте реализацию оболочки для Auth и поместите ее в контекст безопасности при входе в систему. Там вы можете хранить данные, которые вам понадобились при обработке запроса. После этого вы получите расширенный объект пользователя из контекста безопасности.

...