如何在struts中设置X-frame-optionsheader2

How to set X-frame-options header in struts 2

我有申请 struts 2

对于上传文件,我使用 iframe 作为表单提交的目标。

它给了我错误 -

Load denied by X-Frame-Options: http://localhost:8081/finance/uploadFile does not permit framing.

我检查了请求中的X-Frame-Options,结果是DENY

为了允许 X-Frame-Options,我添加了一个这样的拦截器 -

@Override
    public String intercept(ActionInvocation actionInvocation) throws Exception {
    final ActionContext ac = actionInvocation.getInvocationContext();
    HttpServletResponse response = (HttpServletResponse)ac.get(StrutsStatics.HTTP_RESPONSE);
    response.setHeader("X-Frame-Options", "ALLOWALL");
    return actionInvocation.invoke();
    }

但我仍然看到 X-Frame-Options ALLOWALL,DENY

的值

浏览器给我这个错误 -

加载“http://localhost:8081/finance/uploadFile”时遇到

多个具有冲突值 ('ALLOWALL, DENY') 的 'X-Frame-Options' header。回到 'DENY'.

我不明白我正在设置请求 header ALLOWALL 但它从哪里得到 DENY。

有人可以帮助如何正确地做到这一点。

从 Alireza Fattahi 的评论中得到答案。

我也在使用 spring 安全和 struts。 spring 安全性添加了 X-Frame-Options - 默认情况下拒绝。

我在 spring 安全配置中进行了以下更改以更改默认行为。

<sec:headers>
    <sec:frame-options policy="SAMEORIGIN"/>
</sec:headers>

<sec:http> 标签中