2

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

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

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

4

1 回答 1

2

使用 Spring 的角色来保护 Web 表示和 Web 服务调用,同时使用 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 可能会在未来引入安全漏洞。

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

于 2010-06-01T02:37:24.530 回答