The WebProcessor now forwards the client IP
This commit is contained in:
parent
baf35cf3c0
commit
e740852937
@ -32,6 +32,7 @@ class WebProcessor extends BaseWebProcessor
|
|||||||
{
|
{
|
||||||
if (HttpKernelInterface::MASTER_REQUEST === $event->getRequestType()) {
|
if (HttpKernelInterface::MASTER_REQUEST === $event->getRequestType()) {
|
||||||
$this->serverData = $event->getRequest()->server->all();
|
$this->serverData = $event->getRequest()->server->all();
|
||||||
|
$this->serverData['REMOTE_ADDR'] = $event->getRequest()->getClientIp();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,6 +34,23 @@ class WebProcessorTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->assertEquals($server['HTTP_REFERER'], $record['extra']['referrer']);
|
$this->assertEquals($server['HTTP_REFERER'], $record['extra']['referrer']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testUseRequestClientIp()
|
||||||
|
{
|
||||||
|
Request::setTrustedProxies(['192.168.0.1']);
|
||||||
|
list($event, $server) = $this->createRequestEvent(array('X_FORWARDED_FOR' => '192.168.0.2'));
|
||||||
|
|
||||||
|
$processor = new WebProcessor();
|
||||||
|
$processor->onKernelRequest($event);
|
||||||
|
$record = $processor($this->getRecord());
|
||||||
|
|
||||||
|
$this->assertCount(5, $record['extra']);
|
||||||
|
$this->assertEquals($server['REQUEST_URI'], $record['extra']['url']);
|
||||||
|
$this->assertEquals($server['X_FORWARDED_FOR'], $record['extra']['ip']);
|
||||||
|
$this->assertEquals($server['REQUEST_METHOD'], $record['extra']['http_method']);
|
||||||
|
$this->assertEquals($server['SERVER_NAME'], $record['extra']['server']);
|
||||||
|
$this->assertEquals($server['HTTP_REFERER'], $record['extra']['referrer']);
|
||||||
|
}
|
||||||
|
|
||||||
public function testCanBeConstructedWithExtraFields()
|
public function testCanBeConstructedWithExtraFields()
|
||||||
{
|
{
|
||||||
if (!$this->isExtraFieldsSupported()) {
|
if (!$this->isExtraFieldsSupported()) {
|
||||||
@ -54,18 +71,22 @@ class WebProcessorTest extends \PHPUnit_Framework_TestCase
|
|||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
private function createRequestEvent()
|
private function createRequestEvent($additionalServerParameters = array())
|
||||||
{
|
{
|
||||||
$server = array(
|
$server = array_merge(
|
||||||
'REQUEST_URI' => 'A',
|
array(
|
||||||
'REMOTE_ADDR' => 'B',
|
'REQUEST_URI' => 'A',
|
||||||
'REQUEST_METHOD' => 'C',
|
'REMOTE_ADDR' => '192.168.0.1',
|
||||||
'SERVER_NAME' => 'D',
|
'REQUEST_METHOD' => 'C',
|
||||||
'HTTP_REFERER' => 'E',
|
'SERVER_NAME' => 'D',
|
||||||
|
'HTTP_REFERER' => 'E',
|
||||||
|
),
|
||||||
|
$additionalServerParameters
|
||||||
);
|
);
|
||||||
|
|
||||||
$request = new Request();
|
$request = new Request();
|
||||||
$request->server->replace($server);
|
$request->server->replace($server);
|
||||||
|
$request->headers->replace($server);
|
||||||
|
|
||||||
$event = $this->getMockBuilder('Symfony\Component\HttpKernel\Event\GetResponseEvent')
|
$event = $this->getMockBuilder('Symfony\Component\HttpKernel\Event\GetResponseEvent')
|
||||||
->disableOriginalConstructor()
|
->disableOriginalConstructor()
|
||||||
|
Reference in New Issue
Block a user