我构建了一个使用"SharedArrayBuffer“(ffmpeg.wasm)的Reactive17.0.2应用程序,该应用程序具有依赖关系。这需要这些响应头按照医生的说法
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp我正在通过Tomcat 10为React应用程序提供服务。我如何修改默认的web.xml以包括这些头呢?
更新1:
我发现了一些我认为可以发送这些头的文档,--我只是不知道在中添加什么来实现这一点。
这个文档说,要启用Tomcat上的CORS,可以使用filter标记。还说,“这个过滤器是W3C的CORS (跨源资源共享)规范的实现”。他们所指的规格包括这两个标题:
解决方案:
由于没有本机方式发送这些响应头,所以我不得不使用这段代码来添加它们。我运行git克隆,确保设置了CATALINA_HOME,运行make.sh,将生成的.jar移到Tomcat中的lib/目录,并将权限与周围的jars匹配。我在web.xml中编写了两个过滤器,并重新启动Tomcat。
<filter>
<filter-name>OpenerPolicyHeaderFilter</filter-name>
<filter-class>StaticHeaders</filter-class>
<init-param>
<param-name>Cross-Origin-Opener-Policy</param-name>
<param-value>same-origin</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>OpenerPolicyHeaderFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>EmbedderPolicyHeaderFiler</filter-name>
<filter-class>StaticHeaders</filter-class>
<init-param>
<param-name>Cross-Origin-Embedder-Policy</param-name>
<param-value>require-corp</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EmbedderPolicyHeaderFiler</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>发布于 2022-03-14 16:36:20
CORS过滤器只处理Access-Control-*头,不处理Cross-Origin-*头。
如果您希望设置Cross-Origin-*头,您必须自己管理,或者向Tomcat项目提交一个拉请求。
https://stackoverflow.com/questions/71432452
复制相似问题