我希望你的帮助能够建立一个非常复杂的安全环境,我想知道我是否只能使用Spring层次结构系统甚至是弹簧ACL ......
我需要构建一个包含许多角色的安全环境,例如:
管理员用户将创建具有动态角色的用户,例如:
用户1具有=组1>公司1> func 1,func 2>方法1 用户2具有=组2>公司1,公司2> func 3>方法1,方法2
这种结构很容易发展到特定的细节,我害怕管理所有这些。
关于如何用弹簧安全解决它的任何想法?
答案 0 :(得分:2)
如果它是真正动态的东西,那么Spring Security ACLs是一个很好的方法。对于每个组,company,func,method等在表ACL_SID中创建授予的权限。
然后为每个用户在ACL_SID中创建一个条目,并将主标志设置为true。
对于要保护的系统中的每个域对象,在ACL_OBJECT_IDENTITY中创建ACL,并通过在ACL_ENTRY中插入行来授予正确的权限。
可以在ACL_ENTRY中插入授予和撤销条目,并且顺序很重要,这意味着可以撤销对第0行中的组的访问权限,并且优先于第1行上的授权。
ACL也可以在层次结构中组合,并且可以设置为从父项继承或不继承。
通常,只要基于角色的访问解决方案不能为给定的用例提供足够的灵活性,就会使用ACL。