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