首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring安全全局方法安全定位

Spring安全全局方法安全定位
EN

Stack Overflow用户
提问于 2011-10-12 09:59:38
回答 1查看 800关注 0票数 2

我在主webappcontext配置文件中定义了特性。此文件还包含扫描除控制器类以外的所有包的元素。一个单独的dispatcher-servlet上下文文件扫描控制器包。如果我在为请求服务的控制器方法上应用方法级安全性,它就不起作用了。只有当我在dispatcher-servlet中明确提到该元素时,它才能工作。

从我之前在这个论坛上提出的问题中,我了解到dispatcher-servlet上下文是主webapp上下文的子环境。在这种情况下,dispatcher-servlet应该从父元素中提取该元素,对吗?

EN

回答 1

Stack Overflow用户

发布于 2012-07-05 15:31:12

参见弹簧安全常见问题 (强调我的)。如果将切入点应用于服务层,则只需在应用程序的安全上下文中设置<global-method-security>

在Spring应用程序中,持有dispatcher servlet的Spring的应用程序上下文通常与主应用程序上下文分离。它通常在名为myapp-servlet.xml的文件中定义,其中“myapp”是分配给web.xml中的Spring web.xml的名称。一个应用程序可以有多个DispatcherServlets,每个都有自己的独立应用程序上下文。这些“子”上下文中的bean对于应用程序的其余部分是不可见的。“父”应用程序上下文由您在ContextLoaderListener中定义的web.xml加载,并且对所有子上下文都是可见的。此父上下文通常是定义安全配置(包括元素)的地方。因此,应用于这些web中的方法的任何安全约束都不会被强制执行,因为不能从DispatcherServlet上下文中看到bean。您需要将声明移动到web上下文中,或者将希望保护的bean移动到主应用程序上下文中。 通常建议在服务层应用方法安全性,而不是在单个web控制器上应用方法安全性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7738300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档