Author: keith
Date: Thu Mar 13 02:14:31 2008
New Revision: 14768

Log:

Fixing a bug so that proxies in the axis2.xml will not break login calls.



Modified:
   trunk/mashup/java/modules/core/src/org/wso2/mashup/utils/MashupUtils.java

Modified: 
trunk/mashup/java/modules/core/src/org/wso2/mashup/utils/MashupUtils.java
==============================================================================
--- trunk/mashup/java/modules/core/src/org/wso2/mashup/utils/MashupUtils.java   
(original)
+++ trunk/mashup/java/modules/core/src/org/wso2/mashup/utils/MashupUtils.java   
Thu Mar 13 02:14:31 2008
@@ -19,6 +19,7 @@
 import org.apache.axiom.om.util.UUIDGenerator;
 import org.apache.axiom.om.impl.builder.StAXOMBuilder;
 import org.apache.axis2.AxisFault;
+import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.client.Options;
 import org.apache.axis2.client.ServiceClient;
@@ -26,6 +27,7 @@
 import org.apache.axis2.context.ConfigurationContextFactory;
 import org.apache.axis2.deployment.DeploymentEngine;
 import org.apache.axis2.description.AxisService;
+import org.apache.axis2.description.Parameter;
 import org.apache.axis2.rpc.client.RPCServiceClient;
 import org.apache.axis2.transport.http.HTTPConstants;
 import org.apache.axis2.transport.http.util.URIEncoderDecoder;
@@ -439,12 +441,21 @@
 
     public static void login(String username, String password, String 
cookieString)
             throws MashupFault {
+        Parameter parameter = null;
+        AxisConfiguration configuration = null;
         try {
             ServerManager serverManager = ServerManager.getInstance();
             ConfigurationContext context = serverManager.configContext;
             ConfigurationContext defaultConfigurationContext =
                     
ConfigurationContextFactory.createDefaultConfigurationContext();
-            
defaultConfigurationContext.setAxisConfiguration(context.getAxisConfiguration());
+            configuration = context.getAxisConfiguration();
+            parameter = configuration.getParameter("Proxy");
+            // The axis2.xml could have details of a proxy, and in that case 
that can cause problems for login hence
+            // we temparorily take it off before login and reinsert it later on
+            if (parameter!= null) {
+                configuration.removeParameter(parameter);
+            }
+            defaultConfigurationContext.setAxisConfiguration(configuration);
             ServiceClient client = new 
ServiceClient(defaultConfigurationContext, null);
             client.engageModule("rampart");
             client.engageModule("addressing");
@@ -470,16 +481,33 @@
             throw new MashupFault(e);
         } catch (Exception e) {
             throw new MashupFault(e);
+        } finally {
+            if (parameter != null) {
+                try {
+                    configuration.addParameter(parameter);
+                } catch (AxisFault axisFault) {
+                    throw new MashupFault(axisFault);
+                }
+            }
         }
     }
 
     public static String login(String ppid, String cookieString) throws 
MashupFault {
+        Parameter parameter = null;
+        AxisConfiguration configuration = null;
         try {
             ServerManager serverManager = ServerManager.getInstance();
             ConfigurationContext context = serverManager.configContext;
             ConfigurationContext defaultConfigurationContext =
                     
ConfigurationContextFactory.createDefaultConfigurationContext();
-            
defaultConfigurationContext.setAxisConfiguration(context.getAxisConfiguration());
+            configuration = context.getAxisConfiguration();
+            parameter = configuration.getParameter("Proxy");
+            // The axis2.xml could have details of a proxy, and in that case 
that can cause problems for login hence
+            // we temparorily take it off before login and reinsert it later on
+            if (parameter!= null) {
+                configuration.removeParameter(parameter);
+            }
+            defaultConfigurationContext.setAxisConfiguration(configuration);
             RPCServiceClient client = new 
RPCServiceClient(defaultConfigurationContext, null);
             client.engageModule("rampart");
             client.engageModule("addressing");
@@ -511,16 +539,33 @@
             throw new MashupFault(e);
         } catch (Exception e) {
             throw new MashupFault(e);
+        } finally {
+            if (parameter != null) {
+                try {
+                    configuration.addParameter(parameter);
+                } catch (AxisFault axisFault) {
+                    throw new MashupFault(axisFault);
+                }
+            }
         }
     }
 
     public static void logout(String cookieString) throws MashupFault {
+        Parameter parameter = null;
+        AxisConfiguration configuration = null;
         try {
             ServerManager serverManager = ServerManager.getInstance();
             ConfigurationContext context = serverManager.configContext;
             ConfigurationContext defaultConfigurationContext =
                     
ConfigurationContextFactory.createDefaultConfigurationContext();
-            
defaultConfigurationContext.setAxisConfiguration(context.getAxisConfiguration());
+            configuration = context.getAxisConfiguration();
+            parameter = configuration.getParameter("Proxy");
+            // The axis2.xml could have details of a proxy, and in that case 
that can cause problems for login hence
+            // we temparorily take it off before login and reinsert it later on
+            if (parameter!= null) {
+                configuration.removeParameter(parameter);
+            }
+            defaultConfigurationContext.setAxisConfiguration(configuration);
             ServiceClient client = new 
ServiceClient(defaultConfigurationContext, null);
             Options options = client.getOptions();
             options.setAction("urn:logout");
@@ -537,10 +582,18 @@
             throw new MashupFault(e);
         } catch (Exception e) {
             throw new MashupFault(e);
+        } finally {
+            if (parameter != null) {
+                try {
+                    configuration.addParameter(parameter);
+                } catch (AxisFault axisFault) {
+                    throw new MashupFault(axisFault);
+                }
+            }
         }
     }
 
-    private static Policy loadPolicy(String xmlPath) throws XMLStreamException,
+    public static Policy loadPolicy(String xmlPath) throws XMLStreamException,
             FileNotFoundException {
 
         ServerConfiguration serverConfig = ServerConfiguration.getInstance();

_______________________________________________
Mashup-dev mailing list
[email protected]
http://www.wso2.org/cgi-bin/mailman/listinfo/mashup-dev

Reply via email to