You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2018/04/26 16:35:14 UTC

[cxf] branch 3.1.x-fixes updated (448e075 -> 75701c9)

This is an automated email from the ASF dual-hosted git repository.

dkulp pushed a change to branch 3.1.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git.


    from 448e075  Recording .gitmergeinfo Changes
     new 7bc22f4  [CXF-7720] Bunch of issues with case senstive Set-Cookie headers
     new 75701c9  Recording .gitmergeinfo Changes

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .gitmergeinfo                                      | 11 ++++++
 .../org/apache/cxf/transport/http/Headers.java     | 39 +++++++++++-----------
 .../org/apache/cxf/systest/jaxrs/BookStore.java    |  4 +--
 3 files changed, 33 insertions(+), 21 deletions(-)

-- 
To stop receiving notification emails like this one, please contact
dkulp@apache.org.

[cxf] 02/02: Recording .gitmergeinfo Changes

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dkulp pushed a commit to branch 3.1.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git

commit 75701c907732570dea63dcf389f306285940ad2a
Author: Daniel Kulp <dk...@apache.org>
AuthorDate: Thu Apr 26 11:46:32 2018 -0400

    Recording .gitmergeinfo Changes
---
 .gitmergeinfo | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/.gitmergeinfo b/.gitmergeinfo
index d2a9337..64c52d6 100644
--- a/.gitmergeinfo
+++ b/.gitmergeinfo
@@ -157,6 +157,7 @@ B 29fcf793aa6f0182d66930aaf9f5d1ebdccd3241
 B 2a6144f5600160e285d6dda35b1355a8995f388a
 B 2b1b6fa7445f4b5acfc49c5891d7d9cad1440a62
 B 2b5c45ebd897745c83d78a125ea554b0489f6262
+B 2b6a0ec92851ec2b89e65d04b6d7ffed798565b5
 B 2b83d5f3872c08507e10fcad928f09c846e0991a
 B 2b9c671a1aca1c8514f3c4935ec06145ea6e7cef
 B 2c9a1639f03119b4ed70465f0a7f4b3ded523c51
@@ -325,7 +326,9 @@ B 5f91cf1cbf2a4310a69c156f7de60a07cb728c75
 B 5fa39c84511e3a329e9e84be2f7cf333b122f375
 B 604167d9f0cfc67e01219a19a95353176ce38f79
 B 6073a8eb236483bc6c0f8f3bd2c1026c7660c29a
+B 60b94b9c09b1eaf50516788b5c9c3573229d04f5
 B 60b98ee48fb0219b58be94b9bdbfcf1cb1e41d29
+B 60e02bacfcb09ff105d083ac3f49d0cd03c21494
 B 61a361610d57aaf18f2c574916621ac09af45151
 B 61ddc3d384bd27eba59207a96ad4ed7187d39ab6
 B 61eadf5265cbcf47c8b2d5a6d6235eb2f621b456
@@ -360,6 +363,7 @@ B 6a1bc29634a5328fb3d5f5927cdebbde9af63715
 B 6a3f97e9f0d02eef72bf10c266d444ec3af78bf5
 B 6b87582164f2d6e950bc896176d72ff28cebfad0
 B 6be7575f81a791f8323519bf671841044041d949
+B 6bef2268661d2c56045fc03ccde6b358d58e4405
 B 6c28faf7890b1043a1fd71a74acb5eb482eda006
 B 6c324421a358919b4ecb3cfdd8a2e0e16ff81724
 B 6c6cdd22e3bf46002cdb759d01224032cb0c8308
@@ -530,6 +534,7 @@ B a61e8216be68a414a80ec42377b906349d571f8d
 B a7126b66417fd51cbe42f850a5cf8abd6b7e9e02
 B a7362dfaf2141cb4f303f81bbb94c6df81be75cb
 B a81534d6655e046e7d316e6de38095fe3f4949cb
+B a8a9877e7c5ca191b2f584b33a50c324be2a2bd7
 B a93cbfd994c34000f27911c5aab6638b60d61ff7
 B a98345918f30b8288621ff7b3e7dc09947e86527
 B a998152a243dabee50aa49f28d76037666adecd9
@@ -540,6 +545,7 @@ B aaa00d17fa3b1056c98f0002a1e27d23fe9685fc
 B aaa4010efe517954f67280062ec76bff27899694
 B aad3a62bf74f3378c4309a611d8b9e498bce14b3
 B ab05d4ee361670d3c251712f5819a0f0b7e114d6
+B ab5458d511a0f9708684ca5127f8b1d658cd1b32
 B abaaa756eb2f979792dfb966238eacf58e4144a9
 B abfd5936fee6562b1b5c49d7522f0975390bcfed
 B ad579cdefe5ec49066ebc9d41db6c7b79eceb2c4
@@ -577,6 +583,7 @@ B b62ea11153d17a5849ef4242842f22ca996ce2a1
 B b667f5b29b97a96985bd3d2b9d63b2d3d2d7c27e
 B b69bd427318a9f6db6e6e7940796cb233aa54ef9
 B b6a4763dc95c874004e600c78888796474f267b8
+B b7b42c1bdf83e90758f613b2ed37005017a1c08c
 B b7cd2fb4b883cf9f6972d3593ecb0e1d31be7245
 B b8132e5962e326355b699bca445afe9274d0f91d
 B b82303bfb6802817d3ce3be1ce30df74fee50675
@@ -677,6 +684,7 @@ B d226c07d4db15fa9244a2f011df801839a880f68
 B d26570e26de80d0e0c6870ae5d959bfc8c0d19e4
 B d2814e391f1d651e7d09774e02e6f4a0ec809ef3
 B d28828e47a06da5ad81de62dcb74b1d9dbc2370d
+B d28cea164fc50dc84e700332fbbfc2be9055a738
 B d29d15cc9d19db4c2802761b1a66eb20122eb10f
 B d2c42f97c86d7ffb1c471e6003d6de6b37f26add
 B d3900dd8431e50e544896cf0ce019595984384bb
@@ -790,6 +798,7 @@ B f34a8146bbfd1d5fdc80adb373f56c9862f3e159
 B f3bb66deb0757478a33e0c3609428e7450cf3edb
 B f45612c0a60b63c5cfe7e190c54254e8a77c5e2a
 B f46d64c8d413ae13cd3baa58ebf691a17e655ba5
+B f4a293c5291c9cccd1ffed29fcd69dadf6c31de5
 B f4d0b2152036c6e57f82d762464f6c96907e0a37
 B f4e6c2009f05da24468b0b4bff806b6950b30432
 B f51d7557791a6d3ae0bcf7f81ceda30a2c0029d3
@@ -1158,6 +1167,7 @@ M b0a79aa7b48da6acdc6da1169abd690ecf914ca8
 M b12d8a04f280d39e62a18fa4a8f7946c27f06d75
 M b1c6125f50b294b0e2ebc927671e2ff53b5001bf
 M b1dae426bbc0209f762a2714e809b50e2d043cf2
+M b24e06a3aa6140b262c815cfc900895ddbd4dbb7
 M b2b6f0137cd9f1bafff5d487e8383453692a2ff0
 M b2e5fb6583d64deeb8a42d2eeb6935c5f33dc0c6
 M b30d620d90593f52b79ae578373597defc89e80d
@@ -1232,6 +1242,7 @@ M e0ed46f9f99ac1ec3e0925b3e5666e0b7a69af53
 M e396b806bdf992896781e340e1102f1ea4fdd0c9
 M e4328f8a24dab900448f2e0832b24e729df84f28
 M e4cb2ea437185caa28b95a2344ffa8aa0ba516b7
+M e4da23a719581d5a657b1c4e99fa41a0aca393e5
 M e501d4162b01f22b46afda44f160f3d5617a8a12
 M e578ea946aa13177adef98727e3e4606652ffc76
 M e5833e25c449f4e4b2ffba767a546907ffc173ec

-- 
To stop receiving notification emails like this one, please contact
dkulp@apache.org.

[cxf] 01/02: [CXF-7720] Bunch of issues with case senstive Set-Cookie headers

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dkulp pushed a commit to branch 3.1.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git

commit 7bc22f411fc82c07d33336857aa7476cc0c82c95
Author: Daniel Kulp <dk...@apache.org>
AuthorDate: Thu Apr 26 09:50:31 2018 -0400

    [CXF-7720] Bunch of issues with case senstive Set-Cookie headers
    
    (cherry picked from commit e4da23a719581d5a657b1c4e99fa41a0aca393e5)
---
 .../org/apache/cxf/transport/http/Headers.java     | 39 +++++++++++-----------
 .../org/apache/cxf/systest/jaxrs/BookStore.java    |  4 +--
 2 files changed, 22 insertions(+), 21 deletions(-)

diff --git a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java
index 6ca427a..f2285dd 100644
--- a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java
+++ b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java
@@ -28,11 +28,10 @@ import java.util.Collections;
 import java.util.Date;
 import java.util.Enumeration;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
-import java.util.Set;
+import java.util.Map.Entry;
 import java.util.TimeZone;
 import java.util.TreeMap;
 import java.util.logging.Level;
@@ -74,18 +73,8 @@ public class Headers {
     private static final List<String> SENSITIVE_HEADERS = Arrays.asList("Authorization", "Proxy-Authorization");
     private static final List<Object> SENSITIVE_HEADER_MARKER = Arrays.asList((Object)"***");
     private static final String ALLOW_LOGGING_SENSITIVE_HEADERS = "allow.logging.sensitive.headers";
-    /**
-     * Known HTTP headers whose values have to be represented as individual HTTP headers
-     */
-    private static final Set<String> HTTP_HEADERS_SINGLE_VALUE_ONLY;
-    private static final String USER_AGENT;
-    static {
-        HTTP_HEADERS_SINGLE_VALUE_ONLY = new HashSet<String>();
-        HTTP_HEADERS_SINGLE_VALUE_ONLY.add(HTTP_HEADERS_SETCOOKIE);
-        HTTP_HEADERS_SINGLE_VALUE_ONLY.add(HTTP_HEADERS_LINK);
-        USER_AGENT = initUserAgent();
-    }
-    
+    private static final String USER_AGENT = initUserAgent();
+
     private final Message message;
     private final Map<String, List<String>> headers;
 
@@ -291,10 +280,18 @@ public class Headers {
     public void readFromConnection(HttpURLConnection connection) {
         Map<String, List<String>> origHeaders = connection.getHeaderFields();
         headers.clear();
-        for (String key : connection.getHeaderFields().keySet()) {
-            if (key != null) {
-                headers.put(HttpHeaderHelper.getHeaderKey(key), 
-                    origHeaders.get(key));
+        for (Entry<String, List<String>> entry : origHeaders.entrySet()) {
+            if (entry.getKey() != null) {
+                String key = HttpHeaderHelper.getHeaderKey(entry.getKey());
+                List<String> old = headers.get(key);
+                if (old != null) {
+                    List<String> nl = new ArrayList<>(old.size() + entry.getValue().size()); 
+                    nl.addAll(old);
+                    nl.addAll(entry.getValue());
+                    headers.put(key, nl);
+                } else {
+                    headers.put(key, entry.getValue());
+                }
             }
         }
     }
@@ -505,6 +502,10 @@ public class Headers {
         return true;
     }
 
+    private boolean isSingleHeader(String header) {
+        return HTTP_HEADERS_SETCOOKIE.equalsIgnoreCase(header) || HTTP_HEADERS_LINK.equalsIgnoreCase(header);
+    }
+    
     /**
      * Copy the response headers into the response.
      * 
@@ -525,7 +526,7 @@ public class Headers {
             String header = entry.getKey();
             List<?> headerList = entry.getValue();
 
-            if (addHeaders || HTTP_HEADERS_SINGLE_VALUE_ONLY.contains(header)) {
+            if (addHeaders || isSingleHeader(header)) {
                 for (int i = 0; i < headerList.size(); i++) {
                     Object headerObject = headerList.get(i);
                     if (headerObject != null) {
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java
index 49b173f..86d4149 100644
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java
@@ -529,8 +529,8 @@ public class BookStore {
     @Path("setmanycookies")
     public Response setTwoCookies() {
         return Response.ok().header("Set-Cookie", "JSESSIONID=0475F7F30A26E5B0C15D69; Path=/")
-            .header("Set-Cookie", "COOKIETWO=dummy; Expires=Sat, 20-Nov-2010 19:11:32 GMT; Path=/")
-            .header("Set-Cookie", "COOKIETWO=dummy2; expires=Sat, 20-Nov-2010 19:11:32 GMT; Path=/")
+            .header("Set-cookie", "COOKIETWO=dummy; Expires=Sat, 20-Nov-2010 19:11:32 GMT; Path=/")
+            .header("set-cookie", "COOKIETWO=dummy2; expires=Sat, 20-Nov-2010 19:11:32 GMT; Path=/")
             .build();
     }
     

-- 
To stop receiving notification emails like this one, please contact
dkulp@apache.org.