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