Menu

#4 Version 1 cookies being eaten by the code

v1.0_(example)
open
nobody
5
2003-06-11
2003-06-11
Anonymous
No

Does not pick version 1 and version 2 cookies
The simple use case doesn't work'

The code below DOES NOT get version 1 and version 0
cookies. Instead it overwrites the version 0 cookie
header with the version 1, therfore missing all the
version 1 cookies

public Header getCookieHeaders(CookieJar cj)
{
if(cj == null)
{
throw new IllegalArgumentException("Null CookieJar");
}

    if\(cj.isEmpty\(\)\)
    \{
        return\(null\);
    \}

    CookieJar eligibleV1Cookies =

sortCookiesByPathSpecificity(cj.getVersionCookies("1"));
CookieJar eligibleV0Cookies =
sortCookiesByPathSpecificity(cj.getVersionCookies("0"));

    Header headers = new Header\(\);
    headers.add\("Cookie2","1"\);

    StringBuffer sb;
    boolean bFirstElement;
    Iterator iter;

    if\(\!eligibleV1Cookies.isEmpty\(\)\)
    \{
        sb = new StringBuffer\(\);
        bFirstElement = true;
        iter = eligibleV1Cookies.iterator\(\);

        while\(iter.hasNext\(\)\)
        \{
            if\(bFirstElement\)
            \{
                sb.append\(toCookieHeaderForm\(\(Cookie\) iter.next\(\),

true));
bFirstElement = false;
}
else
{
sb.append(toCookieHeaderForm((Cookie) iter.next(),
false));
}

            sb.append\(";"\);
        \}

        sb.deleteCharAt\(sb.length\(\)-1\);
        headers.add\("Cookie",sb.toString\(\)\);
    \}

Discussion


Log in to post a comment.