Безопасность (иначе разрешения) и Lucene - Как? Это должно быть сделано?

Сначала немного предыстории моего вопроса.

Отдельные объекты могут иметь разрешения на чтение.Если пользователь терпит неудачучитать проверка разрешения они не могут увидеть этот экземпляр.

Проблема связана с введением Lucene и выполнением поиска, который просто возвращает список совпадающих экземпляров сущностей. Мой код должен будет фильтровать объекты по одному. Этот подход крайне неэффективен, поскольку существует ситуация, когда пользователь может видеть только небольшое меньшинство, и проверка многих на возвращение нескольких является менее чем идеальной.

Какие подходы или как разработчики могут решить эту проблему, имея в виду, что индексация и поиск выполняются с использованием Lucene?

РЕДАКТИРОВАТЬ

Определения

Пользователь может принадлежать ко многим группам.Роль может иметь много групп - они могут измениться.Разрешение имеет роль - (косвенное).X может иметь разрешение на чтение.Определение роли может быть изменено в любое время.

индексирование

Добавление набора групп (расширение Permmission) во время индекса может привести к тому, что определение станет несинхронным, когда список групп участников для изменения роли.Я надеюсь избежать необходимости переиндексировать X всякий раз, когда меняется определение разрешения / роли.

Проверка безопасности

Чтобы пройти проверку Разрешения, Пользователь должен принадлежать к группе, входящей в набор групп, принадлежащих Роли для данного Разрешения.

Ответы на вопрос(4)

Ваш ответ на вопрос