在Hibernate Filters中运行代码

时间:2009-11-02 19:06:04

标签: hibernate grails filter shiro jsecurity

我有一个相当复杂的安全机制,我使用Apache Shiro(以前的JSecurity)实现。为了知道对象的确切可见性规则,我需要运行一些代码(即查找用户的角色,权限,组等)。我想运行查询,告诉我当前用户有权查看的对象。

我发现hibernate过滤器使您能够将过滤器应用于对象/查询,这似乎是我在这里可以使用的。

然而,我发现的例子似乎集中在数据库上(即说我有一个字段/列isVisible,只要它被设置为true就会过滤)。有没有办法可以将一些代码作为hibernate过滤器运行,或者它只是一个为所有查询添加一点WHERE子句的瘦层。

我实际上是在Grails / GORM基础架构中使用它,所以也许还有其他一些有效的解决方案。一个plugin exists集成了hibernate过滤器,但除非我可以将它与一些代码一起用作hibernate过滤过程的一部分,否则它在这里对我没有帮助。

1 个答案:

答案 0 :(得分:2)

不幸的是,Hibernate过滤器无法解决您的问题。它们非常有用,但它只是一个薄层,为每个提取添加一个小WHERE子句。

由于您使用的是Grails,您可能会发现AOP会为您提供所需的内容。看看这个:http://www.infoq.com/articles/aop-with-groovy

祝你好运。