我有一个3层应用程序,要求将安全授权放置在各种域对象上.
无论我使用Spring的ACL实现还是自己动手,在我看来,基于ACL的安全性只能用于授权(服务)方法,而不能用于授权URL或Web服务调用.我认为这是因为Web服务调用如何在将XML有效负载充水之前检查ACL?另外,Spring文档中有关Web访问安全性的所有示例都基于URL来保护URL.
使用Spring的角色来保护Web表示和Web服务调用是否安全,同时使用ACL来保护业务方法,这是典型的做法吗?这是过度杀伤力吗?
最佳答案
Is it typical to use Spring’s roles to
secure web presentation and web
service calls,while at the same time
using ACL’s to secure the business
methods?
是.
通过将请求映射和安全注释结合起来,可以在您的控制器中轻松完成此操作:
@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)添加安全的批注将完成安全性设计.
Is this overkill?
这取决于您的应用程序.至少应保护控制器.不保护您的DAO可能会在将来引入安全漏洞.
我们正在努力为我们的应用程序添加这种类型的安全性.