【问题标题】:difference between user schema and acl schema in spring security?spring security中用户模式和acl模式之间的区别?
【发布时间】:2012-12-15 11:16:20
【问题描述】:

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

【问题讨论】:

  • “模式”是什么意思?什么是用户架构?
  • 这是 Spring Security 中使用数据库的模式。这是一个参考:springinpractice.com/2010/07/06/…
  • 你能先描述一下你的应用吗?
  • 我有一个应用程序,它有它的用户。我想知道哪一个更适合我:ACL 架构还是用户架构?这些用户应该拥有执行任务的权限。例如,一个角色必须发布一个文档,另一个角色必须批准该文档,而另一个角色必须对该文档执行其他操作。

标签: authentication spring-security authorization acl


【解决方案1】:

您不能在没有用户模式的情况下使用 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 模式。

【讨论】:

    猜你喜欢
    • 2014-09-16
    • 2023-03-17
    • 1970-01-01
    • 2019-02-12
    • 2013-05-01
    • 2021-08-02
    • 2019-11-02
    • 2010-11-28
    • 2017-04-11
    相关资源
    最近更新 更多