Управление доступом на основе организационной иерархии -в Spring Security (и гибернации)

В одном из проектов, над которым я работаю, есть сценарий, в котором есть центральная база данных, к которой обращаются различные филиалы и подразделения -внутри организации.Помимо прав (, основанных на ролях -, таких как оператор, администратор, утверждающий и т. д. ), с которыми я знаю, как справиться, существует требование фильтровать данные на уровне организационной единицы -.

Например, см. организационную структуру, изображенную ниже : enter image description here

. В этом сценарии любой пользователь, работающий на уровне штаб-квартиры -, будет иметь доступ ко всем данным в филиалах на тех экранах, к которым у пользователя есть доступ (роль -на основе ). Однако любой в Филиале 1 может видеть только данные модулей 1.1, 1.2 и 1.3. То же самое относится и к Ветке 2. Когда мы обобщаем это на следующий уровень, пользователь в Модуле 1.1 может получить доступ только к данным Модуля 1.1, но не к другим.

Итак, возможен ли такой контроль доступа с помощью Domain Object Security или любого другого механизма в Spring Security?

В качестве альтернативы я изучаю возможность наличия перехватчика в Hibernate, который будет выполнять необходимую фильтрацию. Любая помощь на этом фронте также была бы полезна?

7
задан Shyam 26 July 2012 в 07:47
поделиться