2014-10-07 99 views
0

我想把弹簧安全性放在数据库对象级别上,我知道spring为此提供了解决方案,我可以创建四个表,然后我必须将我的数据映射到这些表。这是额外的开销因为表的大小随着实际数据的增长而增长。java数据库对象级别安全

java中是否还有其他解决方案或框架?

基本上我想要把每一个数据库查询特定的过滤器一样

如果我有以下作用:

联系

教师

学生

现在,如果我要去为用户提取主题,那么我不得不提出以下限制:

联系:无过滤

老师:这是他教

学生科目:科目,他读

这些过滤器应在主题表解雇每次查询都可以应用。

回答

1

Spring安全性ACL完全符合您的需求。这不是最简单的部分,但它非常强大。配置完成后,只需简单地添加注释,即可在方法级别(通常位于UI和数据库之间的服务层)添加安全性。

我的建议是:

  • 第一准备春季安全性,而ACL,但有一个数据库存储
  • 阅读文档的访问控制列表部分
  • 添加相关的表到你的数据库并进行初始化用手
  • 再次读取文档和测试

您也可以在http://krams915.blogspot.fr/2011/01/spring-security-3-full-acl-tutorial.html找到教程,但我从未使用它。

+0

是春天的安全性ACL是正确的事情,但认为有两个问题是: 1.我要地图ACL数据库中的所有我的数据库表 2. ACL数据库大小将随着实际数据的大小增长。 – 2014-10-07 09:41:12

+0

对于第1点:您必须在ACL表中引用相关实体表(您想要为其添加安全性的表) - 您自己的表不会更改。第2点:这是真的,但除非许多用户访问许多实体,否则ACL基础的大小通常远低于业务大小。但你是真实的:这是一个很好的工具,而不是用于任何用例的**工具。 – 2014-10-07 10:09:49

+0

感谢您的输入 – 2014-10-07 10:45:47