【发布时间】:2014-12-11 09:26:05
【问题描述】:
我正在关注 Spring Security 参考,并且我已经重定向到自定义登录页面,如section 3.3 中所述。但是,我不确定如何在 Mustache 中获取 CSRF 令牌(所有示例都使用 JSP)。我已经尝试过一些像这样天真的事情......
{{#_csrf}}
<input type="hidden" name="{{parameterName}}" value="{{token}}"/>
{{/_csrf}}
...还有这个...
{{#CsrfToken}}
<input type="hidden" name="{{parameterName}}" value="{{token}}"/>
{{/CsrfToken}}
...但是它们不起作用(而且我真的没想到它们会起作用)。如何在 Mustache 中获取 CSRF 令牌?
我也想知道:我在哪里可以在我的代码中设置断点,以查看 Spring Security 将什么作为模型发送到我的自定义登录视图?)
【问题讨论】:
-
Spring Security 不发送模型;这就是 Spring MVC
DispatcherServlet。如果您要使用没有开箱即用集成的模板引擎(例如 Mustache),则需要在控制器中查找 CSRF 令牌并自己将其添加到模型中。跨度> -
@chrylis - 你说对了;谢谢你的帮助。我在
@RequestMapping处理程序方法中添加了一个HttpServletRequest参数,并从“_csrf”属性中获得了CsrfToken的一个实例。如果您添加答案,我会接受。 -
像这样:CsrfToken token = (CsrfToken) httpServletRequest.getAttribute("_csrf"); model.addAttribute("token", token.getToken()); stackoverflow.com/questions/20862299/…
标签: java spring-mvc spring-security mustache