如何使用 Spring Security、Hibernate 和行级 ACL 进行分页
Posted
技术标签:
【中文标题】如何使用 Spring Security、Hibernate 和行级 ACL 进行分页【英文标题】:How can I paginate with Spring Security, Hibernate and row level ACL 【发布时间】:2013-11-06 09:15:45 【问题描述】:我正在阅读有关 Spring Security 的内容,想知道是否可以将 Spring ACL 与休眠和分页一起使用。生成的 SQL 肯定很吓人,但可以自动生成。如果数据库支持recursive query evaluation,甚至是possible to use hierarchical ACL。
使用后过滤器不是解决方案,因为它会破坏分页,并且与数据库内的 ACL 过滤相比是不必要的开销。
所以我实际上有构建解决方案的部分。我想知道是否有人已经这样做了。
链接:
Similar question 从 2012 年开始没有回应 link list about this question【问题讨论】:
【参考方案1】:是的,您的挑战有解决方案。该字段称为动态数据屏蔽和动态数据过滤。
我们的想法是在应用程序和数据库之间有一个代理。代理将应用过滤,以便仅将相关的授权数据返回到应用程序,从而保持分页不变。
看看:
GreenSQL 公理数据访问过滤器 MD (demo)【讨论】:
【参考方案2】:我处理这个问题的方法是首先通过solution I gave here 获取我的用户可以访问的 ID 列表。
然后,我使用此 ID 列表对该列表进行查询 IN。
【讨论】:
什么是ID列表显着增长?你遇到过这样的情况吗?以上是关于如何使用 Spring Security、Hibernate 和行级 ACL 进行分页的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Spring-Security 3 和 Hibernate 4 将 spring security xml 配置 hibernate 转换为 java config
如何使用 Spring-Boot 播种 Spring-Security
如何使用 Spring Security 管理 Spring Boot 中的会话?