[!!!][TASK] Remove [SYS][recursiveDomainSearch] option 82/59782/3
authorBenni Mack <benni@typo3.org>
Thu, 21 Feb 2019 16:58:38 +0000 (17:58 +0100)
committerAnja Leichsenring <aleichsenring@ab-softlab.de>
Sat, 23 Feb 2019 16:28:15 +0000 (17:28 +0100)
The option related to sys_domain records and pseudo-sites
is removed due to the upcoming removal of Pseudo Sites.

Resolves: #87767
Releases: master
Change-Id: Ife933f86d9ce3d8049e2e74d856a6ec0df3e4e40
Reviewed-on: https://review.typo3.org/c/59782
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
Tested-by: Susanne Moog <susanne.moog@typo3.org>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
Reviewed-by: Susanne Moog <susanne.moog@typo3.org>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
typo3/sysext/core/Classes/Routing/SiteMatcher.php
typo3/sysext/core/Configuration/DefaultConfiguration.php
typo3/sysext/core/Configuration/DefaultConfigurationDescription.yaml
typo3/sysext/core/Documentation/Changelog/master/Breaking-87193-DeprecatedFunctionalityRemoved.rst
typo3/sysext/install/Classes/Service/SilentConfigurationUpgradeService.php

index e72abde..455a024 100644 (file)
@@ -150,29 +150,11 @@ class SiteMatcher implements SingletonInterface
         $collection = $this->getRouteCollectionForVisibleSysDomains();
         $context = new RequestContext('/', $request->getMethod(), $request->getUri()->getHost());
         $matcher = new UrlMatcher($collection, $context);
-        if ((bool)$GLOBALS['TYPO3_CONF_VARS']['SYS']['recursiveDomainSearch']) {
-            $host = explode('.', $request->getUri()->getHost());
-            while (count($host)) {
-                $context->setHost(implode('.', $host));
-                try {
-                    $result = $matcher->match($request->getUri()->getPath());
-                    return new SiteRouteResult(
-                        $request->getUri(),
-                        $result['site'],
-                        $result['language'],
-                        $result['tail']
-                    );
-                } catch (NoConfigurationException | ResourceNotFoundException $e) {
-                    array_shift($host);
-                }
-            }
-        } else {
-            try {
-                $result = $matcher->match($request->getUri()->getPath());
-                return new SiteRouteResult($request->getUri(), $result['site'], $result['language'], $result['tail']);
-            } catch (NoConfigurationException | ResourceNotFoundException $e) {
-                // No domain record found
-            }
+        try {
+            $result = $matcher->match($request->getUri()->getPath());
+            return new SiteRouteResult($request->getUri(), $result['site'], $result['language'], $result['tail']);
+        } catch (NoConfigurationException | ResourceNotFoundException $e) {
+            // No domain record found
         }
         // No domain record found, try resolving "pseudo-site" again
         if ($site == null) {
index 3c1c945..1db9713 100644 (file)
@@ -80,7 +80,6 @@ return [
         'encryptionKey' => '',
         'cookieDomain' => '',
         'cookieSecure' => 0,
-        'recursiveDomainSearch' => false,
         'trustedHostsPattern' => 'SERVER_NAME',
         'devIPmask' => '127.0.0.1,::1',
         'ddmmyy' => 'd-m-y',
index ab95b9a..8b17e55 100644 (file)
@@ -91,9 +91,6 @@ SYS:
               '1': 'Force HTTPS: the cookie will only be set if a secure (HTTPS) connection exists - use this in combination with lockSSL since otherwise the application will fail and throw an exception'
               '2': 'The cookie will be set in each case, but uses the secure flag if a secure (HTTPS) connection exists'
             description: 'Indicates that the cookie should only be transmitted over a secure HTTPS connection from the client.'
-        recursiveDomainSearch:
-            type: bool
-            description: 'If set, the search for domain records will be done recursively by stripping parts of the hostname off until a matching domain record is found.'
         trustedHostsPattern:
             type: text
             description: 'Regular expression pattern that matches all allowed hostnames (including their ports) of this TYPO3 installation, or the string "SERVER_NAME" (default). The default value <code>SERVER_NAME</code> checks if the HTTP Host header equals the SERVER_NAME and SERVER_PORT. This is secure in correctly configured hosting environments and does not need further configuration. If you cannot change your hosting environment, you can enter a regular expression here. Examples: <code>.*\.domain\.com</code> matches all hosts that end with <code>.domain.com</code> with all corresponding subdomains. <code>(.*\.domain|.*\.otherdomain)\.com</code> matches all hostnames with subdomains from <code>.domain.com</code> and <code>.otherdomain.com</code>. Be aware that HTTP Host header may also contain a port. If your installation runs on a specific port, you need to explicitly allow this in your pattern, e.g. <code>www\.domain\.com:88</code> allows only <code>www.domain.com:88</code>, <strong>not</strong> <code>www.domain.com</code>. To disable this check completely (not recommended because it is <strong>insecure</strong>) you can use ".*" as pattern.'
index 05d69fe..116c3d8 100644 (file)
@@ -1353,6 +1353,7 @@ The following global options are ignored:
 * :php:`$GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']`
 * :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/saltedpasswords']['saltMethods']`
 * :php:`$GLOBALS['TYPO3_CONF_VARS']['SYS']['enableDeprecationLog']`
+* :php:`$GLOBALS['TYPO3_CONF_VARS']['SYS']['recursiveDomainSearch']`
 
 
 The following language files and aliases have been removed:
index a35e6c0..1a1ce92 100644 (file)
@@ -137,7 +137,9 @@ class SilentConfigurationUpgradeService
         // #84810
         'BE/explicitConfirmationOfTranslation',
         // #87482
-        'EXT/extConf'
+        'EXT/extConf',
+        // #87767
+        'SYS/recursiveDomainSearch',
     ];
 
     public function __construct(ConfigurationManager $configurationManager = null)