HttpHeadersImpl.getCookies() only ever returns the first cookie in the Cookie
header
------------------------------------------------------------------------------------
Key: WINK-317
URL: https://issues.apache.org/jira/browse/WINK-317
Project: Wink
Issue Type: Bug
Components: Server
Affects Versions: 1.1.1
Reporter: Chris Francuz
Priority: Minor
org.apache.wink.server.internal.contexts.HttpHeadersImpl.getCookies() iterates
over cookie headers but does not iterate over cookies within the header that
are split by a semicolon. \\
\\
As a result, only 1 cookie is ever returned. This affects using the
javax.ws.rs.core.HttpHeaders interface, as well as the javax.ws.rs.CookieParam
annotation.\\
\\
The fix would be to split the cookie header on the semicolon character, as per
[RFC 2965|http://www.apps.ietf.org/rfc/rfc2965.html]. A fix implementation
would be:
\\
\\
{noformat}
public Map<String, Cookie> getCookies() {
if (cookies == null) {
cookies = new HashMap<String, Cookie>();
List<String> cookiesHeaders = headers.get(HttpHeaders.COOKIE);
if (cookiesHeaders != null) {
for (String cookieHeader : cookiesHeaders) {
if (cookieHeader != null){
for (String cookieText : split(cookieHeader, ';')){
Cookie cookie = Cookie.valueOf(cookieText);
if (cookie != null){
cookies.put(cookie.getName(), cookie);
}
}
}
}
}
}
return cookies;
}
{noformat}
(using org.apache.commons.lang.StringUtils.split() )
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.