gpt4 book ai didi

java - Spring Security 4 JTwig 将 CSRF token 放入表单中

转载 作者:行者123 更新时间:2023-12-02 03:04:26 27 4
gpt4 key购买 nike

如何使用 JTwig 将 CSRF token 放入表单中?

我试过this扩展,但它不起作用(显示有关 {% csrf %} 没有结束 block 的错误)。我还尝试将 HttpServletRequest 对象放入模型中,然后使用 this 获取 token 片段,但根本没有任何效果。

即使没有模板引擎,是否有一些通用的方法来实现 csrf-token?

最佳答案

以下代码对我有用:

我创建了一个名为 ControllerSetup 的类(或者您可以将其命名为任何您想要的名称),并将其放置在与我的 Application 类相同的文件夹中(带有 public static void main () 方法)。代码如下:

package some.pkg.of.myapp;

import javax.servlet.http.HttpServletRequest;

import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ModelAttribute;

@ControllerAdvice
public class ControllerSetup {

@ModelAttribute
public void initModel(HttpServletRequest request, Model model) {
model.addAttribute("_csrf", request.getAttribute("_csrf"));
}

}

现在,我的任何 Controller 中的任何模型都会自动具有一个名为 _csrf 的属性。我将在我的 JTwig 表单中使用它,如下所示:

<form method="post" action="/some/action/url">
<!-- My fields and buttons here -->

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

关于java - Spring Security 4 JTwig 将 CSRF token 放入表单中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41950929/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com