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