You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ff...@apache.org on 2016/01/14 10:23:56 UTC

cxf git commit: [CXF-6748]the qop, nc, algorithm parameter in http auth header must not be enclosed between doble quotation

Repository: cxf
Updated Branches:
  refs/heads/master f17f92319 -> bf4f4c89b


[CXF-6748]the qop,nc,algorithm parameter in http auth header must not be enclosed between doble quotation


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/bf4f4c89
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/bf4f4c89
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/bf4f4c89

Branch: refs/heads/master
Commit: bf4f4c89b61640faa41dbac68cf591cb923eb144
Parents: f17f923
Author: Freeman Fang <fr...@gmail.com>
Authored: Thu Jan 14 17:23:43 2016 +0800
Committer: Freeman Fang <fr...@gmail.com>
Committed: Thu Jan 14 17:23:43 2016 +0800

----------------------------------------------------------------------
 .../cxf/transport/http/auth/HttpAuthHeader.java | 26 +++++++++++++++++---
 1 file changed, 23 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/bf4f4c89/rt/transports/http/src/main/java/org/apache/cxf/transport/http/auth/HttpAuthHeader.java
----------------------------------------------------------------------
diff --git a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/auth/HttpAuthHeader.java b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/auth/HttpAuthHeader.java
index f9e96d9..0b331ed 100644
--- a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/auth/HttpAuthHeader.java
+++ b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/auth/HttpAuthHeader.java
@@ -84,7 +84,13 @@ public final class HttpAuthHeader {
                 if (!first) {
                     builder.append(", ");
                 }
-                builder.append(entry.getKey() + "=\"" + param + "\"");
+                if (entry.getKey().equals("nc") 
+                    || entry.getKey().equals("qop")
+                    || entry.getKey().equals("algorithm")) {
+                    builder.append(entry.getKey() + "=" + param + "");
+                } else {
+                    builder.append(entry.getKey() + "=\"" + param + "\"");
+                }
                 first = false;
             }
         }
@@ -99,14 +105,28 @@ public final class HttpAuthHeader {
             tok.quoteChar('\'');
             tok.whitespaceChars('=', '=');
             tok.whitespaceChars(',', ',');
-            
+
             while (tok.nextToken() != StreamTokenizer.TT_EOF) {
                 String key = tok.sval;
                 if (tok.nextToken() == StreamTokenizer.TT_EOF) {
                     map.put(key, null);
                     return map;
                 }
-                String value = tok.sval;
+                String value = null;
+                if ("nc".equals(key)) {
+                    //nc is a 8 length HEX number so need get it as number
+                    value = String.valueOf(tok.nval);
+                    if (value.indexOf(".") > 0) {
+                        value = value.substring(0, value.indexOf("."));
+                    }
+                    String pad = "";
+                    for (int i = 0; i < 8 - value.length(); i++) {
+                        pad = pad + "0";
+                    }
+                    value = pad + value;
+                } else {
+                    value = tok.sval;
+                }
                 map.put(key, value);
             }
         } catch (IOException ex) {