我们已经实现了一个Web应用程序,并使用spring的pre-post-annotations来保护对某些权限的访问。
目前很简单。我们有公司。您可以拥有公司的读/写/管理员权限。
public class Company {
@Id
private Long id;
private String name;
}
所以我们有数据库表user,company,当然还有spring安全表acl_class,acl_entry,acl_object_identity和acl_sid。
现在公司有一些特殊实体,假设这是雇员。
public class Employee {
@Id
private Long id;
private String name;
private Company company;
}
一家公司可以拥有许多员工,一名员工只能在一家公司工作。
现在并非每个用户都可以对员工进行读/权访问。用户必须拥有公司的读/写/管理员权限,并且必须具有读/写/管理员工的特殊权利。因此,用户可以拥有对公司X的写入权限,但甚至不能读取对公司X员工的访问权限。 用户可能只具有对Y公司的读取权限,并且可以对Y公司的所有员工进行写访问。
对特定员工不应有进一步的限制。只是一家公司的所有员工。
我实际上不想为每个员工动态管理所有acl对象,但是要更加动态。我正在考虑类似“权限标志”的东西,扩展公司许可的基本权限。 你知道如何解决这个最优雅和最简单的问题吗?
我没有在spring安全文档中找到一个好例子。这是一种不好的做法吗?
非常感谢你的帮助: - )