java – Spring-Security 3 / Spring MVC和可怕的@Secured / Req
发布时间:2020-12-15 04:52:06 所属栏目:Java 来源:网络整理
导读:我在向控制器添加安全注释时遇到了很多问题. 事实证明让我的Controller实现一个InitializingBean是一个坏主意. public class MyController implements InitializingBean { @Secured(value="ROLE_ADMIN") @RequestMapping(method = RequestMethod.GET,value =
我在向控制器添加安全注释时遇到了很多问题.
事实证明让我的Controller实现一个InitializingBean是一个坏主意. public class MyController implements InitializingBean { @Secured(value="ROLE_ADMIN") @RequestMapping(method = RequestMethod.GET,value = "/{id}/edit") public String getView(Model model,@PathVariable("id") long id) { return "some view"; } } 这失败了:
删除@Secured Annotation会起作用,但显然我不想这样做. public class MyController{ @Secured(value="ROLE_ADMIN") @RequestMapping(method = RequestMethod.GET,@PathVariable("id") long id) { return "some view"; } } 任何人都可以帮我理解这种行为吗? 解决方法
发生这种情况是因为使用JDK动态代理应用安全方面时会丢失对注释的访问,这在默认情况下会在建议的bean实现任何接口时发生.
要解决此问题,您应该告诉Spring Security仅使用< global-method-security proxy-target-class =“true”...>来应用基于目标类的代理. …(< aop:config proxy-target-class =“true”/>也适用). 有关AOP代理here的更多信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |