blob: 3ea16acc0ed39c297ec3bda3307d85b68f14e8e7 [file] [log] [blame]
Frédéric Lécaillec11ec4a2018-12-14 20:07:57 +01001varnishtest "HTTP cookie basic test"
2feature ignore_unknown_macro
3
4# This script tests "cookie <name> insert indirect" directive.
5# The client sends a wrong "SRVID=s2" cookie.
6# haproxy removes it.
7# The server replies with "SRVID=S1" after having checked that
8# no cookies were sent by haproxy.
9# haproxy replies "SRVID=server-one" to the client.
10# We log the HTTP request to a syslog server and check their "--II"
11# (invalid, insert) flags.
12
13syslog S1 -level notice {
14 recv
15 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy (fe|be)1 started."
16 recv
17 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy (fe|be)1 started."
18 recv info
19 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: .* fe1 be1/srv1 .* --II .* \"GET / HTTP/1\\.1\""
20} -start
21
22server s1 {
23 rxreq
24 expect req.http.cookie == <undef>
25 txresp -hdr "Cookie: SRVID=S1"
26} -start
27
28haproxy h1 -conf {
29 global
30 log ${S1_addr}:${S1_port} len 2048 local0 debug err
31
32 defaults
33 mode http
34 option httplog
35 timeout client 1s
36 timeout server 1s
37 timeout connect 1s
38 log global
39
40 backend be1
41 cookie SRVID insert indirect
42 server srv1 ${s1_addr}:${s1_port} cookie server-one
43
44 frontend fe1
45 option httplog
46 bind "fd@${fe1}"
47 use_backend be1
48} -start
49
50client c1 -connect ${h1_fe1_sock} {
51 txreq -hdr "Cookie: SRVID=s2"
52 rxresp
53 expect resp.http.Set-Cookie ~ "^SRVID=server-one;.*"
54} -start
55
56
57client c1 -wait
58syslog S1 -wait