From 3b6b017ff490cfef4d0ac65fd987a78871b8b08c Mon Sep 17 00:00:00 2001 From: Dmytro Dzubenko Date: Thu, 10 Nov 2016 19:34:06 +0200 Subject: [PATCH 1/5] Move data to appropriate superglobal --- Bridges/HttpKernel.php | 1 + 1 file changed, 1 insertion(+) diff --git a/Bridges/HttpKernel.php b/Bridges/HttpKernel.php index 91a1ac8..25cb1d0 100644 --- a/Bridges/HttpKernel.php +++ b/Bridges/HttpKernel.php @@ -10,6 +10,7 @@ use React\Http\Request as ReactRequest; use Symfony\Component\HttpFoundation\Cookie; use Symfony\Component\HttpFoundation\Request as SymfonyRequest; +use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response as SymfonyResponse; use Symfony\Component\HttpFoundation\StreamedResponse as SymfonyStreamedResponse; use Symfony\Component\HttpKernel\TerminableInterface; From 0dc095d9f991022840d43821550009fe65af673d Mon Sep 17 00:00:00 2001 From: Dmytro Dzubenko Date: Thu, 10 Nov 2016 19:35:51 +0200 Subject: [PATCH 2/5] Remove unused import --- Bridges/HttpKernel.php | 1 - 1 file changed, 1 deletion(-) diff --git a/Bridges/HttpKernel.php b/Bridges/HttpKernel.php index 25cb1d0..91a1ac8 100644 --- a/Bridges/HttpKernel.php +++ b/Bridges/HttpKernel.php @@ -10,7 +10,6 @@ use React\Http\Request as ReactRequest; use Symfony\Component\HttpFoundation\Cookie; use Symfony\Component\HttpFoundation\Request as SymfonyRequest; -use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response as SymfonyResponse; use Symfony\Component\HttpFoundation\StreamedResponse as SymfonyStreamedResponse; use Symfony\Component\HttpKernel\TerminableInterface; From ba804371ab4120cf085fcdd14b9cb7ec837a9072 Mon Sep 17 00:00:00 2001 From: Dmytro Dzubenko Date: Thu, 17 Nov 2016 17:08:15 +0200 Subject: [PATCH 3/5] Fix bug in basic auth --- Bridges/HttpKernel.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Bridges/HttpKernel.php b/Bridges/HttpKernel.php index 91a1ac8..2702e27 100644 --- a/Bridges/HttpKernel.php +++ b/Bridges/HttpKernel.php @@ -10,6 +10,7 @@ use React\Http\Request as ReactRequest; use Symfony\Component\HttpFoundation\Cookie; use Symfony\Component\HttpFoundation\Request as SymfonyRequest; +use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response as SymfonyResponse; use Symfony\Component\HttpFoundation\StreamedResponse as SymfonyStreamedResponse; use Symfony\Component\HttpKernel\TerminableInterface; @@ -150,9 +151,7 @@ protected function mapRequest(ReactRequest $reactRequest) session_id(Utils::generateSessionId()); } - $_SERVER['PHP_AUTH_USER'] = ''; - $_SERVER['PHP_AUTH_PW'] = ''; - $_SERVER['AUTH_TYPE'] = ''; + unset($headers['PHP_AUTH_USER'], $headers['PHP_AUTH_PW'], $headers['AUTH_TYPE']); if (isset($headers['Authorization'])) { $authorizationHeader = $headers['Authorization']; @@ -161,9 +160,9 @@ protected function mapRequest(ReactRequest $reactRequest) if (($type === 'Basic' || $type === 'Digest') && isset($authorizationHeaderParts[1])) { $credentials = base64_decode($authorizationHeaderParts[1]); $credentialsParts = explode(':', $credentials); - $_SERVER['PHP_AUTH_USER'] = isset($credentialsParts[0]) ? $credentialsParts[0] : ''; - $_SERVER['PHP_AUTH_PW'] = isset($credentialsParts[1]) ? $credentialsParts[1] : ''; - $_SERVER['AUTH_TYPE'] = $type; + $headers['PHP_AUTH_USER'] = isset($credentialsParts[0]) ? $credentialsParts[0] : ''; + $headers['PHP_AUTH_PW'] = isset($credentialsParts[1]) ? $credentialsParts[1] : ''; + $headers['AUTH_TYPE'] = $type; } } @@ -177,10 +176,11 @@ protected function mapRequest(ReactRequest $reactRequest) $class = '\Symfony\Component\HttpFoundation\Request'; } + /** @var Request $syRequest */ $syRequest = new $class($query, $post, $attributes = [], $cookies, $files, $_SERVER, $reactRequest->getBody()); $syRequest->setMethod($method); - $syRequest->headers->add($headers); + $syRequest->headers->replace($headers); return $syRequest; } From 357b66aba9a22c46d73863e55db459e0a4f416dd Mon Sep 17 00:00:00 2001 From: Dmytro Dzubenko Date: Thu, 17 Nov 2016 18:56:27 +0200 Subject: [PATCH 4/5] Update phpdoc --- Bridges/HttpKernel.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Bridges/HttpKernel.php b/Bridges/HttpKernel.php index 2702e27..9aee74b 100644 --- a/Bridges/HttpKernel.php +++ b/Bridges/HttpKernel.php @@ -10,7 +10,6 @@ use React\Http\Request as ReactRequest; use Symfony\Component\HttpFoundation\Cookie; use Symfony\Component\HttpFoundation\Request as SymfonyRequest; -use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response as SymfonyResponse; use Symfony\Component\HttpFoundation\StreamedResponse as SymfonyStreamedResponse; use Symfony\Component\HttpKernel\TerminableInterface; @@ -176,7 +175,7 @@ protected function mapRequest(ReactRequest $reactRequest) $class = '\Symfony\Component\HttpFoundation\Request'; } - /** @var Request $syRequest */ + /** @var SymfonyRequest $syRequest */ $syRequest = new $class($query, $post, $attributes = [], $cookies, $files, $_SERVER, $reactRequest->getBody()); $syRequest->setMethod($method); From 6c3d37da3a48e0687bbdee026416132106b19c62 Mon Sep 17 00:00:00 2001 From: Dmytro Dzubenko Date: Tue, 6 Dec 2016 16:42:11 +0200 Subject: [PATCH 5/5] Remove auth headers parsing because of moving this to symfony request --- Bridges/HttpKernel.php | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/Bridges/HttpKernel.php b/Bridges/HttpKernel.php index 9aee74b..dd57309 100644 --- a/Bridges/HttpKernel.php +++ b/Bridges/HttpKernel.php @@ -48,7 +48,6 @@ public function bootstrap($appBootstrap, $appenv, $debug) $appBootstrap = $this->normalizeAppBootstrap($appBootstrap); $this->bootstrap = new $appBootstrap($appenv, $debug); - if ($this->bootstrap instanceof BootstrapInterface) { $this->application = $this->bootstrap->getApplication(); } @@ -124,7 +123,6 @@ protected function mapRequest(ReactRequest $reactRequest) $headers = $reactRequest->getHeaders(); $query = $reactRequest->getQuery(); - $cookies = []; $_COOKIE = []; $sessionCookieSet = false; @@ -133,7 +131,6 @@ protected function mapRequest(ReactRequest $reactRequest) $headersCookie = explode(';', isset($headers['Cookie']) ? $headers['Cookie'] : $headers['cookie']); foreach ($headersCookie as $cookie) { list($name, $value) = explode('=', trim($cookie)); - $cookies[$name] = $value; $_COOKIE[$name] = $value; if ($name === session_name()) { @@ -150,21 +147,6 @@ protected function mapRequest(ReactRequest $reactRequest) session_id(Utils::generateSessionId()); } - unset($headers['PHP_AUTH_USER'], $headers['PHP_AUTH_PW'], $headers['AUTH_TYPE']); - - if (isset($headers['Authorization'])) { - $authorizationHeader = $headers['Authorization']; - $authorizationHeaderParts = explode(' ', $authorizationHeader); - $type = $authorizationHeaderParts[0]; - if (($type === 'Basic' || $type === 'Digest') && isset($authorizationHeaderParts[1])) { - $credentials = base64_decode($authorizationHeaderParts[1]); - $credentialsParts = explode(':', $credentials); - $headers['PHP_AUTH_USER'] = isset($credentialsParts[0]) ? $credentialsParts[0] : ''; - $headers['PHP_AUTH_PW'] = isset($credentialsParts[1]) ? $credentialsParts[1] : ''; - $headers['AUTH_TYPE'] = $type; - } - } - $files = $reactRequest->getFiles(); $post = $reactRequest->getPost(); @@ -176,10 +158,9 @@ protected function mapRequest(ReactRequest $reactRequest) } /** @var SymfonyRequest $syRequest */ - $syRequest = new $class($query, $post, $attributes = [], $cookies, $files, $_SERVER, $reactRequest->getBody()); + $syRequest = new $class($query, $post, $attributes = [], $_COOKIE, $files, $_SERVER, $reactRequest->getBody()); $syRequest->setMethod($method); - $syRequest->headers->replace($headers); return $syRequest; }