我正在阅读有关 Spring Security 的信息,想知道是否可以将 Spring ACL 与休眠和分页一起使用。生成的 SQL 肯定很吓人,但可以自动生成。如果数据库支持递归查询评估,甚至可以使用分层 ACL。
使用后过滤器不是解决方案,因为它会破坏分页,并且与数据库内的 ACL 过滤相比是不必要的开销。
所以我实际上有构建解决方案的部分。我想知道是否有人已经这样做了。
链接:
我正在阅读有关 Spring Security 的信息,想知道是否可以将 Spring ACL 与休眠和分页一起使用。生成的 SQL 肯定很吓人,但可以自动生成。如果数据库支持递归查询评估,甚至可以使用分层 ACL。
使用后过滤器不是解决方案,因为它会破坏分页,并且与数据库内的 ACL 过滤相比是不必要的开销。
所以我实际上有构建解决方案的部分。我想知道是否有人已经这样做了。
链接:
我处理此问题的方法首先是通过我在此处提供的解决方案获取我的用户可以访问的 ID 列表。
然后,我使用这个 ID 列表对该列表进行查询 IN。
是的,您的挑战有解决方案。该字段称为动态数据屏蔽和动态数据过滤。
这个想法是您将在您的应用程序和数据库之间有一个代理。代理将应用过滤,以便仅将相关的授权数据返回到应用程序,从而保持分页不变。
看一下: