Spring安全性中用户架构和acl架构之间的区别?

时间:2012-12-31 08:12:41

标签: authentication spring-security authorization acl

this article中,介绍了关于Spring安全实现的3个模式。我想知道user schemaacl schema之间的区别,哪个更好用,或者换句话说,我想知道每个域的使用情况,以便选择最佳解决方案我的应用程序。

1 个答案:

答案 0 :(得分:2)

如果没有用户架构,则无法使用ACL架构(因为身份验证过程取决于用户架构,通常需要进行身份验证)。您有两种选择:

  • 用户架构
  • 用户架构& ACL架构

让我们看看他们能为您做些什么:

用户架构用于基于角色的身份验证和授权。您可以保护URL或方法调用。使用用户架构,您可以处理以下情况:

  • 具有ADMIN角色的用户可以访问/admin.html。
  • 具有PRODUCT_MANAGER角色的用户可以访问/add_product.html
  • 具有PRODUCT_MANAGER角色的用户可以访问/manage_product.html?id=x。
  • 具有PRODUCT_VIEWER角色的用户可以访问/view_product.html?id=x。

ACL架构用于增强授权。它将考虑实际的域对象。您将能够处理以下情况:

  • 具有PRODUCT_MANAGER角色的用户只有在他是id = 136 的产品的所有者时才能访问/manage_product.html?id=136
  • 某些PRODUCT_MANAGER可以将id = 136的自己的产品管理到另一个PRODUCT_MANAGER。

继续使用用户架构,如果需要,可以添加以后的ACL架构。