Пример #1
0
$_SERVER['HTTP_X_FORWARDED_PROTO'] = 'https';
$t->is($request->getUriPrefix(), 'https://symfony-project.org:8043', '->getUriPrefix() uses the configured port on secure requests forwarded as non-secure requests');
$request->resetPathInfoArray();
// ->getRemoteAddress()
$t->diag('->getRemoteAddress()');
$_SERVER['REMOTE_ADDR'] = '127.0.0.1';
$t->is($request->getRemoteAddress(), '127.0.0.1', '->getRemoteAddress() returns the remote address');
// ->getForwardedFor()
$t->diag('->getForwardedFor()');
$t->is($request->getForwardedFor(), null, '->getForwardedFor() returns null if the request was not forwarded.');
$_SERVER['HTTP_X_FORWARDED_FOR'] = '10.0.0.1, 10.0.0.2';
$t->is_deeply($request->getForwardedFor(), array('10.0.0.1', '10.0.0.2'), '->getForwardedFor() returns the value from HTTP_X_FORWARDED_FOR');
// ->getClientIp()
$t->diag('->getClientIp()');
$_SERVER['HTTP_CLIENT_IP'] = '127.1.1.1';
$t->is($request->getClientIp(), '127.1.1.1', '->getClientIp() returns the value from HTTP_CLIENT_IP if it exists');
unset($_SERVER['HTTP_CLIENT_IP']);
$_SERVER['HTTP_X_FORWARDED_FOR'] = '10.0.0.1, 10.0.0.2';
$t->is($request->getClientIp(), '10.0.0.1', '->getClientIp() returns the first HTTP_X_FORWARDED_FOR if it exists');
unset($_SERVER['HTTP_X_FORWARDED_FOR']);
$_SERVER['HTTP_CLIENT_IP'] = '127.1.1.1';
$t->is($request->getClientIp(false), '127.0.0.1', '->getClientIp() returns the remote address even if HTTP_CLIENT_IP exists when "proxy" argument is set to false');
unset($_SERVER['HTTP_CLIENT_IP']);
$_SERVER['HTTP_X_FORWARDED_FOR'] = '10.0.0.1, 10.0.0.2';
$t->is($request->getClientIp(false), '127.0.0.1', '->getClientIp() returns the remote address even if HTTP_X_FORWARDED_FOR exists when "proxy" argument is set to false');
unset($_SERVER['HTTP_X_FORWARDED_FOR']);
$t->is($request->getClientIp(false), '127.0.0.1', '->getClientIp() returns remote address by default');
$request->setOption('trust_proxy', false);
$_SERVER['HTTP_X_FORWARDED_FOR'] = '10.0.0.1, 10.0.0.2';
$t->is($request->getClientIp(), '127.0.0.1', '->getClientIp() returns the remote address even if HTTP_X_FORWARDED_FOR exists when "trust_proxy" is set ot false');
$request->setOption('trust_proxy', true);