Хорошая реализация ACL в Java - PullRequest
2 голосов
/ 16 мая 2010

Я внедряю веб-систему управления документами, и я хотел бы внедрить ACL в моей системе. Моими формальными требованиями являются иерархические разрешения (документы наследуют разрешения от своих папок) групп пользователей (пользователи могут динамически создавать группы и связывать пользователей с группами). Такие группы могут иметь разрешения на объекты в системе.

Мой код запросит разрешение на объекты в двух случаях: 1. Управление одним документом 2. Перечисление всех документов, где возможны манипуляции

Последнее требование кажется ахиллесовой пятой для ACL Spring Security (кажется, что их метод может вызывать несколько обращений к БД для каждого документа, которым я управляю)

Кто-нибудь знает о другой реализации ACL?

Спасибо!

1 Ответ

2 голосов
/ 16 мая 2010

Я не знаком с ACL Spring Security, но я считаю, что типичные ACL требуют, чтобы вы нажимали каждый узел, чтобы узнать, есть ли у данного участника разрешения на этом узле. Я не знаю, собираетесь ли вы найти способ обойти эту проблему, не вызывая canRead () или canAccess () (или что-то подобное) каждый раз на каждом представляемом вами узле.

В сторону: Вы оценивали, используя что-то, что соответствует JSR-170 (Java Content Repository или 'JCR'), вместо того, чтобы внедрять собственную полную реализацию системы управления документами? Потенциально вы могли бы использовать вещи в JCR для бэкэнда и просто написать поверх него веб-интерфейс. У Jackrabbit есть реализация ACL по умолчанию, которой должно быть достаточно.

...