|
@@ -2,12 +2,15 @@
|
|
|
declare(strict_types = 1);
|
|
declare(strict_types = 1);
|
|
|
namespace Opentalent\OtOptimizer\XClass\Frontend\Middleware;
|
|
namespace Opentalent\OtOptimizer\XClass\Frontend\Middleware;
|
|
|
|
|
|
|
|
|
|
+use Opentalent\OtCore\Exception\NoSuchWebsiteException;
|
|
|
use Opentalent\OtOptimizer\Routing\SiteMatcher;
|
|
use Opentalent\OtOptimizer\Routing\SiteMatcher;
|
|
|
use Psr\Http\Message\ResponseInterface;
|
|
use Psr\Http\Message\ResponseInterface;
|
|
|
use Psr\Http\Message\ServerRequestInterface;
|
|
use Psr\Http\Message\ServerRequestInterface;
|
|
|
use Psr\Http\Server\RequestHandlerInterface;
|
|
use Psr\Http\Server\RequestHandlerInterface;
|
|
|
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
|
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
|
|
use TYPO3\CMS\Extbase\Object\ObjectManager;
|
|
use TYPO3\CMS\Extbase\Object\ObjectManager;
|
|
|
|
|
+use TYPO3\CMS\Frontend\Controller\ErrorController;
|
|
|
|
|
+use TYPO3\CMS\Frontend\Page\PageAccessFailureReasons;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
*
|
|
*
|
|
@@ -39,7 +42,15 @@ class OtSiteResolver extends \TYPO3\CMS\Frontend\Middleware\SiteResolver
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
$matcher = GeneralUtility::makeInstance(ObjectManager::class)->get(SiteMatcher::class);
|
|
$matcher = GeneralUtility::makeInstance(ObjectManager::class)->get(SiteMatcher::class);
|
|
|
- $routeResult = $matcher->matchRequest($request);
|
|
|
|
|
|
|
+ try {
|
|
|
|
|
+ $routeResult = $matcher->matchRequest($request);
|
|
|
|
|
+ } catch (NoSuchWebsiteException $e) {
|
|
|
|
|
+ return GeneralUtility::makeInstance(ErrorController::class)->pageNotFoundAction(
|
|
|
|
|
+ $request,
|
|
|
|
|
+ 'The requested website does not exist',
|
|
|
|
|
+ ['code' => PageAccessFailureReasons::PAGE_NOT_FOUND]
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
$request = $request->withAttribute('site', $routeResult->getSite());
|
|
$request = $request->withAttribute('site', $routeResult->getSite());
|
|
|
$request = $request->withAttribute('language', $routeResult->getLanguage());
|
|
$request = $request->withAttribute('language', $routeResult->getLanguage());
|