0

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

4

1 回答 1

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 模式。

于 2013-01-02T11:13:48.187 回答