I have a web gui that needs to talk to an untrusted webservice. The nodes
behind this server could change. So I need a way to ignore self signed,
untrusted, certs.
I used wscompile to gend the client stubs and I am using ws4ee on the client.
The way to do this in JWSDP is to register your own Trust Manager
| package com.acxiom.german.mover.ejb.mover.test;
|
|
| import java.net.URL;
| import java.net.URLConnection;
|
| import javax.net.ssl.HttpsURLConnection;
| import javax.net.ssl.SSLContext;
| import javax.net.ssl.TrustManager;
| import javax.net.ssl.X509TrustManager;
|
| import java.security.cert.X509Certificate;
|
| import javax.xml.rpc.Stub;
|
| import junit.framework.TestCase;
|
| import org.apache.log4j.Logger;
|
| import com.acxiom.german.mover.ejb.mover.gend.GermanMoverEndpoint;
| import com.acxiom.german.mover.ejb.mover.gend.GermanMoverOutput;
| import com.acxiom.german.mover.ejb.mover.gend.GermanMover_Impl;
| import com.acxiom.german.mover.ejb.mover.gend.NameAddressInput;
| import com.acxiom.german.mover.ejb.mover.gend.UnparsedAddress;
|
| public class GermanMoverHTTPSSoapTest extends TestCase {
| private Logger _log = Logger.getLogger(GermanMoverHTTPSSoapTest.class);
|
| private static class CustomTrustManager implements X509TrustManager
| {
| public X509Certificate[] getAcceptedIssuers()
| {
| return null;
| }
|
| public void checkClientTrusted(X509Certificate[] certs, String
authType)
| {
| }
|
| public void checkServerTrusted(X509Certificate[] certs, String
authType)
| {
| }
| }
|
| public void testRemoteGetByAddress() {
| try {
| TrustManager[] trustAllCerts = new TrustManager[1];
| trustAllCerts[0] = new CustomTrustManager();
| SSLContext sc = SSLContext.getInstance("SSL");
| sc.init(null, trustAllCerts, new
java.security.SecureRandom());
|
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
|
| System.out.println("Custom trust manager installed...");
|
| GermanMover_Impl loc = new GermanMover_Impl();
| GermanMoverEndpoint endPoint =
loc.getGermanMoverEndpointPort();
| Stub stub = (Stub) endPoint;
|
| NameAddressInput input = new NameAddressInput();
| String name = new String();
| UnparsedAddress address = new UnparsedAddress();
| String[] addressLines = new String[4];
| GermanMoverOutput output;
|
| addressLines[0] = "Sachsenkamstr. 17";
|
| name = "Michael Passer";
|
| address.setAddressLines(addressLines);
| address.setCity("München");
| address.setCountry("Germany");
| address.setPostalCode("80333");
|
| input.setAddress(address);
| input.setName(name);
| input.setUserID("123");
| input.setDataSource("111");
|
| stub._setProperty(Stub.USERNAME_PROPERTY, "XXX");
| stub._setProperty(Stub.PASSWORD_PROPERTY, "YYY");
| stub._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY,
"https://server.someplace.net:8443/germanMover/1.0");
| output = endPoint.selectByNameAddress (input);
| System.out.println("The Web Service said: " + output);
| }
| catch (Exception e) {
| System.out.println(e);
| }
|
| }
|
| }
|
We are using JDK 1.4, JBoss 4.0.2, JWSDP 1.6
Any help would be great
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3953816#3953816
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3953816
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user