Spring Data JPA и spring-security: фильтр на уровне базы данных (особенно для подкачки страниц)

Я пытаюсь добавить безопасность уровня метода в свой проект с открытым исходным кодом, используя аннотации и Spring-Security. Проблема, с которой я сейчас сталкиваюсь, - это методы findAll, особенно те, которые используются для подкачки страниц (например, возвращение страницы).

Использование @PostFilter работает со списками (но я лично считаю, что фильтрация в приложении, а не в базе данных, не очень хорошая идея), но полностью проваливается при поиске по страницам.

Это проблематично, потому что у меня есть сущность, содержащаяList<Compound>, Существуют разные реализации соединения, и пользователь может иметь только право на чтение одного из соединений. Составные использованияTABLE_PER_CLASS наследование. Хранилища реализуютQueryDslPredicateExecutor.

Я думаю добавить в каждый запрос предикат, который ограничивает возвращаемые результаты в зависимости от текущего пользователя. Тем не менее, я немного растерялся из-за: а) как должна выглядеть модель данных для пользователя и ролей и б) как затем создать предикат (это, вероятно, легко, когда модель определена). Или querydsl уже предлагает фильтрацию на основе типов (для элементов, содержащихся в запрашиваемом классе)?

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

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