我需要根据执行搜索的用户的访问控制过滤掉 Hibernate 返回的一些对象。如果可能的话,我想在数据库层做。我正在使用弹簧。
设想
用户 A 在 Employee.class 上搜索 用户 A 得到 10 个结果 用户 A 假设根据访问控制只得到 10 个结果中的 5 个
我想要做的是拦截结果并应用访问控制并删除收到的 10 个结果中的 5 个,并且只向用户 A 显示 5 个
你能帮忙吗。
看看PostFilter
注释。它旨在根据安全决策过滤方法的结果。
如果你没有使用 Spring Security(即使你使用了)Hibernate Filters 是另一种可能的解决方案:
http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/filters.html
http://www.mkyong.com/hibernate/hibernate-data-filter-example-xml-and-annotation/