Spring安全性对某些实体的附加权利

时间:2015-04-14 11:04:28

标签: java spring spring-security acl

我们已经实现了一个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安全文档中找到一个好例子。这是一种不好的做法吗?

非常感谢你的帮助: - )

0 个答案:

没有答案