/** * Updates the request method based on specific header. * * @param request * The request to update. */ @SuppressWarnings("unchecked") private void processHeaders(Request request) { final TunnelService tunnelService = getTunnelService(); if (tunnelService.isMethodTunnel()) { // get the headers Series<Header> extraHeaders = (Series<Header>) request .getAttributes().get(HeaderConstants.ATTRIBUTE_HEADERS); if (extraHeaders != null) { // look for the new value of the method final String newMethodValue = extraHeaders.getFirstValue( getTunnelService().getMethodHeader(), true); if (newMethodValue != null && newMethodValue.trim().length() > 0) { // set the current method to the new method request.setMethod(Method.valueOf(newMethodValue)); } } } }