Top Description Fields Constructors Methods
io.undertow.util

public Class Cookies

extends Object
Class Inheritance
Imports
io.undertow.UndertowLogger, .UndertowMessages, io.undertow.server.handlers.Cookie, .CookieImpl, java.util.Arrays, .Collections, .HashMap, .HashSet, .List, .Map, .Set, .TreeMap

Class that contains utility methods for dealing with cookies.
Authors
Stuart Douglas, Andre Dietisheim, Richard Opalka

Field Summary

Modifier and TypeField and Description
private static final String
private static final String
private static final Boolean
public static final String
public static final String
public static final String

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static void
assembleCrumbs(final HeaderMap headerMap)

Cookie headers form: https://www.rfc-editor.org/rfc/rfc6265#section-4.2.1 If more than one header entry exist for "Cookie", it will be assembled into one that conforms to rfc.

private static int
createCookie(final String name, final String value, int maxCookies, int cookieCount, final Map<String, String> cookies, final Map<String, String> additional)

public static void
disperseCrumbs(final HeaderMap headerMap)

IF there is single entry that follows RFC separation rules, it will be turned into singular fields.

public static List<String>
getCrumbs(final HeaderMap headerMap)

Fetch list containing crumbs( singular entries of Cookie header )

private static void
handleValue(CookieImpl cookie, String key, String value)

public static boolean
private static void
parseCookie(final String cookie, final Set<Cookie> parsedCookies, int maxCookies, boolean allowEqualInValue, boolean commaIsSeperator, boolean allowHttpSepartorsV0)

public static Map<String, Cookie>

Returns:

A pared cookie map
parseRequestCookies
(int
The maximum number of cookies. Used to prevent hash collision attacks
maxCookies
,
boolean
if true equal characters are allowed in cookie values
allowEqualInValue
,
List<String>
The cookie values to parse
cookies
)
Deprecated for removal since 2.2.0. use parseRequestCookies(int, boolean, List, Set) instead

/** Parses the cookies from a list of "Cookie:" header values.

public static void
parseRequestCookies(int maxCookies, boolean allowEqualInValue, List<String> cookies, Set<Cookie> parsedCookies)

pack-priv static Map<String, Cookie>
parseRequestCookies(int maxCookies, boolean allowEqualInValue, List<String> cookies, boolean commaIsSeperator)
Deprecated

pack-priv static void
parseRequestCookies(int maxCookies, boolean allowEqualInValue, List<String> cookies, Set<Cookie> parsedCookies, boolean commaIsSeperator)

pack-priv static Map<String, Cookie>
parseRequestCookies(int maxCookies, boolean allowEqualInValue, List<String> cookies, boolean commaIsSeperator, boolean allowHttpSepartorsV0)

pack-priv static void
parseRequestCookies(int maxCookies, boolean allowEqualInValue, List<String> cookies, Set<Cookie> parsedCookies, boolean commaIsSeperator, boolean allowHttpSepartorsV0)

public static Cookie

Returns:

The cookie
parseSetCookieHeader
(final String
The header value
headerValue
)

Parses a "Set-Cookie:" response header value into its cookie representation.

private static String
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

CRUMB_SEPARATORback to summary
private static final String CRUMB_SEPARATOR
CRUMBS_ASSEMBLY_DISABLEback to summary
private static final String CRUMBS_ASSEMBLY_DISABLE
CRUMBS_ASSEMBLY_DISABLEDback to summary
private static final Boolean CRUMBS_ASSEMBLY_DISABLED
DOMAINback to summary
public static final String DOMAIN
PATHback to summary
public static final String PATH
VERSIONback to summary
public static final String VERSION

Constructor Detail

Cookiesback to summary
private Cookies()

Method Detail

assembleCrumbsback to summary
public static void assembleCrumbs(final HeaderMap headerMap)

Cookie headers form: https://www.rfc-editor.org/rfc/rfc6265#section-4.2.1 If more than one header entry exist for "Cookie", it will be assembled into one that conforms to rfc.

createCookieback to summary
private static int createCookie(final String name, final String value, int maxCookies, int cookieCount, final Map<String, String> cookies, final Map<String, String> additional)
disperseCrumbsback to summary
public static void disperseCrumbs(final HeaderMap headerMap)

IF there is single entry that follows RFC separation rules, it will be turned into singular fields. This should be only used PRIOR to compression.

getCrumbsback to summary
public static List<String> getCrumbs(final HeaderMap headerMap)

Fetch list containing crumbs( singular entries of Cookie header )

handleValueback to summary
private static void handleValue(CookieImpl cookie, String key, String value)
isCrumbsAssemplyDisabledback to summary
public static boolean isCrumbsAssemplyDisabled()
parseCookieback to summary
private static void parseCookie(final String cookie, final Set<Cookie> parsedCookies, int maxCookies, boolean allowEqualInValue, boolean commaIsSeperator, boolean allowHttpSepartorsV0)
parseRequestCookiesback to summary
public static Map<String, Cookie> parseRequestCookies(int maxCookies, boolean allowEqualInValue, List<String> cookies)

Deprecated

for removal since 2.2.0.

use parseRequestCookies(int, boolean, List, Set) instead

/** Parses the cookies from a list of "Cookie:" header values. The cookie header values are parsed according to RFC2109 that defines the following syntax:


cookie          =  "Cookie:" cookie-version
                   1*((";" | ",") cookie-value)
cookie-value    =  NAME "=" VALUE [";" path] [";" domain]
cookie-version  =  "$Version" "=" value
NAME            =  attr
VALUE           =  value
path            =  "$Path" "=" value
domain          =  "$Domain" "=" value

Parameters
maxCookies:int

The maximum number of cookies. Used to prevent hash collision attacks

allowEqualInValue:boolean

if true equal characters are allowed in cookie values

cookies:List<String>

The cookie values to parse

Returns:Map<String, Cookie>

A pared cookie map

Annotations
@Deprecated
since:2.2.0
forRemoval:true
See Also
Cookie, rfc2109
parseRequestCookiesback to summary
public static void parseRequestCookies(int maxCookies, boolean allowEqualInValue, List<String> cookies, Set<Cookie> parsedCookies)
parseRequestCookiesback to summary
pack-priv static Map<String, Cookie> parseRequestCookies(int maxCookies, boolean allowEqualInValue, List<String> cookies, boolean commaIsSeperator)

Deprecated

Annotations
@Deprecated
parseRequestCookiesback to summary
pack-priv static void parseRequestCookies(int maxCookies, boolean allowEqualInValue, List<String> cookies, Set<Cookie> parsedCookies, boolean commaIsSeperator)
parseRequestCookiesback to summary
pack-priv static Map<String, Cookie> parseRequestCookies(int maxCookies, boolean allowEqualInValue, List<String> cookies, boolean commaIsSeperator, boolean allowHttpSepartorsV0)
parseRequestCookiesback to summary
pack-priv static void parseRequestCookies(int maxCookies, boolean allowEqualInValue, List<String> cookies, Set<Cookie> parsedCookies, boolean commaIsSeperator, boolean allowHttpSepartorsV0)
parseSetCookieHeaderback to summary
public static Cookie parseSetCookieHeader(final String headerValue)

Parses a "Set-Cookie:" response header value into its cookie representation. The header value is parsed according to the syntax that's defined in RFC2109:


 set-cookie      =       "Set-Cookie:" cookies
  cookies         =       1#cookie
  cookie          =       NAME "=" VALUE *(";" cookie-av)
  NAME            =       attr
  VALUE           =       value
  cookie-av       =       "Comment" "=" value
                  |       "Domain" "=" value
                  |       "Max-Age" "=" value
                  |       "Path" "=" value
                  |       "Secure"
                  |       "Version" "=" 1*DIGIT


Parameters
headerValue:String

The header value

Returns:Cookie

The cookie

See Also
Cookie, rfc2109
unescapeDoubleQuotesback to summary
private static String unescapeDoubleQuotes(final String value)