(:
: the list of cookies from the request in the form:
:
: {value}
:)
define variable $cookies {
let $cookies := xdmp:get-request-header("Cookie", ""),
$cookie-list := if ($cookies) then tokenize($cookies, "; *") else ()
return
if ($cookie-list)
then
for $c in $cookie-list return
{
substring-after($c, "=")
}
else
()
}
(:
: return the value for cookie named $name
:)
define function get-cookie($name)
{
$cookies[@name = $name]/text()
}
(:
: set a cookie
:)
define function set-cookie($name, $value)
{
xdmp:add-response-header("Set-Cookie",
concat($name, "=", $value, "; Version=1; Max-Age=31536000"))
}
(:
: unset a cookie
:)
define function unset-cookie($name)
{
xdmp:add-response-header("Set-Cookie",
concat($name,
'=""; Version=1; Max-Age=0; Expires=Sun, 01-Jan-1900 00:00:00 GMT'))
}
xdmp:set-session-field("aField", "bananas"),
xdmp:set-session-field("anotherField", "coconuts"),
set-cookie("aCookie", "oreo"),
set-cookie("anotherCookie", "milano"),
unset-cookie("cookie"),
unset-cookie("xxx"),
The cookies
- cookie-list: {
for $c in $cookies
return concat($c/@name, ":", $c/text(), " ")
}
- SessionID: {get-cookie("SessionID")}
- cookie: {get-cookie("cookie")}
- bad-cookie: {get-cookie("bad-cookie")}
- cookie[1]/text(): { $cookies[1]/text() }
- cookie[2]: { xdmp:quote($cookies[2]) }
Session stuff
- session field names: { xdmp:get-session-field-names() }
- session field values: {
for $f in xdmp:get-session-field-names() return xdmp:get-session-field($f)
}