java数据库对象级安全性

时间:2014-10-07 05:00:29

标签: java database spring hibernate

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

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

基本上我想在每个数据库查询上加上某些过滤器,比如

如果我有以下角色:

管理

教师

学生

现在,如果我要为用户提取主题,那么我必须遵守以下限制:

管理员:没有过滤器

老师:他教的科目

学生:他读过的科目

这些过滤器应该应用于在主题表中触发的每个查询。

1 个答案:

答案 0 :(得分:1)

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

我的建议是:

  • 首先设置没有acl的spring安全性,但是使用数据库存储
  • 阅读ACL部分的文档
  • 将相关表格添加到您的数据库并手动初始化
  • 再次阅读文档和测试

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