Grizzly HttpServer:为每个响应设置永久 header

Grizzly HttpServer: Set permanent header for every response

我正在使用 Grizzly HttpServer,我想在每个响应中添加一个特定的 header。具体来说,我想通过添加 'Access-Control-Allow-Origin' header 来避免 CORS 问题。

所以,理想情况下,我想要这样的东西:

HttpServer server = GrizzlyServerFactory.createHttpServer(uri, crc);
server.setHeader("Access-Control-Allow-Origin" , "*");

一般来说,我正在寻找一种不需要我必须在每个 request-response 操作中手动插入此 header 的解决方案。

有什么办法吗?

正如@alexey 所说,(从当前的 Grizzly Server 版本)没有办法做到这一点。如果有人发现其他有用的东西,我很乐意将其确认为可接受的答案。

效果很好的最佳替代方法是扩展 'ContainerResponseFilter' class 并覆盖 'filter' 方法。

这是 1.x API

这是 2.x API 的 example(小改动)