Author: veithen
Date: Sun May 29 09:52:00 2016
New Revision: 1745982

URL: http://svn.apache.org/viewvc?rev=1745982&view=rev
Log:
Revert r1527429 (AXIS2-5608).

Reasons:
* That code change is responsible for the regression described in AXIS2-5772.
* It has zero test coverage.
* If multiple Set-Cookie headers are present, the code concatenates their 
values to a single string with ';' used as the separator. That's obviously 
incorrect.

Modified:
    
axis/axis2/java/core/trunk/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/HTTPSenderImpl.java
    
axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPSenderImpl.java

Modified: 
axis/axis2/java/core/trunk/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/HTTPSenderImpl.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/HTTPSenderImpl.java?rev=1745982&r1=1745981&r2=1745982&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/HTTPSenderImpl.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/transport/http-hc3/src/main/java/org/apache/axis2/transport/http/impl/httpclient3/HTTPSenderImpl.java
 Sun May 29 09:52:00 2016
@@ -413,28 +413,19 @@ public class HTTPSenderImpl extends HTTP
         // Process old style headers first
         Header[] cookieHeaders = 
method.getResponseHeaders(HTTPConstants.HEADER_SET_COOKIE);
         String customCoookiId = (String) 
msgContext.getProperty(Constants.CUSTOM_COOKIE_ID);
-
-        // The following only check for JSESSIONID / axis_session / 
custom-cookie-id from the Set-Cookie header.
-        // But it will ignore if there are other Set-Cookie values, which may 
cause issues at client level,
-        // when invoking via a load-balancer, which expect some specific 
Cookie value.
-        // So the correct fix is to add whatever the value(s) in the 
Set-Cookie header as session 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())
-//                        || 
Constants.SESSION_COOKIE_JSESSIONID.equalsIgnoreCase(element.getName())) {
-//                    sessionCookie = processCookieHeader(element);
-//                }
-//                if (customCoookiId != null && 
customCoookiId.equalsIgnoreCase(element.getName())) {
-//                    sessionCookie = processCookieHeader(element);
-//                }
-//            }
-//        }
-
-        sessionCookie = processSetCookieHeaders(cookieHeaders);
-
+        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())
+                        || 
Constants.SESSION_COOKIE_JSESSIONID.equalsIgnoreCase(element.getName())) {
+                    sessionCookie = processCookieHeader(element);
+                }
+                if (customCoookiId != null && 
customCoookiId.equalsIgnoreCase(element.getName())) {
+                    sessionCookie = processCookieHeader(element);
+                }
+            }
+        }
         // 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++) {
@@ -451,7 +442,7 @@ public class HTTPSenderImpl extends HTTP
             }
         }
 
-        if (sessionCookie != null && !sessionCookie.equals("")) {
+        if (sessionCookie != null) {
             
msgContext.getServiceContext().setProperty(HTTPConstants.COOKIE_STRING, 
sessionCookie);
         }
     }
@@ -465,25 +456,6 @@ public class HTTPSenderImpl extends HTTP
         }
         return cookie;
     }
-
-
-    private String processSetCookieHeaders(Header[] headers) {
-        String cookie = "";
-        for (Header header : headers) {
-            if (!cookie.equals("")) {
-                cookie = cookie + ";";
-            }
-            HeaderElement[] elements = header.getElements();
-            for (HeaderElement element : elements) {
-                cookie = cookie + element.getName() + "=" + element.getValue();
-                NameValuePair[] parameters = element.getParameters();
-                for (NameValuePair parameter : parameters) {
-                    cookie = cookie + "; " + parameter.getName() + "=" + 
parameter.getValue();
-                }
-            }
-        }
-        return cookie;
-    }
 
     protected void processResponse(HttpMethodBase httpMethod, MessageContext 
msgContext)
             throws IOException {

Modified: 
axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPSenderImpl.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPSenderImpl.java?rev=1745982&r1=1745981&r2=1745982&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPSenderImpl.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/transport/http/src/org/apache/axis2/transport/http/impl/httpclient4/HTTPSenderImpl.java
 Sun May 29 09:52:00 2016
@@ -433,28 +433,19 @@ public class HTTPSenderImpl extends HTTP
         // Process old style headers first
         Header[] cookieHeaders = 
response.getHeaders(HTTPConstants.HEADER_SET_COOKIE);
         String customCoookiId = (String) 
msgContext.getProperty(Constants.CUSTOM_COOKIE_ID);
-
-        // The following only check for JSESSIONID / axis_session / 
custom-cookie-id from the Set-Cookie header.
-        // But it will ignore if there are other Set-Cookie values, which may 
cause issues at client level,
-        // when invoking via a load-balancer, which expect some specific 
Cookie value.
-        // So the correct fix is to add whatever the value(s) in the 
Set-Cookie header as session 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())
-//                    || 
Constants.SESSION_COOKIE_JSESSIONID.equalsIgnoreCase(element.getName())) {
-//                    sessionCookie = processCookieHeader(element);
-//                }
-//                if (customCoookiId != null && 
customCoookiId.equalsIgnoreCase(element.getName())) {
-//                    sessionCookie = processCookieHeader(element);
-//                }
-//            }
-//        }
-
-        sessionCookie = processSetCookieHeaders(cookieHeaders);
-
+        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())
+                    || 
Constants.SESSION_COOKIE_JSESSIONID.equalsIgnoreCase(element.getName())) {
+                    sessionCookie = processCookieHeader(element);
+                }
+                if (customCoookiId != null && 
customCoookiId.equalsIgnoreCase(element.getName())) {
+                    sessionCookie = processCookieHeader(element);
+                }
+            }
+        }
         // Overwrite old style cookies with new style ones if present
         cookieHeaders = response.getHeaders(HTTPConstants.HEADER_SET_COOKIE2);
         for (int i = 0; i < cookieHeaders.length; i++) {
@@ -471,7 +462,7 @@ public class HTTPSenderImpl extends HTTP
             }
         }
 
-        if (sessionCookie != null  && !sessionCookie.equals("")) {
+        if (sessionCookie != null) {
             
msgContext.getServiceContext().setProperty(HTTPConstants.COOKIE_STRING, 
sessionCookie);
         }
     }
@@ -485,24 +476,6 @@ public class HTTPSenderImpl extends HTTP
         }
         return cookie;
     }
-
-    private String processSetCookieHeaders(Header[] headers) {
-        String cookie = "";
-        for (Header header : headers) {
-            if (!cookie.equals("")) {
-                cookie = cookie + ";";
-            }
-            HeaderElement[] elements = header.getElements();
-            for (HeaderElement element : elements) {
-                cookie = cookie + element.getName() + "=" + element.getValue();
-                NameValuePair[] parameters = element.getParameters();
-                for (NameValuePair parameter : parameters) {
-                    cookie = cookie + "; " + parameter.getName() + "=" + 
parameter.getValue();
-                }
-            }
-        }
-        return cookie;
-    }
 
     protected void processResponse(HttpResponse response, MessageContext 
msgContext)
             throws IOException {


Reply via email to