Spring Security - 角色和 ACL 安全性是不是矫枉过正?

Posted

技术标签:

【中文标题】Spring Security - 角色和 ACL 安全性是不是矫枉过正?【英文标题】:Spring Security - is Role and ACL security overkill?Spring Security - 角色和 ACL 安全性是否矫枉过正? 【发布时间】:2011-02-26 04:14:24 【问题描述】:

我有一个 3 层应用程序,需要对各种域对象进行安全授权。

无论我使用 Spring 的 ACL 实现还是自己实现,在我看来,基于 ACL 的安全性只能用于授权(服务)方法,而不能用于授权 URL 或 Web 服务调用。我认为这是因为 Web 服务调用如何在对 XML 有效负载进行水合之前检查 ACL?此外,Spring 文档中的所有 Web 访问安全示例都是基于角色保护 URL。

通常使用 Spring 的角色来保护 Web 表示和 Web 服务调用,同时使用 ACL 来保护业务方法吗?这是不是矫枉过正?

【问题讨论】:

【参考方案1】:

通常使用 Spring 的角色来 安全的网络演示和网络 服务调用,同时 使用 ACL 保护业务 方法?

是的。

通过结合请求映射和安全注释,这很容易在您的控制器中完成:

@RequestMapping("/some/url")
@Secured( "ROLE_GET_THE_DATA" )
public ModelAndView getTheData(HttpServletRequest request,
                             HttpServletResponse response) throws Exception     
    // get the data
    // return it in your mav

为您的数据访问对象 (DAO) 添加安全注释将完成安全设计。

这是不是矫枉过正?

这取决于您的应用程序。至少你应该保护你的控制器。不保护您的 DAO 可能会在未来引入安全漏洞。

我们正在努力为我们的应用程序添加这种类型的安全性。

【讨论】:

以上是关于Spring Security - 角色和 ACL 安全性是不是矫枉过正?的主要内容,如果未能解决你的问题,请参考以下文章

非所有者时 Spring Security 更新 acl

Spring Security 4 ACL - 用户创建和数据库配置

使用 Spring Security ACL 授予对现有对象身份的权限

spring security acl 不比较按位权限

Spring Security 的 ACL 配置问题

Spring Security Acl 对象