Refine search
public CookieSpec newInstance(final HttpParams params) { if (params != null) { return new RFC2109Spec( (String []) params.getParameter(CookieSpecPNames.DATE_PATTERNS), params.getBooleanParameter(CookieSpecPNames.SINGLE_COOKIE_HEADER, false)); } else { return new RFC2109Spec(); } }
public List<Cookie> parse(final Header header, final CookieOrigin origin) throws MalformedCookieException { if (header == null) { throw new IllegalArgumentException("Header may not be null"); } if (origin == null) { throw new IllegalArgumentException("Cookie origin may not be null"); } HeaderElement[] elems = header.getElements(); return parse(elems, origin); }
public List<Header> formatCookies(List<Cookie> cookies) { if (cookies == null) { throw new IllegalArgumentException("List of cookies may not be null"); } if (cookies.isEmpty()) { throw new IllegalArgumentException("List of cookies may not be empty"); } if (cookies.size() > 1) { // Create a mutable copy and sort the copy. cookies = new ArrayList<Cookie>(cookies); Collections.sort(cookies, PATH_COMPARATOR); } if (this.oneHeader) { return doFormatOneHeader(cookies); } else { return doFormatManyHeaders(cookies); } }
/** * Return a string suitable for sending in a <tt>"Cookie"</tt> header * as defined in RFC 2109 for backward compatibility with cookie version 0 * @param buffer The char array buffer to use for output * @param cookie The {@link Cookie} to be formatted as string * @param version The version to use. */ protected void formatCookieAsVer(final CharArrayBuffer buffer, final Cookie cookie, int version) { formatParamAsVer(buffer, cookie.getName(), cookie.getValue(), version); if (cookie.getPath() != null) { if (cookie instanceof ClientCookie && ((ClientCookie) cookie).containsAttribute(ClientCookie.PATH_ATTR)) { buffer.append("; "); formatParamAsVer(buffer, "$Path", cookie.getPath(), version); } } if (cookie.getDomain() != null) { if (cookie instanceof ClientCookie && ((ClientCookie) cookie).containsAttribute(ClientCookie.DOMAIN_ATTR)) { buffer.append("; "); formatParamAsVer(buffer, "$Domain", cookie.getDomain(), version); } } }
private List<Header> doFormatManyHeaders(final List<Cookie> cookies) { List<Header> headers = new ArrayList<Header>(cookies.size()); for (Cookie cookie : cookies) { int version = cookie.getVersion(); CharArrayBuffer buffer = new CharArrayBuffer(40); buffer.append("Cookie: "); buffer.append("$Version="); buffer.append(Integer.toString(version)); buffer.append("; "); formatCookieAsVer(buffer, cookie, version); headers.add(new BufferedHeader(buffer)); } return headers; }
@Override public List<Header> formatCookies(final List<Cookie> cookies) { Args.notNull(cookies, "List of cookies"); int version = Integer.MAX_VALUE; boolean isSetCookie2 = true; for (final Cookie cookie: cookies) { if (!(cookie instanceof SetCookie2)) { isSetCookie2 = false; } if (cookie.getVersion() < version) { version = cookie.getVersion(); } } if (version > 0) { if (isSetCookie2) { return strict.formatCookies(cookies); } else { return obsoleteStrict.formatCookies(cookies); } } else { return netscapeDraft.formatCookies(cookies); } }
@Override public boolean match(final Cookie cookie, final CookieOrigin origin) { Args.notNull(cookie, "Cookie"); Args.notNull(origin, "Cookie origin"); if (cookie.getVersion() > 0) { if (cookie instanceof SetCookie2) { return strict.match(cookie, origin); } else { return obsoleteStrict.match(cookie, origin); } } else { return netscapeDraft.match(cookie, origin); } }
@Override public List<Cookie> parse(final Header header, final CookieOrigin origin) throws MalformedCookieException { Args.notNull(header, "Header"); Args.notNull(origin, "Cookie origin"); if (!header.getName().equalsIgnoreCase(SM.SET_COOKIE)) { throw new MalformedCookieException("Unrecognized cookie header '" + header.toString() + "'"); } final HeaderElement[] elems = header.getElements(); return parse(elems, origin); }
@Override public void validate( final Cookie cookie, final CookieOrigin origin) throws MalformedCookieException { Args.notNull(cookie, "Cookie"); Args.notNull(origin, "Cookie origin"); if (cookie.getVersion() > 0) { if (cookie instanceof SetCookie2) { strict.validate(cookie, origin); } else { obsoleteStrict.validate(cookie, origin); } } else { netscapeDraft.validate(cookie, origin); } }
/** * Adds valid Port attribute value, e.g. "8000,8001,8002" */ @Override protected void formatCookieAsVer(final CharArrayBuffer buffer, final Cookie cookie, int version) { super.formatCookieAsVer(buffer, cookie, version); // format port attribute if (cookie instanceof ClientCookie) { // Test if the port attribute as set by the origin server is not blank String s = ((ClientCookie) cookie).getAttribute(ClientCookie.PORT_ATTR); if (s != null) { buffer.append("; $Port"); buffer.append("=\""); if (s.trim().length() > 0) { int[] ports = cookie.getPorts(); if (ports != null) { for (int i = 0, len = ports.length; i < len; i++) { if (i > 0) { buffer.append(","); } buffer.append(Integer.toString(ports[i])); } } } buffer.append("\""); } } }
public List<Header> formatCookies(final List<Cookie> cookies) { Args.notEmpty(cookies, "List of cookies"); List<Cookie> cookieList; if (cookies.size() > 1) { // Create a mutable copy and sort the copy. cookieList = new ArrayList<Cookie>(cookies); Collections.sort(cookieList, PATH_COMPARATOR); } else { cookieList = cookies; } if (this.oneHeader) { return doFormatOneHeader(cookieList); } else { return doFormatManyHeaders(cookieList); } }
public static void sync(String url) { List<Cookie> cookies=null; CookieManager cookieManager = CookieManager.getInstance(); if (cookieManager == null) return; RFC2109Spec cookieSpec = new RFC2109Spec(); String rawCookieHeader = null; try { URL parsedURL = new URL(url); rawCookieHeader = cookieManager.getCookie(parsedURL.getHost()); if (rawCookieHeader == null) return; int port = parsedURL.getPort() == -1 ? parsedURL.getDefaultPort() : parsedURL.getPort(); CookieOrigin cookieOrigin = new CookieOrigin(parsedURL.getHost(), port, "/", false); cookies = cookieSpec.parse(new BasicHeader("set-cookie", rawCookieHeader), cookieOrigin); System.out.println("Session Cookis : " + cookies); } catch (Exception e) { } }
@Override public void validate(final Cookie cookie, CookieOrigin origin) throws MalformedCookieException { if (cookie == null) { throw new IllegalArgumentException("Cookie may not be null"); } if (origin == null) { throw new IllegalArgumentException("Cookie origin may not be null"); } origin = adjustEffectiveHost(origin); super.validate(cookie, origin); }
@Override public boolean match(final Cookie cookie, CookieOrigin origin) { if (cookie == null) { throw new IllegalArgumentException("Cookie may not be null"); } if (origin == null) { throw new IllegalArgumentException("Cookie origin may not be null"); } origin = adjustEffectiveHost(origin); return super.match(cookie, origin); }
/** Default constructor */ public RFC2109Spec(final String[] datepatterns, boolean oneHeader) { super(); if (datepatterns != null) { this.datepatterns = datepatterns.clone(); } else { this.datepatterns = DATE_PATTERNS; } this.oneHeader = oneHeader; registerAttribHandler(ClientCookie.VERSION_ATTR, new RFC2109VersionHandler()); registerAttribHandler(ClientCookie.PATH_ATTR, new BasicPathHandler()); registerAttribHandler(ClientCookie.DOMAIN_ATTR, new RFC2109DomainHandler()); registerAttribHandler(ClientCookie.MAX_AGE_ATTR, new BasicMaxAgeHandler()); registerAttribHandler(ClientCookie.SECURE_ATTR, new BasicSecureHandler()); registerAttribHandler(ClientCookie.COMMENT_ATTR, new BasicCommentHandler()); registerAttribHandler(ClientCookie.EXPIRES_ATTR, new BasicExpiresHandler( this.datepatterns)); }
/** * Return a string suitable for sending in a {@code "Cookie"} header * as defined in RFC 2109 for backward compatibility with cookie version 0 * @param buffer The char array buffer to use for output * @param cookie The {@link Cookie} to be formatted as string * @param version The version to use. */ protected void formatCookieAsVer(final CharArrayBuffer buffer, final Cookie cookie, final int version) { formatParamAsVer(buffer, cookie.getName(), cookie.getValue(), version); if (cookie.getPath() != null) { if (cookie instanceof ClientCookie && ((ClientCookie) cookie).containsAttribute(ClientCookie.PATH_ATTR)) { buffer.append("; "); formatParamAsVer(buffer, "$Path", cookie.getPath(), version); } } if (cookie.getDomain() != null) { if (cookie instanceof ClientCookie && ((ClientCookie) cookie).containsAttribute(ClientCookie.DOMAIN_ATTR)) { buffer.append("; "); formatParamAsVer(buffer, "$Domain", cookie.getDomain(), version); } } }
private List<Header> doFormatOneHeader(final List<Cookie> cookies) { int version = Integer.MAX_VALUE; // Pick the lowest common denominator for (Cookie cookie : cookies) { if (cookie.getVersion() < version) { version = cookie.getVersion(); } } CharArrayBuffer buffer = new CharArrayBuffer(40 * cookies.size()); buffer.append(SM.COOKIE); buffer.append(": "); buffer.append("$Version="); buffer.append(Integer.toString(version)); for (Cookie cooky : cookies) { buffer.append("; "); Cookie cookie = cooky; formatCookieAsVer(buffer, cookie, version); } List<Header> headers = new ArrayList<Header>(1); headers.add(new BufferedHeader(buffer)); return headers; }
@Override public List<Header> formatCookies(final List<Cookie> cookies) { Args.notNull(cookies, "List of cookies"); int version = Integer.MAX_VALUE; boolean isSetCookie2 = true; for (final Cookie cookie: cookies) { if (!(cookie instanceof SetCookie2)) { isSetCookie2 = false; } if (cookie.getVersion() < version) { version = cookie.getVersion(); } } if (version > 0) { if (isSetCookie2) { return strict.formatCookies(cookies); } else { return obsoleteStrict.formatCookies(cookies); } } else { return netscapeDraft.formatCookies(cookies); } }