You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by de...@apache.org on 2006/06/26 10:34:45 UTC
svn commit: r417143 - in /webservices/axis2/trunk/java/modules:
core/src/org/apache/axis2/ core/src/org/apache/axis2/transport/http/
core/src/org/apache/axis2/transport/http/server/
integration/test/org/apache/axis2/engine/
Author: deepal
Date: Mon Jun 26 01:34:44 2006
New Revision: 417143
URL: http://svn.apache.org/viewvc?rev=417143&view=rev
Log:
applying http://issues.apache.org/jira/browse/AXIS2-839 patch
Modified:
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/Constants.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AbstractHTTPSender.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SOAPOverHTTPSender.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/server/RequestSessionCookie.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/server/ResponseSessionCookie.java
webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/ServiceGroupContextTest.java
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/Constants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/Constants.java?rev=417143&r1=417142&r2=417143&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/Constants.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/Constants.java Mon Jun 26 01:34:44 2006
@@ -187,6 +187,7 @@
//to set and get the property from service context
public static final String COOKIE_STRING = "Cookie";
+ public static final String SESSION_COOKIE = "axis_session";
/**
* Addressing Constants
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AbstractHTTPSender.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AbstractHTTPSender.java?rev=417143&r1=417142&r2=417143&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AbstractHTTPSender.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AbstractHTTPSender.java Mon Jun 26 01:34:44 2006
@@ -228,16 +228,34 @@
}
}
}
- Header cookieHeader =
- method.getResponseHeader(HTTPConstants.HEADER_SET_COOKIE);
- if (cookieHeader == null) {
- cookieHeader =
- method.getResponseHeader(HTTPConstants.HEADER_SET_COOKIE2);
+
+ String sessionCookie = null;
+ // Process old style headers first
+ Header[] cookieHeaders = method.getResponseHeaders(HTTPConstants.HEADER_SET_COOKIE);
+ for (int i = 0; i < cookieHeaders.length; i++) {
+ HeaderElement[] elements = cookieHeaders[i].getElements();
+ for (int e = 0; e < elements.length; e++) {
+ HeaderElement element = elements[e];
+ if (Constants.SESSION_COOKIE.equalsIgnoreCase(element.getName())) {
+ sessionCookie = element.getValue();
+ }
+ }
}
- if (cookieHeader != null) {
- msgContext.getServiceContext().setProperty(Constants.COOKIE_STRING,
- cookieHeader.getValue());
+ // Overwrite old style cookies with new style ones if present
+ cookieHeaders = method.getResponseHeaders(HTTPConstants.HEADER_SET_COOKIE2);
+ for (int i = 0; i < cookieHeaders.length; i++) {
+ HeaderElement[] elements = cookieHeaders[i].getElements();
+ for (int e = 0; e < elements.length; e++) {
+ HeaderElement element = elements[e];
+ if (Constants.SESSION_COOKIE.equalsIgnoreCase(element.getName())) {
+ sessionCookie = element.getValue();
+ }
+ }
}
+
+ if (sessionCookie != null) {
+ msgContext.getServiceContext().setProperty(Constants.COOKIE_STRING, sessionCookie);
+ }
}
protected void processResponse(HttpMethodBase httpMethod,
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SOAPOverHTTPSender.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SOAPOverHTTPSender.java?rev=417143&r1=417142&r2=417143&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SOAPOverHTTPSender.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/SOAPOverHTTPSender.java Mon Jun 26 01:34:44 2006
@@ -85,12 +85,11 @@
//setting the coolie in the out path
Object cookieString = msgContext.getProperty(Constants.COOKIE_STRING);
if (cookieString != null) {
- String cookie =(String) cookieString;
- int index = cookie.indexOf(";");
- if(index >0){
- cookie = cookie.substring(0,index);
- }
- postMethod.setRequestHeader(HTTPConstants.HEADER_COOKIE,cookie);
+ StringBuffer buffer = new StringBuffer();
+ buffer.append(Constants.SESSION_COOKIE);
+ buffer.append("=");
+ buffer.append(cookieString);
+ postMethod.setRequestHeader(HTTPConstants.HEADER_COOKIE, buffer.toString());
}
postMethod.setRequestHeader(HTTPConstants.HEADER_HOST, url.getHost());
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/server/RequestSessionCookie.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/server/RequestSessionCookie.java?rev=417143&r1=417142&r2=417143&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/server/RequestSessionCookie.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/server/RequestSessionCookie.java Mon Jun 26 01:34:44 2006
@@ -52,11 +52,14 @@
}
String sessionCookie = null;
- Header header = request.getFirstHeader(HTTPConstants.HEADER_COOKIE);
- if (header != null) {
- HeaderElement[] elements = header.getElements();
- if (elements.length > 0) {
- sessionCookie = elements[0].getName();
+ Header[] headers = request.getHeaders(HTTPConstants.HEADER_COOKIE);
+ for (int i = 0; i < headers.length; i++) {
+ HeaderElement[] elements = headers[i].getElements();
+ for (int e = 0; e < elements.length; e++) {
+ HeaderElement element = elements[e];
+ if (Constants.SESSION_COOKIE.equalsIgnoreCase(element.getName())) {
+ sessionCookie = element.getValue();
+ }
}
}
context.setAttribute(Constants.COOKIE_STRING, sessionCookie);
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/server/ResponseSessionCookie.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/server/ResponseSessionCookie.java?rev=417143&r1=417142&r2=417143&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/server/ResponseSessionCookie.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/server/ResponseSessionCookie.java Mon Jun 26 01:34:44 2006
@@ -61,9 +61,11 @@
sessionCookie = (String) context.getAttribute(Constants.COOKIE_STRING);
}
if (sessionCookie != null) {
- response.addHeader(new Header(HTTPConstants.HEADER_SET_COOKIE, sessionCookie));
- CharArrayBuffer buffer = new CharArrayBuffer(sessionCookie.length() + 40);
+ CharArrayBuffer buffer = new CharArrayBuffer(sessionCookie.length() + 40);
+ buffer.append(Constants.SESSION_COOKIE);
+ buffer.append("=");
buffer.append(sessionCookie);
+ response.addHeader(new Header(HTTPConstants.HEADER_SET_COOKIE, buffer.toString()));
buffer.append("; ");
int port = response.getParams().getIntParameter(AxisParams.LISTENER_PORT, 0);
if (port > 0) {
Modified: webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/ServiceGroupContextTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/ServiceGroupContextTest.java?rev=417143&r1=417142&r2=417143&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/ServiceGroupContextTest.java (original)
+++ webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/ServiceGroupContextTest.java Mon Jun 26 01:34:44 2006
@@ -73,7 +73,8 @@
protected void setUp() throws Exception {
service = Utils.createSimpleService(serviceName, new RequestCounterMessageReceiver(),
RequestCounter.class.getName(), operationName);
- service.setScope(Constants.SCOPE_TRANSPORT_SESSION);
+// service.setScope(Constants.SCOPE_TRANSPORT_SESSION);
+ service.setScope(Constants.SCOPE_SOAP_SESSION);
UtilServer.deployService(service);
UtilServer.getConfigurationContext().getAxisConfiguration().setManageTransportSession(true);
}
@@ -96,6 +97,7 @@
ConfigurationContext configContext =
ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-resources/integrationRepo", null);
+ configContext.getAxisConfiguration().engageModule(new QName("addressing"));
ServiceClient sender = new ServiceClient(configContext, null);
sender.setOptions(options);
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org