Spring Security ACL的性能

时间:2012-01-27 17:18:26

标签: java performance spring-security

我目前正在测试Spring Security的访问控制列表,在阅读了关键概念之后,引起了我的注意:有一个表(ACL_ENTRY)存储每个域对象实例的个别权限。 principal(假设principal可以访问该实例)。在具有大量用户和大量域对象的大型系统上,我们可以很容易地想象该表中将有大量记录,这些记录很可能经常被查询(当一个域对象的实例被加载,创建,更新时)等)。
现在考虑到这一点,我想知道表演会如何受到影响。有没有人有这方面的经验?有什么反馈吗?

2 个答案:

答案 0 :(得分:1)

我实际上刚刚在近乎实时的应用程序上完成了类似的功能。 如果您缓存ACL条目以及检索它们的查询结果(比如每小时只查询一次),它会得到显着改善。这里的瓶颈将是你如何检索权限而不是实际的授权逻辑。虽然授权逻辑会对课程产生影响,但如果你处理内存对象,即使对于实时应用也应该是可接受的。

答案 1 :(得分:1)

您可能想查看Apache Shiro如何处理permissions - Shiro有很多扩展实现