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 4 ACL - 用户创建和数据库配置