【发布时间】:2013-11-19 05:46:43
【问题描述】:
我在我的 java Web 应用程序中使用 Spring Security 和 Hibernate 从数据库中获取数据。我们现在需要根据用户所在的页面和他们拥有的访问级别来限制用户可以检索的结果。即。
对于第一页,管理员可以查看所有内容,管理员可以查看/搜索属性为 A 的所有内容,其中值为 X,站点管理员只能查看/搜索该页面上的所有内容,属性 B 是值 Y。
目前我们使用了一个写得很糟糕的 HQL 函数,它根据传入的用户和位置拼凑一个字符串查询。它是一个非常大的 If...Else if....else...if else 等。
我试图通过使用 Hibernate FullTextFilter 注释以更加程序化的方式来解决这个问题。但是,我需要通过一个主键的属性在 join table 上进行搜索,我认为这不太好。
根据不同的权限从数据库中获取项目的最佳做法/推荐方法是什么?
【问题讨论】:
-
您是否针对当时遇到的这个问题提出了适当的解决方案?我面临着同样的问题,除了用你在问题中描述的 if 语句硬编码“where”子句之外,找不到其他方法。
-
抱歉这是很久以前的事了,我不记得了。
标签: hibernate security permissions lucene spring-security