В Hibernate вы можете использовать концепцию фильтров, которые применяются прозрачно, а хранилище не знает о них. Вы можете добавить такие фильтры через АОП. Другой способ - перехватить session.createCriteria () и прозрачно добавить ограничения в критерии с помощью AOP.
тоящее время я оцениваю рамки аутентификации / авторизации.
Apache Shiro, кажется, очень хороший, но яотсутствует безопасность на уровне строк функции.
Например. в базе данных могут быть специальные строки, которые должны быть видны и доступны только пользователям с особыми привилегиями. Чтобы избежать ненужных циклов, мы в настоящее время модифицируем запросы SQL для объединения с нашими данными авторизации, чтобы получить только видимые строки для текущего пользователя.
Но эта концепция не кажется мне «правильной», потому что мысмешивать бизнес-код с кодом, связанным с безопасностью который должен быть ортогональным и независимым друг от друга.
Какие решения доступны / возможны?Как реализовать защиту на уровне строк (особенно в сочетании с jpa)?ОБНОВИТЬ:
Целевая база данных в основном Oracle 10g / 11g
- но решение, независимое от базы данных, было бы предпочтительным, если бы не было больших недостатков