永远不会调用RequestDataValueProcessor方法

时间:2013-07-25 22:32:51

标签: spring spring-mvc

首先,这是对Spring MVC 3.1.x http://blog.eyallupu.com/2012/04/csrf-defense-in-spring-mvc-31.html的引用,我试图实现RequestDataValueProcessor并添加了一个

<bean name="requestDataValueProcessor" class="my.class"/>

到我的servlet的上下文文件。

我可以从启动的调试输出中看到创建了bean,但是没有调用任何方法,所呈现的页面上的表单不包含特殊的隐藏值,当然,HandlerInterceptor看到并为所有POST尝试返回403。

我确信3.1.4版春季罐子是我战争中的东西。仅仅创建一个具有给定名称的bean似乎非常......神奇。我错过了还需要做什么?

2 个答案:

答案 0 :(得分:1)

没关系。

由于瞬态依赖性问题,Maven拖延了Spring的3.0.x依赖项。强制大规模的Spring 3.0排除修复了这个问题。

答案 1 :(得分:1)

可能对其他人有用,但bean名称在源代码中是硬编码的( RequestContext ),因此您应该只使用 requestDataValueProcessor 作为bean名称。例如,您正在使用Spring security&gt; 3.2然后:

<bean name="requestDataValueProcessor" class="org.springframework.security.web.servlet.support.csrf.CsrfRequestDataValueProcessor"/>