【问题标题】: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 来保护业务方法吗?这是不是矫枉过正?
【问题讨论】:
标签:
oracle
security
spring
role
【解决方案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 可能会在未来引入安全漏洞。
我们正在努力为我们的应用程序添加这种类型的安全性。