在Apache Wicket 9.1中,启用了CSRF保护机制,并且由于资源隔离策略,FormTester的提交可能会被阻止。下面是一个示例代码,演示如何解决这个问题:
首先,您需要在Wicket应用程序的配置文件中启用CSRF保护机制。在您的Application
类中,添加以下代码:
@Override
protected void init() {
super.init();
getSecuritySettings().setCsrfProtectionEnabled(true);
}
接下来,您可以使用以下代码来处理FormTester的提交问题。在提交表单之前,您需要在FormTester中设置CSRF token。以下是一个示例代码片段:
FormTester formTester = tester.newFormTester("formId");
// 设置CSRF token
formTester.set("csrfTokenInputName", "your-csrf-token-value");
// 提交表单
formTester.submit();
在上面的代码中,"formId"
是你的表单的id,"csrfTokenInputName"
是表单中CSRF token的输入字段的名称,"your-csrf-token-value"
是CSRF token的实际值。
通过这种方式,您可以在提交表单之前设置CSRF token,从而解决FormTester的提交被阻止的问题。