我参考了Spring Security的参考资料,我已经获得了一个自定义登录页面的重定向,如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将什么作为模型发送到我的自定义登录视图?)
3条答案
按热度按时间lhcgjxsq1#
将此添加到您的
application.properties
:然后,您可以访问模板中的
_csrf
请求属性。ou6hu8tu2#
我不确定这是哪个版本提供的,但是您可以在控制器方法上为
CsrfToken
添加一个参数,以获取要传递到模型中的令牌,如下所示:您不必使用
HttpServletRequest
,现在可以使用第一个模板。如果以上对于每个控制器方法来说太繁琐,我们可以注册一个拦截器。
拦截器:
豆子:
在WebMvcConfigurer中添加拦截器:
jjhzyzn03#
将其添加到您的application.properties:
然后,您可以访问模板中的
_csrf
请求属性。在Sping Boot 2.7.0版中,属性已从
spring.mustache.expose-request-attributes
重命名。版本:https://github.com/spring-projects/spring-boot/issues/28858