spring MVC中的CSRF(跨站点请求伪造)保护

我对spring的CSRF(跨站点请求伪造)保护不感到困惑。不,我有我的jsp,控制器和Web服务。我想做的是在Web服务级别上验证令牌,如果令牌匹配,则运行Web服务(在我的情况下,执行db

insert)

    <form:input type="text" class="form-control" path="mName" />

<input type="hidden" name="${_csrf.parameterName}"

value="${_csrf.token}" />

<div class="form-action">

<input type="submit" value="Save" class="btn btn-primary" />

</div>

</form:form>

我也插入了隐藏标签。现在我该怎么做才能验证此令牌。我在那儿迷路了。

在控制器类中,我将值从表单获取到对象,然后调用Web服务来保存数据

@RequestMapping(method = RequestMethod.POST)

public String processForm(@ModelAttribute(value = "userForm") @Valid UserForm userForm, BindingResult result, ModelMap model) {

//call the web service

}

回答:

显然我正在使用spring security 。在这里,您可以手动执行此操作。然后我将其更改为

,然后只需要使用

<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />

参考此链接以查看Spring Security 3.2的新增功能

http://docs.spring.io/spring-

security/site/docs/3.2.0.RELEASE/reference/htmlsingle/#new

注意,当您从3.1.4.RELEASE更改为3.2.2.RELEASE时,会有很多令人困惑的重构。特别是在 和 文件中

以上是 spring MVC中的CSRF(跨站点请求伪造)保护 的全部内容, 来源链接: utcz.com/qa/425685.html

回到顶部