我使用Quarkus 2.13
和Camel 3.18
。我设置了rest endpoint,它按预期工作:
restConfiguration()
.component("platform-http")
.skipBindingOnErrorCode(false)
.bindingMode(RestBindingMode.json);
字符串
我确实写了ContainerResponseFilter
来修改传出响应的头,但是响应不是通过这个过滤器处理的:
@JBossLog
@Provider
public class CustomContainerResponseFilter implements ContainerResponseFilter {
@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
throws IOException {
responseContext.getHeaders().add("X-Some-Header", "Hello from Response Filter");
// I want to filter out disallowed-headers
}
}
型
过滤器在标准控制器中工作正常,但在platform-http
中使用Camel Endpoint时,无法通过ContainerResponseFilter
处理响应。
@Path("/hello")
public class HelloController {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String sayHello() {
return "Hello, Quarkus!";
}
}
型
更新:
我的目标是过滤掉disallowed-headers
。为此,我创建了我的列表,只想删除不在列表中的标题。
1条答案
按热度按时间jgzswidk1#
如果你想设置一个自定义的响应头,那么你可以在你的Camel路由中完成。
字符串
另外,由于
platform-http
构建在Vert.xWeb上,因此可以使用quarkus-reactive-routes
拦截请求并向响应添加自定义头。型
更多信息可以在这里找到:
https://quarkus.io/guides/reactive-routes#intercepting-http-requests