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);
           }
       }
   
  
  
  

Reply via email to