Рассмотрим некоторую базовую структуру авторизации с User
s и Group
s, где доступ к методам должен быть защищен проверками, которые гарантируют, что пользователь или группа имеют необходимые PriviledgeLevel
для выполнения метода и в противном случае происходит сбой.
То, что я представляю, выглядит примерно так:
@AccessCheck(PriviledgeLevel.ADMINISTRATOR)
public static void secureMethod(){ ... }
Где проверка кода в основном делает
if(currentUser.getPriviledgeLevel >= PriviledgeLevel.ADMINISTRATOR ||
currentUser.getGroup.priviledgeLevel >= PriviledgeLevel.ADMINISTRATOR)
// Allow access
else
// Deny access
Возможно ли реализовать это таким образом?
Я провел небольшое исследование, которое указывает на некоторые существующие вещи, основанные на AspectJ , в основном на Security Annotation Framework (SAF) и на Spring Security .
Я немного обеспокоен, потому что SAF больше не кажется очень активным, а документация не так хороша.
Я не уверен насчет Spring Security, но, похоже, он больше сосредоточен на проблемах безопасности в темах, связанных с вебом.
Служба аутентификации и авторизации Java *1027*, похоже,быть связанным, но не использовать подход аннотации.
Имеет ли смысл пытаться определить эти требования безопасности с помощью этого декларативного подхода?
Есть ли еще одна библиотека / каркас, который мне не хватает,который уже реализует то, что я хочу, или какую-то технологию, которая была бы здесь уместна?
Или есть совершенно другое решение (например, реализация моего собственного ClassLoader
, ...), которое превосходит то, что я представляю (вусловия краткости и читабельности для пользователя библиотеки)?