You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsif-dev@ws.apache.org by an...@apache.org on 2003/03/19 16:19:58 UTC

cvs commit: xml-axis-wsif/java/src/org/apache/wsif/providers/soap/apachesoap WSIFOperation_ApacheSOAP.java

antelder    2003/03/19 07:19:56

  Modified:    java/src/org/apache/wsif/providers/soap/apacheaxis
                        WSIFOperation_ApacheAxis.java
               java/src/org/apache/wsif/providers/soap/apachesoap
                        WSIFOperation_ApacheSOAP.java
  Log:
  For SOAP allow setting the userid and password from the context mesage for an authenticating proxy
  
  Revision  Changes    Path
  1.81      +43 -0     xml-axis-wsif/java/src/org/apache/wsif/providers/soap/apacheaxis/WSIFOperation_ApacheAxis.java
  
  Index: WSIFOperation_ApacheAxis.java
  ===================================================================
  RCS file: /home/cvs/xml-axis-wsif/java/src/org/apache/wsif/providers/soap/apacheaxis/WSIFOperation_ApacheAxis.java,v
  retrieving revision 1.80
  retrieving revision 1.81
  diff -u -r1.80 -r1.81
  --- WSIFOperation_ApacheAxis.java	18 Mar 2003 14:48:59 -0000	1.80
  +++ WSIFOperation_ApacheAxis.java	19 Mar 2003 15:19:55 -0000	1.81
  @@ -92,6 +92,7 @@
   
   import org.apache.axis.AxisEngine;
   import org.apache.axis.AxisFault;
  +import org.apache.axis.AxisProperties;
   import org.apache.axis.Message;
   import org.apache.axis.MessageContext;
   import org.apache.axis.attachments.AttachmentPart;
  @@ -2599,7 +2600,49 @@
       	    }
       	}
       	
  +    	setProxyUserFromContext(context);
  +    	
   	}
  +
  +    /**
  +     * Sets the authenticating proxy user id and password if in context
  +     */
  +    private void setProxyUserFromContext(WSIFMessage ctx) throws WSIFException {
  +    	String uid = null;
  +    	String pswd = null;
  +    	try {
  +            Object o = ctx.getObjectPart(WSIFConstants.CONTEXT_HTTP_PROXY_USER);
  +            if (o != null) {
  +                if ( o instanceof String) {
  +                	uid = (String) o;
  +                } else {
  +                	throw new WSIFException(
  +                	    "invalid value type for context part '"
  +                	    + WSIFConstants.CONTEXT_HTTP_PROXY_USER
  +                	    + "', found value: " 
  +                	    + o);
  +                }
  +            }
  +            o = ctx.getObjectPart(WSIFConstants.CONTEXT_HTTP_PROXY_PSWD);
  +            if (o != null) {
  +                if ( o instanceof String) {
  +                	pswd = (String) o;
  +                } else {
  +                	throw new WSIFException(
  +                	    "invalid value type for context part '"
  +                	    + WSIFConstants.CONTEXT_HTTP_PROXY_PSWD
  +                	    + "', found value: " 
  +                	    + o);
  +                }
  +            }
  +        } catch (WSIFException e) {
  +        	Trc.ignoredException(e);
  +        }
  +        if (uid != null) {
  +        	AxisProperties.setProperty("http.proxyUser", uid);
  +        	AxisProperties.setProperty("http.proxyPassword", pswd);
  +        }
  +    }
   
       /**
        * This sets up any context from the response message
  
  
  
  1.39      +41 -1     xml-axis-wsif/java/src/org/apache/wsif/providers/soap/apachesoap/WSIFOperation_ApacheSOAP.java
  
  Index: WSIFOperation_ApacheSOAP.java
  ===================================================================
  RCS file: /home/cvs/xml-axis-wsif/java/src/org/apache/wsif/providers/soap/apachesoap/WSIFOperation_ApacheSOAP.java,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- WSIFOperation_ApacheSOAP.java	21 Jan 2003 12:05:05 -0000	1.38
  +++ WSIFOperation_ApacheSOAP.java	19 Mar 2003 15:19:56 -0000	1.39
  @@ -70,6 +70,7 @@
   import java.util.HashMap;
   import java.util.Iterator;
   import java.util.List;
  +import java.util.Map;
   import java.util.StringTokenizer;
   import java.util.Vector;
   
  @@ -1646,7 +1647,7 @@
        * system properties for a proxy server, we need to set
        * it up manually.
        */
  -    private void setSOAPProxy(SOAPTransport st) {
  +    private void setSOAPProxy(SOAPTransport st) throws WSIFException {
           if (st instanceof SOAPHTTPConnection) {
              SOAPHTTPConnection shttpc = (SOAPHTTPConnection) st;
              String proxyHost = 
  @@ -1671,7 +1672,46 @@
                       Trc.ignoredException(ex);
                 	 }
                 }
  +              setProxyUserFromContext(shttpc);
              }
  +        }
  +    }
  +    
  +    private void setProxyUserFromContext(SOAPHTTPConnection shttpc) throws WSIFException {
  +    	WSIFMessage ctx = getContext();
  +    	String uid = null;
  +    	String pswd = null;
  +    	try {
  +            Object o = ctx.getObjectPart(WSIFConstants.CONTEXT_HTTP_PROXY_USER);
  +            if (o != null) {
  +                if ( o instanceof String) {
  +                	uid = (String) o;
  +                } else {
  +                	throw new WSIFException(
  +                	    "invalid value type for context part '"
  +                	    + WSIFConstants.CONTEXT_HTTP_PROXY_USER
  +                	    + "', found value: " 
  +                	    + o);
  +                }
  +            }
  +            o = ctx.getObjectPart(WSIFConstants.CONTEXT_HTTP_PROXY_PSWD);
  +            if (o != null) {
  +                if ( o instanceof String) {
  +                	pswd = (String) o;
  +                } else {
  +                	throw new WSIFException(
  +                	    "invalid value type for context part '"
  +                	    + WSIFConstants.CONTEXT_HTTP_PROXY_PSWD
  +                	    + "', found value: " 
  +                	    + o);
  +                }
  +            }
  +        } catch (WSIFException e) {
  +        	Trc.ignoredException(e);
  +        }
  +        if (uid != null) {
  +        	shttpc.setProxyUserName(uid);
  +        	shttpc.setProxyPassword(pswd);
           }
       }