Я работаю над приложением, которое использует групповую модель для назначения права собственности на объекты домена. Я ищу помощь в определении пригодности Spring Security для авторизации.Реализация авторизации Spring Security с моделью владения группой
Группа:
В системе есть группы. Группа представляет собой коллекцию пользователей, у которых есть какая-то авторизация, чтобы делать что-то в этой группе. Например, пользователь «Салли» может быть членом группы «Группа А» и иметь роль «DATA_EDITING» в этой группе.
Данные, вводимые в систему, назначаются группе, а члены этой группы «владеют» этими данными и могут работать на нее в соответствии с их ролью в группе. Так, например, пользователь «Салли» выше может редактировать (CRUD) все данные, назначенные «Группе А».
Другими словами, каждому объекту домена присваивается «группа», и каждая группа имеет один или несколько членов (пользователей) с одной или несколькими ролями.
Это означает, что отдельный объект домена «принадлежит» 1 или более «принципалам», но только транзитно через доменную группу и общую группу участника.
Мой Текущие исследования:
При чтении Spring Docs, представляется, что наиболее подходящей особенностью Spring Security для этой модели Spring списки управления доступом. Мое понимание заключается в том, что я мог бы создавать ACL с AC/AC на основе пользователя/на основе (в DAOS), которые используют мои «группы» таким образом, что Spring Security действительно не имеет представления о нашей групповой модели, но с точки зрения нашего пользователя ничего не изменится. Другими словами, вышеприведенная «Салли» все равно сможет «думать» в группах, но на уровне базы данных авторизация будет по-прежнему выполняться с помощью ACL, основанного на пользователе/принципе. DAO объекта домена переводит членство группы Sally в стандартный ACL для этого объекта домена.
Этот подход возможен или есть лучший подход (который сохраняет групповую модель) с использованием Spring Security или другого продукта?