Как я могу разбивать страницы с помощью Spring Security, Hibernate и ACL на уровне строк

Я читаю о Spring Security и задаюсь вопросом, можно ли использовать Spring ACL вместе с гибернацией и нумерацией страниц. Результирующий SQL, безусловно, страшный, но его можно сгенерировать автоматически. Даже можно использовать иерархический ACL, если база данных поддерживает оценка рекурсивного запроса.

Использование пост-фильтра не является решением, так как он нарушает нумерацию страниц и является ненужным накладным расходом по сравнению с фильтрацией ACL внутри базы данных.

Так что у меня действительно есть части, чтобы построить решение. Я хочу знать, сделал ли кто-нибудь это уже.

Ссылки:


person Thomas Koch    schedule 27.10.2013    source источник


Ответы (2)


Да, есть решения вашей проблемы. Поле называется динамической маскировкой данных и динамической фильтрацией данных.

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

Посмотри на:

person David Brossard    schedule 25.11.2015

Я справляюсь с этим, сначала получая список идентификаторов, к которым у моего пользователя есть доступ, с помощью решения, которое я дал здесь.

Затем я использую этот список идентификаторов для выполнения запроса IN с этим списком.

person denov    schedule 28.10.2016
comment
Что, список идентификаторов значительно увеличивается? Вы сталкивались с такой ситуацией? - person Ayman; 26.10.2018