in common/src/main/java/org/apache/asyncweb/common/DefaultHttpRequest.java [63:142]
public void setCookies(String headerValue) {
clearCookies();
int version = -1; // -1 means version is not parsed yet.
int fieldIdx = 0;
MutableCookie currentCookie = null;
StringTokenizer tk = new StringTokenizer(headerValue, ";,");
while (tk.hasMoreTokens()) {
String pair = tk.nextToken();
String key;
String value;
int equalsPos = pair.indexOf('=');
if (equalsPos >= 0) {
key = pair.substring(0, equalsPos).trim();
value = pair.substring(equalsPos + 1).trim();
} else {
key = pair.trim();
value = "";
}
if (version < 0) {
if (!key.equalsIgnoreCase("$Version")) {
// $Version is not specified. Use the default (0).
version = 0;
} else {
version = Integer.parseInt(value);
if (version != 0 && version != 1) {
throw new IllegalArgumentException("Invalid version: "
+ version + " (" + headerValue + ")");
}
}
}
if (version >= 0) {
try {
switch (fieldIdx) {
case 1:
if (key.equalsIgnoreCase("$Path")) {
currentCookie.setPath(value);
fieldIdx++;
} else {
fieldIdx = 0;
}
break;
case 2:
if (key.equalsIgnoreCase("$Domain")) {
currentCookie.setDomain(value);
fieldIdx++;
} else {
fieldIdx = 0;
}
break;
case 3:
if (key.equalsIgnoreCase("$Port")) {
// Ignoring for now
fieldIdx++;
} else {
fieldIdx = 0;
}
break;
}
} catch (NullPointerException e) {
throw new IllegalArgumentException(
"Cookie key-value pair not found (" + headerValue
+ ")");
}
if (fieldIdx == 0) {
currentCookie = new DefaultCookie(key);
currentCookie.setVersion(version);
currentCookie.setValue(value);
addCookie(currentCookie);
fieldIdx++;
}
}
}
}