package org.cagrid.gridgrouper.soapclient;
import org.apache.cxf.Bus;
import org.apache.cxf.bus.spring.SpringBusFactory;
import org.apache.cxf.configuration.Configurer;
import org.apache.cxf.configuration.security.KeyManagersType;
import org.apache.cxf.configuration.security.KeyStoreType;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import org.cagrid.gridgrouper.wsrf.service.GridGrouperService;
import org.cagrid.gridgrouper.wsrf.stubs.GridGrouperPortType;
import javax.net.ssl.KeyManager;
import java.io.IOException;
import java.security.GeneralSecurityException;
public class GridGrouperSoapClientFactory {
public static GridGrouperPortType createSoapClient(String url) {
SpringBusFactory bf = new SpringBusFactory();
Bus bus = bf.createBus();
JaxWsProxyFactoryBean cf = new JaxWsProxyFactoryBean();
cf.setAddress(url);
cf.setServiceClass(GridGrouperService.class);
cf.setBus(bus);
GridGrouperPortType gridGrouperPort = cf.create(GridGrouperPortType.class);
return gridGrouperPort;
}
public static GridGrouperPortType createSoapClient(String url,
KeyStoreType truststore, KeyManagersType keyManager)
throws GeneralSecurityException, IOException {
SpringBusFactory bf = new SpringBusFactory();
Bus bus = bf.createBus();
Configurer baseConf = bus.getExtension(Configurer.class);
org.cagrid.core.common.security.SSLConfigurer sslConf = new org.cagrid.core.common.security.SSLConfigurer(baseConf);
sslConf.setTruststore(truststore);
sslConf.setKeystore(keyManager);
bus.setExtension(sslConf, Configurer.class);
JaxWsProxyFactoryBean cf = new JaxWsProxyFactoryBean();
cf.setAddress(url);
cf.setServiceClass(GridGrouperService.class);
cf.setBus(bus);
GridGrouperPortType gridGrouperPort = cf.create(GridGrouperPortType.class);
return gridGrouperPort;
}
public static GridGrouperPortType createSoapClient(String url,
KeyStoreType truststore, KeyManager keyManager)
throws GeneralSecurityException, IOException {
SpringBusFactory bf = new SpringBusFactory();
Bus bus = bf.createBus();
Configurer baseConf = bus.getExtension(Configurer.class);
org.cagrid.core.common.security.SSLConfigurer sslConf = new org.cagrid.core.common.security.SSLConfigurer(baseConf);
sslConf.setTruststore(truststore);
sslConf.setKm(new KeyManager[]{keyManager});
bus.setExtension(sslConf, Configurer.class);
JaxWsProxyFactoryBean cf = new JaxWsProxyFactoryBean();
cf.setAddress(url);
cf.setServiceClass(GridGrouperService.class);
cf.setBus(bus);
GridGrouperPortType gridGrouperPort = cf.create(GridGrouperPortType.class);
return gridGrouperPort;
}
}