Hi On 31/01/12 21:56, Alex Declent wrote:
Hi,in my server setup I use iptables to set the source ip address of my outgoing client requests from a fake ip adresse to the correct one. The remote service requires the domain name (example.com) as http-header host field, and some extra http-header fields. Well, I decided to use an interceptor: public class HttpHeaderInterceptor extends AbstractPhaseInterceptor<Message> { private String userId; private String xAuthorizeRoles; private String host; public HttpHeaderInterceptor() { super(Phase.POST_PROTOCOL); } @Override public void handleMessage(Message message) throws Fault { Map<String, List> headers = (Map<String, List>) message.get(Message.PROTOCOL_HEADERS); try { headers.put("Host", Collections.singletonList(host)); headers.put("USERID", Collections.singletonList(userId)); headers.put("X-AUTHORIZE-roles", Collections.singletonList(xAuthorizeRoles)); } catch (Exception ce) { throw new Fault(ce); } } A tcpdump shows that the header field host doesn’t contains the domain name, but the other fields are set correctly. I tried different phases to add my interceptor into the outgoing chain, without success. Is there a possibility to set the http-header field host, if yes on which phase I have to set it?
Looks like that the custom Host is ignored and is overridden by HttpUrlConnection, given that the other custom headers are set Ok on the wire
Cheers, Sergey
Thanks, Alex
-- Sergey Beryozkin Talend Community Coders http://coders.talend.com/ Blog: http://sberyozkin.blogspot.com
