mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-20 21:31:28 +02:00
REG-TESTS: map_redirect: Don't use hdr_dom in ACLs with "-m end" matching method
hdr_dom() is a alias of "hdr() -m dom". So using it with another explicit matching method does not work because the matching on the domain will never be performed. Only the last matching method is used. The scripts was working by chance because no port was set on host header values. The script was fixed by using "host_only" converter. In addition, host header values were changed to have a port now.
This commit is contained in:
parent
1868ca9a95
commit
d09d7676d0
@ -6,21 +6,21 @@ feature ignore_unknown_macro
|
||||
server s1 {
|
||||
rxreq
|
||||
expect req.method == "GET"
|
||||
expect req.http.host == "test1.example.com"
|
||||
expect req.http.host == "test1.example.com:1234"
|
||||
txresp -body "test1 ok"
|
||||
} -start
|
||||
|
||||
server s2 {
|
||||
rxreq
|
||||
expect req.method == "GET"
|
||||
expect req.http.host == "test2.example.com"
|
||||
expect req.http.host == "test2.example.com:1234"
|
||||
txresp -body "test2 ok"
|
||||
} -start
|
||||
|
||||
server s3 {
|
||||
rxreq
|
||||
expect req.method == "GET"
|
||||
expect req.http.host == "test3.example.com"
|
||||
expect req.http.host == "test3.example.com:1234"
|
||||
txresp -body "test3 ok"
|
||||
} -start
|
||||
|
||||
@ -60,10 +60,10 @@ haproxy h1 -conf {
|
||||
use_backend %[req.hdr(Host),lower,map_dom(${testdir}/map_redirect-be.map)] if { hdr_dom(Host) -i test1.example.com || hdr_dom(Host) -i test2.example.com }
|
||||
|
||||
# use map to select backend with default value(test3_be)
|
||||
use_backend %[req.hdr(Host),lower,map_dom(${testdir}/map_redirect-be.map,test3_be)] if { hdr_dom(Host) -m end -i example.com }
|
||||
use_backend %[req.hdr(Host),lower,map_dom(${testdir}/map_redirect-be.map,test3_be)] if { hdr(Host),host_only -m end -i example.com }
|
||||
|
||||
# use map(after del map test1.example.com) default value(test4_be)
|
||||
use_backend %[req.hdr(Host),lower,map_dom(${testdir}/map_redirect-be.map,test4_be)] if { hdr_dom(Host) -m end -i example.invalid }
|
||||
use_backend %[req.hdr(Host),lower,map_dom(${testdir}/map_redirect-be.map,test4_be)] if { hdr(Host),host_only -m end -i example.invalid }
|
||||
|
||||
default_backend be1
|
||||
|
||||
@ -139,17 +139,17 @@ client c6 -connect ${h1_fe1_sock} {
|
||||
|
||||
# Check map backend selection
|
||||
client c7 -connect ${h1_fe1_sock} {
|
||||
txreq -hdr "Host: test1.example.com"
|
||||
txreq -hdr "Host: test1.example.com:1234"
|
||||
rxresp
|
||||
expect resp.status == 200
|
||||
expect resp.body == "test1 ok"
|
||||
|
||||
txreq -hdr "Host: test2.example.com"
|
||||
txreq -hdr "Host: test2.example.com:1234"
|
||||
rxresp
|
||||
expect resp.status == 200
|
||||
expect resp.body == "test2 ok"
|
||||
|
||||
txreq -hdr "Host: test3.example.com"
|
||||
txreq -hdr "Host: test3.example.com:1234"
|
||||
rxresp
|
||||
expect resp.status == 200
|
||||
expect resp.body == "test3 ok"
|
||||
|
Loading…
x
Reference in New Issue
Block a user