I am currently using a customer handler wrapping the proxy handler. I want to set some response headers from my handler, but if they exist in the response from the proxy's backend, they are overridden. Example code:

  .addHttpListener(8080, "localhost")
  .setHandler(new MyHandler(new ProxyHandler(proxy, 30000, ResponseCodeHandler.HANDLE_404))).build();

class MyHandler extends HttpHandler {
  private static final HttpString ACCESS_CONTROL_EXPOSE_HEADERS = new HttpString("Access-Control-Expose-Headers");
  private HTTPHandler next;
  public MyHandler(HttpHandler next) {
    this.next = next;
  public  void handleRequest(HttpServerExchange exchange) throws Exception {
    exchange.getResponseHeaders().put(ACCESS_CONTROL_EXPOSE_HEADERS, "new ACEH");

The problem here is that the backend server responds with an Access-Control-Expose-Headers header and that replaces the one I set in MyHandler.

Is there any way I can change headers after proxy has received the response from backend and before it starts sending the response to the client?