I have to set some http header fields in a Apache CXF client:
I tried it via Interceptor:
public class HttpHeaderInterceptor extends AbstractPhas
Here is a code snippet to copy a custom HTTP header (from the request) on the response in a single CXF out interceptor.
public void handleMessage(SoapMessage message) throws Fault {
// Get request HTTP headers
Map> inHeaders = (Map>) message.getExchange().getInMessage().get(Message.PROTOCOL_HEADERS);
// Get response HTTP headers
Map> outHeaders = (Map>) message.get(Message.PROTOCOL_HEADERS);
if (outHeaders == null) {
outHeaders = new HashMap<>();
message.put(Message.PROTOCOL_HEADERS, outHeaders);
}
// Copy Custom HTTP header on the response
outHeaders.put("myCustomHTTPHeader", inHeaders.get("myCustomHTTPHeader"));
}