Cookie commands
Part of the HTTP class, Cookie commands manipulate cookie operation:
HTTP:cookie_list() — Returns a list of cookies: their names and values.
HTTP:cookie(t) — Allows you to get/set cookie value and cookie attribute, remove a whole cookie, get the whole cookie in HTTP_RESPONSE, and insert a new cookie.
HTTP:cookie_crypto(t) — The provided function response_encrypt_cookie can be used to perform cookie encryption in HTTP_RESPONSE and request_decrypt_cookie can be used to perform cookie decryption in HTTP_REQUEST.
HTTP:cookie_list()
Returns a list of cookies: their names and values.
Syntax
HTTP:cookie_list();
Arguments
N/A
Example
when HTTP_REQUEST {
ret=HTTP:cookie_list()
for k,v in pairs(ret) do
debug("cookie name %s, value %s\n", k,v);
end
}
FortiADC version: before V5.0
Used in events: HTTP_REQUEST / HTTP_RESPONSE
HTTP:cookie(t)
Allows you to get/set cookie value and cookie attribute, remove a whole cookie, get the whole cookie in HTTP_RESPONSE, and insert a new cookie.
Syntax
HTTP:cookie(t);
t = {}
t[“name”] = “name”
t[“parameter”] = {can be value, cookie, path, domain, expires, secure, maxage, max-age, httponly, version, port, attrname }
t[“value”] = value
t[“case_sensitive”] = {0 or 1}
t[“action”] = {can be get, set, remove, insert}
ret = HTTP:cookie(t) --return is true if succeed or false if failed
Arguments
| Name | Description |
|---|---|
|
t |
A table which specifies cookie name, parameter, action. |
Example
when HTTP_REQUEST {
t={};
t["name"]="test"
t["parameter"]="value";--value, cookie, path, domain, expires, secure, maxage, max-age, httponly, version, port, attrname,
t["action"]="get"--get, set, remove, insert
ret = HTTP:cookie(t)
if ret then
debug("get cookie value succeed %s\n",ret);
else
debug("get cookie value failed\n");
end
}
Note:
-
name: specify cookie name
-
parameter: specify cookie value and attribute, including value, cookie, path, domain, expires, secure, maxage, max-age, httponly, version, port
-
action: can be get, set, remove, insert
FortiADC version: before V5.0
Used in events: HTTP_REQUEST / HTTP_RESPONSE
HTTP:cookie_crypto(t)
The provided function response_encrypt_cookie can be used to perform cookie encryption in HTTP_RESPONSE and request_decrypt_cookie can be used to perform cookie decryption in HTTP_REQUEST.
Syntax
HTTP:cookie_crypto(t);
Arguments
| Name | Description |
|---|---|
|
t |
A table which specifies cookie name, parameter, action. |
Example
when HTTP_REQUEST {
--encrypt cookie "test" in HTTP REQUEST before forwarding to real servers
local t={};
t["name"]="cookiename"
t["action"]="encrypt" --encrypt, or decrypt
t["key"]="0123456789ABCDEF";
t["prefix"]="XXXX";
t["size"]=size-- 128, 192, or 256, the corresponding key length is 16, 24, and 32
if HTTP:cookie_crypto(t) then
debug("Encrypt cookie succeed\n");
else
debug("Encrypt cookie failed\n");
end
}
Note:
- name: specify cookie name
- action: can be encrypt, or decrypt
- size: can be 128, 192, or 256, the corresponding key length is 16, 24, and 32
FortiADC version: before V5.2
Used in events: HTTP_REQUEST / HTTP_RESPONSE