public boolean applyFilterToExternalHeaders(String s, Object o, Exchange exchange) { for (HeaderFilterStrategy strategy : strategies) { if (strategy.applyFilterToExternalHeaders(s, o, exchange)) { return true; } } return false; }
private boolean shouldBeFiltered(Map.Entry<String, Object> entry, Exchange exchange, HeaderFilterStrategy headerFilterStrategy) { return !headerFilterStrategy.applyFilterToExternalHeaders(entry.getKey(), entry.getValue(), exchange); }
@SuppressWarnings("unchecked") protected void copyProtocolHeader(org.apache.cxf.message.Message cxfMessage, Message camelMessage, Exchange camelExchange) { Map<String, List<String>> headers = (Map<String, List<String>>)cxfMessage.get(org.apache.cxf.message.Message.PROTOCOL_HEADERS); for (Map.Entry<String, List<String>>entry : headers.entrySet()) { // just make sure the first String element is not null if (headerFilterStrategy.applyFilterToExternalHeaders(entry.getKey(), entry.getValue(), camelExchange) || entry.getValue().isEmpty()) { LOG.trace("Drop CXF message protocol header: {}={}", entry.getKey(), entry.getValue()); } else { // just put the first String element, as the complex one is filtered camelMessage.setHeader(entry.getKey(), entry.getValue().get(0)); } continue; } }
public void handleResponse(HttpResponse httpResponse, HttpContext httpContext) throws IOException { if (LOG.isDebugEnabled()) { LOG.debug("Handle response"); } httpContext.setAttribute(RESPONSE_RECEIVED, Boolean.TRUE); Exchange e = (Exchange) httpContext.getAttribute(Exchange.class.getName()); e.getOut().setBody(httpResponse.getEntity()); HeaderFilterStrategy strategy = getEndpoint().getHeaderFilterStrategy(); for (Iterator it = httpResponse.headerIterator(); it.hasNext();) { Header h = (Header) it.next(); if (strategy != null && !strategy.applyFilterToExternalHeaders(h.getName(), h.getValue())) { e.getOut().setHeader(h.getName(), h.getValue()); } } e.getOut().setHeader(HTTP_RESPONSE_CODE, httpResponse.getStatusLine().getStatusCode()); AsyncCallback callback = (AsyncCallback) e.removeProperty(AsyncCallback.class.getName()); callback.done(false); }
protected void populateRequestParameters(HttpServletRequest request, HttpMessage message) throws Exception { //we populate the http request parameters without checking the request method Map<String, Object> headers = message.getHeaders(); Enumeration<?> names = request.getParameterNames(); while (names.hasMoreElements()) { String name = (String)names.nextElement(); // there may be multiple values for the same name String[] values = request.getParameterValues(name); LOG.trace("HTTP parameter {} = {}", name, values); if (values != null) { for (String value : values) { if (headerFilterStrategy != null && !headerFilterStrategy.applyFilterToExternalHeaders(name, value, message.getExchange())) { HttpHelper.appendHeader(headers, name, value); } } } } }
String value = URLDecoder.decode(pair[1], charset); if (headerFilterStrategy != null && !headerFilterStrategy.applyFilterToExternalHeaders(name, value, message.getExchange())) { HttpHelper.appendHeader(headers, name, value);
protected void readHeaders(HttpServletRequest request, HttpMessage message) { LOG.trace("readHeaders {}", request); Map<String, Object> headers = message.getHeaders(); //apply the headerFilterStrategy Enumeration<?> names = request.getHeaderNames(); while (names.hasMoreElements()) { String name = (String)names.nextElement(); String value = request.getHeader(name); // use http helper to extract parameter value as it may contain multiple values Object extracted = HttpHelper.extractHttpParameterValue(value); // mapping the content-type if (name.toLowerCase().equals("content-type")) { name = Exchange.CONTENT_TYPE; } if (headerFilterStrategy != null && !headerFilterStrategy.applyFilterToExternalHeaders(name, extracted, message.getExchange())) { HttpHelper.appendHeader(headers, name, extracted); } } if (request.getCharacterEncoding() != null) { headers.put(Exchange.HTTP_CHARACTER_ENCODING, request.getCharacterEncoding()); message.getExchange().setProperty(Exchange.CHARSET_NAME, request.getCharacterEncoding()); } try { populateRequestParameters(request, message); } catch (Exception e) { throw new RuntimeCamelException("Cannot read request parameters due " + e.getMessage(), e); } }
if (!headerFilterStrategy.applyFilterToExternalHeaders(entry.getKey(), entry.getValue(), exchange)) { Object value = cxfMessage.get(key); if (value != null) { if (!headerFilterStrategy.applyFilterToExternalHeaders(key, value, exchange)) { camelHeaders.put(key, value); LOG.trace("Populate header from CXF header={} value={}", key, value); if (!headerFilterStrategy.applyFilterToExternalHeaders(SoapBindingConstants.SOAP_ACTION, soapAction, exchange)) { camelHeaders.put(SoapBindingConstants.SOAP_ACTION, soapAction); LOG.trace("Populate header from CXF header={} value={}", SoapBindingConstants.SOAP_ACTION, soapAction);
protected void readResponseHeaders(GHttpEndpoint endpoint, Exchange exchange, HTTPResponse response) { HeaderFilterStrategy strategy = endpoint.getHeaderFilterStrategy(); Message in = exchange.getIn(); Message out = exchange.getOut(); out.setHeaders(in.getHeaders()); out.setHeader(Exchange.HTTP_RESPONSE_CODE, response.getResponseCode()); String contentType = getResponseHeader("Content-Type", response); if (contentType != null) { out.setHeader(Exchange.CONTENT_TYPE, contentType); } for (HTTPHeader header : response.getHeaders()) { String name = header.getName(); String value = header.getValue(); if (strategy != null && !strategy.applyFilterToExternalHeaders(name, value, exchange)) { out.setHeader(name, value); } } }
@Override public void populateCamelHeaders(HttpResponse response, Map<String, Object> headers, Exchange exchange, NettyHttpConfiguration configuration) throws Exception { LOG.trace("populateCamelHeaders: {}", response); headers.put(Exchange.HTTP_RESPONSE_CODE, response.getStatus().getCode()); headers.put(Exchange.HTTP_RESPONSE_TEXT, response.getStatus().getReasonPhrase()); for (String name : response.headers().names()) { // mapping the content-type if (name.toLowerCase().equals("content-type")) { name = Exchange.CONTENT_TYPE; } // add the headers one by one, and use the header filter strategy List<String> values = response.headers().getAll(name); Iterator<?> it = ObjectHelper.createIterator(values); while (it.hasNext()) { Object extracted = it.next(); LOG.trace("HTTP-header: {}", extracted); if (headerFilterStrategy != null && !headerFilterStrategy.applyFilterToExternalHeaders(name, extracted, exchange)) { NettyHttpHelper.appendHeader(headers, name, extracted); } } } }
if (!headerFilterStrategy.applyFilterToExternalHeaders(Client.RESPONSE_CONTEXT, responseContext, camelExchange)) { camelExchange.getOut().setHeader(Client.RESPONSE_CONTEXT, responseContext);
&& !headerFilterStrategy.applyFilterToExternalHeaders(Exchange.AUTHENTICATION, "Basic", exchange)) { UndertowHelper.appendHeader(headersMap, Exchange.AUTHENTICATION, "Basic"); LOG.trace("HTTP-header: {}", value); if (headerFilterStrategy != null && !headerFilterStrategy.applyFilterToExternalHeaders(name.toString(), value, exchange)) { UndertowHelper.appendHeader(headersMap, name.toString(), value);
if (!getHeaderFilterStrategy().applyFilterToExternalHeaders( entry.getKey(), entry.getValue(), exchange)) { if (!getHeaderFilterStrategy().applyFilterToExternalHeaders( entry.getKey(), entry.getValue(), exchange)) {
&& !headerFilterStrategy.applyFilterToExternalHeaders(Exchange.AUTHENTICATION, "Basic", exchange)) { UndertowHelper.appendHeader(headersMap, Exchange.AUTHENTICATION, "Basic"); LOG.trace("HTTP-header: {}", value); if (headerFilterStrategy != null && !headerFilterStrategy.applyFilterToExternalHeaders(name.toString(), value, exchange)) { UndertowHelper.appendHeader(headersMap, name.toString(), value); LOG.trace("URI-Parameter: {}", value); if (headerFilterStrategy != null && !headerFilterStrategy.applyFilterToExternalHeaders(name, value, exchange)) { UndertowHelper.appendHeader(headersMap, name, value);
Object value = JmsMessageHelper.getProperty(jmsMessage, name); if (headerFilterStrategy != null && headerFilterStrategy.applyFilterToExternalHeaders(name, value, exchange)) { continue;
if (strategy != null && !strategy.applyFilterToExternalHeaders(name, value, exchange)) { message.setHeader(name, value);
&& !getHeaderFilterStrategy().applyFilterToExternalHeaders(name, value, message.getExchange())) { HttpHelper.appendHeader(headers, name, value); for (String value : values) { if (getHeaderFilterStrategy() != null && !getHeaderFilterStrategy().applyFilterToExternalHeaders(name, value, message.getExchange())) { HttpHelper.appendHeader(headers, name, value);
if (strategy != null && !strategy.applyFilterToExternalHeaders(name, extracted, exchange)) { HttpHelper.appendHeader(answer.getHeaders(), name, extracted);
if (headerFilterStrategy != null && !headerFilterStrategy.applyFilterToExternalHeaders(header.getName(), value, exchange)) { CollectionHelper.appendValue(answer, header.getName(), value);
body.put(key, attachment.getDataHandler()); } else if (headerFilterStrategy != null && !headerFilterStrategy.applyFilterToExternalHeaders(key, value.getValue(), exchange)) { UndertowHelper.appendHeader(result.getHeaders(), key, value.getValue()); UndertowHelper.appendHeader(body, key, value.getValue());