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