如何在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>
标签中
我有申请 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>
标签中