package org.vpac.grisu.frontend.control.cxf; import javax.xml.namespace.QName; import org.apache.cxf.binding.soap.SoapMessage; import org.apache.cxf.binding.soap.interceptor.SoapPreProtocolOutInterceptor; import org.apache.cxf.headers.Header; import org.apache.cxf.interceptor.Fault; import org.apache.cxf.jaxb.JAXBDataBinding; import org.vpac.grisu.cxf.MyProxyCredentials; public class ClientAuthInterceptor extends SoapPreProtocolOutInterceptor { private final String username, password, myproxyServer; private final int myproxyPort; public ClientAuthInterceptor(String username, String password, String myproxyServer, int myproxyPort) { super(); this.username = username; this.password = password; this.myproxyServer = myproxyServer; this.myproxyPort = myproxyPort; } @Override public void handleMessage(SoapMessage message) throws Fault { /* * JAXBContext jctx = JAXBContext.newInstance(MyProxyCredentials.class); * JAXBDataBinding binding = new JAXBDataBinding(); binding. */ try { final Header cred = new Header(new QName("", "myProxyCredentials"), new MyProxyCredentials(myproxyServer, myproxyPort + "", username, password), new JAXBDataBinding( MyProxyCredentials.class)); message.getHeaders().add(cred); } catch (final Exception ex) { throw new Fault(ex); } } }