[TASK] Ensure HTTP RequestHandlers always return a PSR-7 Repsonse
[Packages/TYPO3.CMS.git] / typo3 / sysext / frontend / Classes / Http / EidRequestHandler.php
index f9bd3b9..9c5498a 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+declare(strict_types = 1);
 namespace TYPO3\CMS\Frontend\Http;
 
 /*
@@ -14,10 +15,12 @@ namespace TYPO3\CMS\Frontend\Http;
  * The TYPO3 project - inspiring people to share!
  */
 
+use Psr\Http\Message\ResponseInterface;
 use Psr\Http\Message\ServerRequestInterface;
 use TYPO3\CMS\Core\Core\Bootstrap;
 use TYPO3\CMS\Core\Exception;
 use TYPO3\CMS\Core\Http\Dispatcher;
+use TYPO3\CMS\Core\Http\NullResponse;
 use TYPO3\CMS\Core\Http\RequestHandlerInterface;
 use TYPO3\CMS\Core\Http\Response;
 use TYPO3\CMS\Core\TimeTracker\TimeTracker;
@@ -49,9 +52,9 @@ class EidRequestHandler implements RequestHandlerInterface
      * Handles a frontend request based on the _GP "eID" variable.
      *
      * @param ServerRequestInterface $request
-     * @return \Psr\Http\Message\ResponseInterface|null
+     * @return ResponseInterface
      */
-    public function handleRequest(ServerRequestInterface $request)
+    public function handleRequest(ServerRequestInterface $request): ResponseInterface
     {
         // Starting time tracking
         $configuredCookieName = trim($GLOBALS['TYPO3_CONF_VARS']['BE']['cookieName']) ?: 'be_typo_user';
@@ -77,7 +80,7 @@ class EidRequestHandler implements RequestHandlerInterface
      * @param ServerRequestInterface $request The request to process
      * @return bool If the request is not an eID request, TRUE otherwise FALSE
      */
-    public function canHandleRequest(ServerRequestInterface $request)
+    public function canHandleRequest(ServerRequestInterface $request): bool
     {
         return !empty($request->getQueryParams()['eID']) || !empty($request->getParsedBody()['eID']);
     }
@@ -88,7 +91,7 @@ class EidRequestHandler implements RequestHandlerInterface
      *
      * @return int The priority of the request handler.
      */
-    public function getPriority()
+    public function getPriority(): int
     {
         return 80;
     }
@@ -97,10 +100,10 @@ class EidRequestHandler implements RequestHandlerInterface
      * Dispatches the request to the corresponding eID class or eID script
      *
      * @param ServerRequestInterface $request
-     * @return \Psr\Http\Message\ResponseInterface|null
+     * @return ResponseInterface
      * @throws Exception
      */
-    protected function dispatch($request)
+    protected function dispatch(ServerRequestInterface $request): ResponseInterface
     {
         /** @var Response $response */
         $response = GeneralUtility::makeInstance(Response::class);
@@ -126,6 +129,6 @@ class EidRequestHandler implements RequestHandlerInterface
             throw new Exception('Registered eID has invalid script path.', 1416391467);
         }
         include $scriptPath;
-        return null;
+        return new NullResponse();
     }
 }