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) {