У меня довольно сложный механизм безопасности, который я реализовал с помощью Apache Shiro (ранее JSecurity). Чтобы узнать точные правила видимости для объекта, мне нужно запустить некоторый код (т. Е. Роли пользователя, разрешения, группы и т. Д.). Я хотел бы запускать запросы, которые сообщают мне объекты, которые разрешен текущий пользователь.Код запуска в Hibernate Filters
Я обнаружил, что фильтры спящего режима дают вам возможность применять фильтр к вашим объектам/запросам, что, кажется, является тем, что я мог бы использовать здесь.
Однако примеры, которые я нашел, по-видимому, сосредоточены на базе данных (например, у меня есть поле/столбец isVisible, фильтр, когда он установлен в true). Есть ли способ, которым я могу запустить некоторый код в качестве спящего фильтра, или это просто тонкий слой, который добавляет небольшое предложение WHERE ко всем вашим запросам.
Я фактически использую эту внутреннюю инфраструктуру Grails/GORM, поэтому, возможно, есть и другие доступные решения. A plugin exists, который объединяет фильтры спящего режима, но если я не могу использовать его с некоторым кодом для запуска как часть процесса фильтрации спящего режима, это не поможет мне здесь.