2 Star 0 Fork 0

mirrors_nginx/nginx-tests

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
proxy_cookie.t 3.31 KB
一键复制 编辑 原始数据 按行查看 历史
#!/usr/bin/perl
# (C) Maxim Dounin
# (C) Valentin Bartenev
# Tests for the proxy_cookie_domain and proxy_cookie_path directives.
###############################################################################
use warnings;
use strict;
use Test::More;
BEGIN { use FindBin; chdir($FindBin::Bin); }
use lib 'lib';
use Test::Nginx;
###############################################################################
select STDERR; $| = 1;
select STDOUT; $| = 1;
my $t = Test::Nginx->new()->has(qw/http proxy rewrite/);
$t->write_file_expand('nginx.conf', <<'EOF');
%%TEST_GLOBALS%%
daemon off;
events {
}
http {
%%TEST_GLOBALS_HTTP%%
server {
listen 127.0.0.1:8080;
server_name localhost;
location / {
proxy_pass http://127.0.0.1:8081;
proxy_cookie_domain www.example.org .example.com;
proxy_cookie_domain .$server_name.com en.$server_name.org;
proxy_cookie_domain ~^(.+)\.com$ $1.org;
proxy_cookie_path /path/ /new/;
proxy_cookie_path /$server_name/ /new/$server_name/;
proxy_cookie_path ~^/regex/(.+)$ /$1;
proxy_cookie_path ~*^/caseless/(.+)$ /$1;
location /off/ {
proxy_pass http://127.0.0.1:8081;
proxy_cookie_domain off;
proxy_cookie_path off;
}
}
}
server {
listen 127.0.0.1:8081;
server_name localhost;
location / {
if ($arg_domain) {
set $sc_domain "; Domain=$arg_domain";
}
if ($arg_path) {
set $sc_path "; Path=$arg_path";
}
add_header Set-Cookie v=path=domain=$sc_domain$sc_path;
return 200 OK;
}
}
}
EOF
$t->run()->plan(9);
###############################################################################
my $port = port(8080);
is(http_get_set_cookie('/?domain=www.Example.org'),
'v=path=domain=; Domain=example.com', 'domain rewrite');
is(http_get_set_cookie('/?domain=.LocalHost.com'),
'v=path=domain=; Domain=.en.localhost.org',
'domain rewrite with vars');
is(http_get_set_cookie('/?domain=www.example.COM'),
'v=path=domain=; Domain=www.example.org', 'domain regex rewrite');
is(http_get_set_cookie('/?path=/path/test.html'),
'v=path=domain=; Path=/new/test.html', 'path rewrite');
is(http_get_set_cookie('/?path=/localhost/test.html'),
'v=path=domain=; Path=/new/localhost/test.html',
'path rewrite with vars');
is(http_get_set_cookie('/?path=/regex/test.html'),
'v=path=domain=; Path=/test.html', 'path regex rewrite');
is(http_get_set_cookie('/?path=/CASEless/test.html'),
'v=path=domain=; Path=/test.html', 'path caseless regex rewrite');
is(http_get_set_cookie('/?domain=www.example.org&path=/path/test.html'),
'v=path=domain=; Domain=example.com; Path=/new/test.html',
'domain and path rewrite');
is(http_get_set_cookie('/off/?domain=www.example.org&path=/path/test.html'),
'v=path=domain=; Domain=www.example.org; Path=/path/test.html',
'domain and path rewrite off');
###############################################################################
sub http_get_set_cookie {
my ($uri) = @_;
http_get("http://127.0.0.1:$port$uri") =~ /^Set-Cookie:\s(.+?)\x0d?$/mi;
return $1;
}
###############################################################################
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/mirrors_nginx/nginx-tests.git
git@gitee.com:mirrors_nginx/nginx-tests.git
mirrors_nginx
nginx-tests
nginx-tests
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385