Apache Wicket 9.1 CSRF启用,FormTester提交被资源隔离策略阻止



我刚刚通过在WicketApplication中设置以下行作为文档指南,在Wicket9.1应用程序中启用了CSRF:

getRequestCycleListeners().add(new ResourceIsolationRequestCycleListener());

保护本身似乎是有效的,但它正在破坏我们的UI测试。当通过FormTester提交表单时(参见下面的示例(,我得到一个异常";该请求被资源隔离策略"阻止";。

WicketApplication app = new WicketApplication(someparams);
WicketTester tester = new WicketTester(app);
FormTester form = tester.newFormTester("form");
...
form.submit();

我需要在WicketTester或FormTester中添加一些配置吗?我在Wicket 9.1文档中没有看到任何与测试程序和CSRF相关的内容。

在提交或点击测试中的链接之前,您应该添加一个适当的请求标头,这样CSRF保护将通过模拟请求:

tester.addRequestHeader(SEC_FETCH_SITE_HEADER, SAME_SITE);
form.submit();

上面剪切中使用的两个常量是类FetchMetadataResourceIsolationPolicy中的静态字段。我将在用户指南中添加一段内容来提供这些信息。

最新更新