@Override protected void customizeExchange(HttpExchange exchange, HttpServletRequest request) { exchange.addRequestHeader("TB-Tunnel", this.app.getServerIP()); exchange.addRequestHeader( "TB-Credentials", this.app.getClientKey() + "_" + this.app.getClientSecret()); exchange.addRequestHeader("TB-Tunnel-Version", this.app.getVersion()); if (this.app.isBypassingSquid()) { exchange.addRequestHeader("TB-Tunnel-Port", "2010"); } for (String key : app.getCustomHeaders().keySet()) { exchange.addRequestHeader(key, app.getCustomHeaders().get(key)); } Logger.getLogger(ForwarderServlet.class.getName()) .log( Level.INFO, " >> [{0}] {1}", new Object[] {request.getMethod(), request.getRequestURL()}); if (app.isDebugMode()) { Enumeration<String> headerNames = request.getHeaderNames(); if (headerNames != null) { StringBuilder sb = new StringBuilder(); String header; while (headerNames.hasMoreElements()) { header = headerNames.nextElement(); sb.append(header) .append(": ") .append(request.getHeader(header)) .append(System.getProperty("line.separator")); } Logger.getLogger(ForwarderServlet.class.getName()).log(Level.INFO, sb.toString()); } } }