Author: markt
Date: Mon Sep 14 15:36:35 2015
New Revision: 1702970

URL: http://svn.apache.org/r1702970
Log:
Fix various cookie related issues in Authenticator tests now the RFC6265 cookie 
parser is used by default

Modified:
    
tomcat/trunk/test/org/apache/catalina/authenticator/TestNonLoginAndBasicAuthenticator.java
    
tomcat/trunk/test/org/apache/catalina/authenticator/TestSSOnonLoginAndBasicAuthenticator.java
    
tomcat/trunk/test/org/apache/catalina/authenticator/TestSSOnonLoginAndDigestAuthenticator.java

Modified: 
tomcat/trunk/test/org/apache/catalina/authenticator/TestNonLoginAndBasicAuthenticator.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/authenticator/TestNonLoginAndBasicAuthenticator.java?rev=1702970&r1=1702969&r2=1702970&view=diff
==============================================================================
--- 
tomcat/trunk/test/org/apache/catalina/authenticator/TestNonLoginAndBasicAuthenticator.java
 (original)
+++ 
tomcat/trunk/test/org/apache/catalina/authenticator/TestNonLoginAndBasicAuthenticator.java
 Mon Sep 14 15:36:35 2015
@@ -356,8 +356,8 @@ public class TestNonLoginAndBasicAuthent
         Map<String,List<String>> reqHeaders = new HashMap<>();
         Map<String,List<String>> respHeaders = new HashMap<>();
 
-        if (useCookie && (cookies != null)) {
-            reqHeaders.put(CLIENT_COOKIE_HEADER + ":", cookies);
+        if (useCookie) {
+            addCookies(reqHeaders);
         }
 
         ByteChunk bc = new ByteChunk();
@@ -379,8 +379,8 @@ public class TestNonLoginAndBasicAuthent
         Map<String,List<String>> reqHeaders = new HashMap<>();
         Map<String,List<String>> respHeaders = new HashMap<>();
 
-        if (useCookie && (cookies != null)) {
-            reqHeaders.put(CLIENT_COOKIE_HEADER + ":", cookies);
+        if (useCookie) {
+            addCookies(reqHeaders);
         }
         else {
             if (credentials != null) {
@@ -415,7 +415,7 @@ public class TestNonLoginAndBasicAuthent
             List<String> newCookies = respHeaders.get(SERVER_COOKIE_HEADER);
             if (newCookies != null) {
                 // harvest cookies whenever the server sends some new ones
-                cookies = newCookies;
+                saveCookies(respHeaders);
             }
         }
     }
@@ -568,4 +568,41 @@ public class TestNonLoginAndBasicAuthent
             return credentials;
         }
     }
+
+    /*
+     * extract and save the server cookies from the incoming response
+     */
+    protected void saveCookies(Map<String,List<String>> respHeaders) {
+        // we only save the Cookie values, not header prefix
+        List<String> cookieHeaders = respHeaders.get(SERVER_COOKIE_HEADER);
+        if (cookieHeaders == null) {
+            cookies = null;
+        } else {
+            cookies = new ArrayList<>(cookieHeaders.size());
+            for (String cookieHeader : cookieHeaders) {
+                cookies.add(cookieHeader.substring(0, 
cookieHeader.indexOf(';')));
+            }
+        }
+    }
+
+    /*
+     * add all saved cookies to the outgoing request
+     */
+    protected void addCookies(Map<String,List<String>> reqHeaders) {
+        if ((cookies != null) && (cookies.size() > 0)) {
+            StringBuilder cookieHeader = new StringBuilder();
+            boolean first = true;
+            for (String cookie : cookies) {
+                if (!first) {
+                    cookieHeader.append(';');
+                } else {
+                    first = false;
+                }
+                cookieHeader.append(cookie);
+            }
+            List<String> cookieHeaderList = new ArrayList<>(1);
+            cookieHeaderList.add(cookieHeader.toString());
+            reqHeaders.put(CLIENT_COOKIE_HEADER, cookieHeaderList);
+        }
+    }
 }
\ No newline at end of file

Modified: 
tomcat/trunk/test/org/apache/catalina/authenticator/TestSSOnonLoginAndBasicAuthenticator.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/authenticator/TestSSOnonLoginAndBasicAuthenticator.java?rev=1702970&r1=1702969&r2=1702970&view=diff
==============================================================================
--- 
tomcat/trunk/test/org/apache/catalina/authenticator/TestSSOnonLoginAndBasicAuthenticator.java
 (original)
+++ 
tomcat/trunk/test/org/apache/catalina/authenticator/TestSSOnonLoginAndBasicAuthenticator.java
 Mon Sep 14 15:36:35 2015
@@ -355,7 +355,7 @@ public class TestSSOnonLoginAndBasicAuth
         Map<String,List<String>> respHeaders = new HashMap<>();
 
         if (useCookie && (cookies != null)) {
-            reqHeaders.put(CLIENT_COOKIE_HEADER + ":", cookies);
+            addCookies(reqHeaders);
         }
 
         ByteChunk bc = new ByteChunk();
@@ -379,7 +379,7 @@ public class TestSSOnonLoginAndBasicAuth
         Map<String,List<String>> respHeaders = new HashMap<>();
 
         if (useCookie && (cookies != null)) {
-            reqHeaders.put(CLIENT_COOKIE_HEADER + ":", cookies);
+            addCookies(reqHeaders);
         }
         else {
             if (credentials != null) {
@@ -554,18 +554,36 @@ public class TestSSOnonLoginAndBasicAuth
      * extract and save the server cookies from the incoming response
      */
     protected void saveCookies(Map<String,List<String>> respHeaders) {
-
         // we only save the Cookie values, not header prefix
-        cookies = respHeaders.get(SERVER_COOKIE_HEADER);
+        List<String> cookieHeaders = respHeaders.get(SERVER_COOKIE_HEADER);
+        if (cookieHeaders == null) {
+            cookies = null;
+        } else {
+            cookies = new ArrayList<>(cookieHeaders.size());
+            for (String cookieHeader : cookieHeaders) {
+                cookies.add(cookieHeader.substring(0, 
cookieHeader.indexOf(';')));
+            }
+        }
     }
 
     /*
      * add all saved cookies to the outgoing request
      */
     protected void addCookies(Map<String,List<String>> reqHeaders) {
-
         if ((cookies != null) && (cookies.size() > 0)) {
-            reqHeaders.put(CLIENT_COOKIE_HEADER + ":", cookies);
+            StringBuilder cookieHeader = new StringBuilder();
+            boolean first = true;
+            for (String cookie : cookies) {
+                if (!first) {
+                    cookieHeader.append(';');
+                } else {
+                    first = false;
+                }
+                cookieHeader.append(cookie);
+            }
+            List<String> cookieHeaderList = new ArrayList<>(1);
+            cookieHeaderList.add(cookieHeader.toString());
+            reqHeaders.put(CLIENT_COOKIE_HEADER, cookieHeaderList);
         }
     }
 

Modified: 
tomcat/trunk/test/org/apache/catalina/authenticator/TestSSOnonLoginAndDigestAuthenticator.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/authenticator/TestSSOnonLoginAndDigestAuthenticator.java?rev=1702970&r1=1702969&r2=1702970&view=diff
==============================================================================
--- 
tomcat/trunk/test/org/apache/catalina/authenticator/TestSSOnonLoginAndDigestAuthenticator.java
 (original)
+++ 
tomcat/trunk/test/org/apache/catalina/authenticator/TestSSOnonLoginAndDigestAuthenticator.java
 Mon Sep 14 15:36:35 2015
@@ -470,16 +470,35 @@ public class TestSSOnonLoginAndDigestAut
     protected void saveCookies(Map<String,List<String>> respHeaders) {
 
         // we only save the Cookie values, not header prefix
-        cookies = respHeaders.get(SERVER_COOKIES);
+        List<String> cookieHeaders = respHeaders.get(SERVER_COOKIES);
+        if (cookieHeaders == null) {
+            cookies = null;
+        } else {
+            cookies = new ArrayList<>(cookieHeaders.size());
+            for (String cookieHeader : cookieHeaders) {
+                cookies.add(cookieHeader.substring(0, 
cookieHeader.indexOf(';')));
+            }
+        }
     }
 
     /*
      * add all saved cookies to the outgoing request
      */
     protected void addCookies(Map<String,List<String>> reqHeaders) {
-
         if ((cookies != null) && (cookies.size() > 0)) {
-            reqHeaders.put(BROWSER_COOKIES + ":", cookies);
+            StringBuilder cookieHeader = new StringBuilder();
+            boolean first = true;
+            for (String cookie : cookies) {
+                if (!first) {
+                    cookieHeader.append(';');
+                } else {
+                    first = false;
+                }
+                cookieHeader.append(cookie);
+            }
+            List<String> cookieHeaderList = new ArrayList<>(1);
+            cookieHeaderList.add(cookieHeader.toString());
+            reqHeaders.put(BROWSER_COOKIES, cookieHeaderList);
         }
     }
 }
\ No newline at end of file



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to