2010-06-01 108 views
3

我有一个3层应用程序,要求将安全授权放置在各种域对象上。春季安全 - 是角色和ACL安全矫枉过正?

无论我使用Spring的ACL实现还是自行推出,似乎基于ACL的安全性只能用于授权(服务)方法,并且不能用于授权URL或Web服务调用。我认为这是因为Web服务调用如何在ACL消减XML负载之前检查ACL?此外,Spring文档中的所有Web访问安全性示例都基于Role来保护URL。

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

回答

3

它是典型的使用Spring的角色 安全的网络演示和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可能会在未来引入安全漏洞。

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

+0

太棒了 - 谢谢。 – HDave 2010-06-02 04:54:42