У меня есть веб-приложение, настроенное на Spring Security, которое получает пользователей и роли из дерева ldap.
У меня есть dn ou = Пользователь, dc = приложение для пользователей и, для роли, ou = Группы, dc = приложение.
Каждая роль является записью во втором поддереве, и связь создается элементом атрибута в записи роли.
На самом деле у меня есть 5 разных ролей доступа (ROLE_A, ROLE_B, ROLE_C, ROLE_D, ROLE_E): каждая роль дает право доступа к определенному URL. Каждая роль независима.
Схема поддерева ролей (очень простая и неполная)
ou = Группы, dc = приложение.
--cn = А
--cn = В
--cn = С
--cn = D
--cn = Е
Теперь мне нужно удовлетворить запрос на добавление 3 новых ролей (ROLE_F, ROLE_G, ROLE_H), которые могут быть назначены по фиксированной схеме:
- ROLE_F может быть назначен, только если пользователь играет роль ROLE_B, ROLE_D,
- ROLE_G может быть назначен, только если пользователь находится в роли ROLE_C или ROLE_E
- ROLE_H может быть назначен, только если пользователь находится в роли ROLE_A или ROLE_B
Какая самая лучшая практика для управления этими 3 новыми ролями? Должен ли я считать их независимой и управляемой зависимостью в приложении или что еще?
Спасибо