You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-user@ws.apache.org by "Ladwig, Mike" <ML...@northropgrumman.com> on 2002/10/18 20:35:11 UTC

Problems with HTTPS + Proxy + Authentication

Hello everybody!

I've been trying to get a working soap connection (code attached) through my
company's proxy gateway which requires authentication.  I first got it to
work to the target via http, but when I tried to go against the same service
via https, I started getting the following exception:

[SOAPException: faultCode=SOAP-ENV:Client; msg=Error SSL connecting to
##.##.##.###:443 via httpdal2:80:
java.lang.reflect.InvocationTargetException;
targetException=java.lang.reflect.InvocationTargetException]

I am using yesterday's nightly build as the "stable" version didn't work,
and there have been several recent commits working on this problem.

Any ideas?

Thanks,
mike.



/*
 * testauthproxy.java
 *
 * Created on October 18, 2002, 2:13 PM
 */

package sage2.src.Sensors.Core2;

import java.net.URL;
import java.lang.Integer;
import java.util.Hashtable;
import java.util.ArrayList;
import java.util.Vector;
import java.io.*;
import sun.misc.BASE64Encoder;

import org.apache.soap.*;
import org.apache.soap.rpc.*;
import org.apache.soap.encoding.SOAPMappingRegistry;
import org.apache.soap.encoding.soapenc.BeanSerializer;
import org.apache.soap.util.xml.QName;
import org.apache.soap.transport.http.SOAPHTTPConnection;

/**
 *
 * @author  mike
 */
public class testauthproxy {
    
    /** Creates a new instance of testauthproxy */
    public testauthproxy() {
    }

    public static void main (String args[]) {
        
        String ttarget = new String(
"https://##.##.##.###/soap/servlet/rpcrouter" );
        
        String proxyHost = new String( "httpdal2" );
        String proxyPort = new String( "80" );
        String proxyUserName = new String( "ladwimi" );
        String proxyPassword = new String( "sniper!duck!" );
        
        /* Tried this approach based on Phil Bohnenkamp patch
        String password = " " + proxyUserName + ":" + " " + proxyPassword;
        BASE64Encoder B64Encoder = new BASE64Encoder ();
        String encodedPassword = B64Encoder.encode( password.getBytes ());
        
        System.setProperty( "https.proxyHost", proxyHost );
        System.setProperty( "https.proxyPort", proxyPort );
        System.setProperty( "https.proxyAuth", "basic " + encodedPassword );
        */
        
        // Tried this approach based on working http connection through
proxy based on Steve Nichol patch
        SOAPHTTPConnection connection = new SOAPHTTPConnection();
        connection.setProxyHost( proxyHost );
        connection.setProxyPort( 80 );
        connection.setProxyUserName( proxyUserName );
        connection.setProxyPassword( proxyPassword );
        
        System.err.println("List");
        
        Call call = new Call ();
        call.setSOAPTransport( connection );
        call.setTargetObjectURI ("urn:sage2-sensor-core2");
        call.setMethodName ("List");
        call.setEncodingStyleURI( Constants.NS_URI_SOAP_ENC );

        Response resp = null;
        try { resp = call.invoke ( new URL( ttarget ), /* actionURI */ "" );
}
        catch( Exception ex ) { System.err.println("Editor.List exception: "
+ ex); System.exit(1); }

        if (resp.generatedFault ()) {
          Fault fault = resp.getFault ();
          System.out.println ("Editor.List: Call failure: ");
          System.out.println ("-Fault Code   = " + fault.getFaultCode ());
          System.out.println ("-Fault String = " + fault.getFaultString ());
          System.exit(1);
        }
        
        Parameter result = resp.getReturnValue();
        System.err.println( ">>>>>> " + result.getValue() );
    }
}

Re: Problems with HTTPS + Proxy + Authentication

Posted by Scott Nichol <sn...@scottnichol.com>.
Can you catch the SOAPException and do
e.getRootException().printStackTrace()?  That would be a big help.

Thanks.

Scott Nichol

----- Original Message -----
From: "Ladwig, Mike" <ML...@northropgrumman.com>
To: <so...@xml.apache.org>
Sent: Friday, October 18, 2002 2:35 PM
Subject: Problems with HTTPS + Proxy + Authentication


> Hello everybody!
>
> I've been trying to get a working soap connection (code attached)
through my
> company's proxy gateway which requires authentication.  I first got it
to
> work to the target via http, but when I tried to go against the same
service
> via https, I started getting the following exception:
>
> [SOAPException: faultCode=SOAP-ENV:Client; msg=Error SSL connecting to
> ##.##.##.###:443 via httpdal2:80:
> java.lang.reflect.InvocationTargetException;
> targetException=java.lang.reflect.InvocationTargetException]
>
> I am using yesterday's nightly build as the "stable" version didn't
work,
> and there have been several recent commits working on this problem.
>
> Any ideas?
>
> Thanks,
> mike.
>
>
>
> /*
>  * testauthproxy.java
>  *
>  * Created on October 18, 2002, 2:13 PM
>  */
>
> package sage2.src.Sensors.Core2;
>
> import java.net.URL;
> import java.lang.Integer;
> import java.util.Hashtable;
> import java.util.ArrayList;
> import java.util.Vector;
> import java.io.*;
> import sun.misc.BASE64Encoder;
>
> import org.apache.soap.*;
> import org.apache.soap.rpc.*;
> import org.apache.soap.encoding.SOAPMappingRegistry;
> import org.apache.soap.encoding.soapenc.BeanSerializer;
> import org.apache.soap.util.xml.QName;
> import org.apache.soap.transport.http.SOAPHTTPConnection;
>
> /**
>  *
>  * @author  mike
>  */
> public class testauthproxy {
>
>     /** Creates a new instance of testauthproxy */
>     public testauthproxy() {
>     }
>
>     public static void main (String args[]) {
>
>         String ttarget = new String(
> "https://##.##.##.###/soap/servlet/rpcrouter" );
>
>         String proxyHost = new String( "httpdal2" );
>         String proxyPort = new String( "80" );
>         String proxyUserName = new String( "ladwimi" );
>         String proxyPassword = new String( "sniper!duck!" );
>
>         /* Tried this approach based on Phil Bohnenkamp patch
>         String password = " " + proxyUserName + ":" + " " +
proxyPassword;
>         BASE64Encoder B64Encoder = new BASE64Encoder ();
>         String encodedPassword = B64Encoder.encode( password.getBytes
());
>
>         System.setProperty( "https.proxyHost", proxyHost );
>         System.setProperty( "https.proxyPort", proxyPort );
>         System.setProperty( "https.proxyAuth", "basic " +
encodedPassword );
>         */
>
>         // Tried this approach based on working http connection
through
> proxy based on Steve Nichol patch
>         SOAPHTTPConnection connection = new SOAPHTTPConnection();
>         connection.setProxyHost( proxyHost );
>         connection.setProxyPort( 80 );
>         connection.setProxyUserName( proxyUserName );
>         connection.setProxyPassword( proxyPassword );
>
>         System.err.println("List");
>
>         Call call = new Call ();
>         call.setSOAPTransport( connection );
>         call.setTargetObjectURI ("urn:sage2-sensor-core2");
>         call.setMethodName ("List");
>         call.setEncodingStyleURI( Constants.NS_URI_SOAP_ENC );
>
>         Response resp = null;
>         try { resp = call.invoke ( new URL( ttarget ), /* actionURI */
"" );
> }
>         catch( Exception ex ) { System.err.println("Editor.List
exception: "
> + ex); System.exit(1); }
>
>         if (resp.generatedFault ()) {
>           Fault fault = resp.getFault ();
>           System.out.println ("Editor.List: Call failure: ");
>           System.out.println ("-Fault Code   = " + fault.getFaultCode
());
>           System.out.println ("-Fault String = " +
fault.getFaultString ());
>           System.exit(1);
>         }
>
>         Parameter result = resp.getReturnValue();
>         System.err.println( ">>>>>> " + result.getValue() );
>     }
> }
>
> --
> To unsubscribe, e-mail:
<ma...@xml.apache.org>
> For additional commands, e-mail:
<ma...@xml.apache.org>
>
>


--
To unsubscribe, e-mail:   <ma...@xml.apache.org>
For additional commands, e-mail: <ma...@xml.apache.org>


Re: Problems with HTTPS + Proxy + Authentication

Posted by Scott Nichol <sn...@scottnichol.com>.
Can you catch the SOAPException and do
e.getRootException().printStackTrace()?  That would be a big help.

Thanks.

Scott Nichol

----- Original Message -----
From: "Ladwig, Mike" <ML...@northropgrumman.com>
To: <so...@xml.apache.org>
Sent: Friday, October 18, 2002 2:35 PM
Subject: Problems with HTTPS + Proxy + Authentication


> Hello everybody!
>
> I've been trying to get a working soap connection (code attached)
through my
> company's proxy gateway which requires authentication.  I first got it
to
> work to the target via http, but when I tried to go against the same
service
> via https, I started getting the following exception:
>
> [SOAPException: faultCode=SOAP-ENV:Client; msg=Error SSL connecting to
> ##.##.##.###:443 via httpdal2:80:
> java.lang.reflect.InvocationTargetException;
> targetException=java.lang.reflect.InvocationTargetException]
>
> I am using yesterday's nightly build as the "stable" version didn't
work,
> and there have been several recent commits working on this problem.
>
> Any ideas?
>
> Thanks,
> mike.
>
>
>
> /*
>  * testauthproxy.java
>  *
>  * Created on October 18, 2002, 2:13 PM
>  */
>
> package sage2.src.Sensors.Core2;
>
> import java.net.URL;
> import java.lang.Integer;
> import java.util.Hashtable;
> import java.util.ArrayList;
> import java.util.Vector;
> import java.io.*;
> import sun.misc.BASE64Encoder;
>
> import org.apache.soap.*;
> import org.apache.soap.rpc.*;
> import org.apache.soap.encoding.SOAPMappingRegistry;
> import org.apache.soap.encoding.soapenc.BeanSerializer;
> import org.apache.soap.util.xml.QName;
> import org.apache.soap.transport.http.SOAPHTTPConnection;
>
> /**
>  *
>  * @author  mike
>  */
> public class testauthproxy {
>
>     /** Creates a new instance of testauthproxy */
>     public testauthproxy() {
>     }
>
>     public static void main (String args[]) {
>
>         String ttarget = new String(
> "https://##.##.##.###/soap/servlet/rpcrouter" );
>
>         String proxyHost = new String( "httpdal2" );
>         String proxyPort = new String( "80" );
>         String proxyUserName = new String( "ladwimi" );
>         String proxyPassword = new String( "sniper!duck!" );
>
>         /* Tried this approach based on Phil Bohnenkamp patch
>         String password = " " + proxyUserName + ":" + " " +
proxyPassword;
>         BASE64Encoder B64Encoder = new BASE64Encoder ();
>         String encodedPassword = B64Encoder.encode( password.getBytes
());
>
>         System.setProperty( "https.proxyHost", proxyHost );
>         System.setProperty( "https.proxyPort", proxyPort );
>         System.setProperty( "https.proxyAuth", "basic " +
encodedPassword );
>         */
>
>         // Tried this approach based on working http connection
through
> proxy based on Steve Nichol patch
>         SOAPHTTPConnection connection = new SOAPHTTPConnection();
>         connection.setProxyHost( proxyHost );
>         connection.setProxyPort( 80 );
>         connection.setProxyUserName( proxyUserName );
>         connection.setProxyPassword( proxyPassword );
>
>         System.err.println("List");
>
>         Call call = new Call ();
>         call.setSOAPTransport( connection );
>         call.setTargetObjectURI ("urn:sage2-sensor-core2");
>         call.setMethodName ("List");
>         call.setEncodingStyleURI( Constants.NS_URI_SOAP_ENC );
>
>         Response resp = null;
>         try { resp = call.invoke ( new URL( ttarget ), /* actionURI */
"" );
> }
>         catch( Exception ex ) { System.err.println("Editor.List
exception: "
> + ex); System.exit(1); }
>
>         if (resp.generatedFault ()) {
>           Fault fault = resp.getFault ();
>           System.out.println ("Editor.List: Call failure: ");
>           System.out.println ("-Fault Code   = " + fault.getFaultCode
());
>           System.out.println ("-Fault String = " +
fault.getFaultString ());
>           System.exit(1);
>         }
>
>         Parameter result = resp.getReturnValue();
>         System.err.println( ">>>>>> " + result.getValue() );
>     }
> }
>
> --
> To unsubscribe, e-mail:
<ma...@xml.apache.org>
> For additional commands, e-mail:
<ma...@xml.apache.org>
>
>