* Fixed bug #5442: When using lockSSL redirection, the port number is not configurabl...
authorMichael Stucki <michael.stucki@typo3.org>
Sun, 2 Mar 2008 20:32:11 +0000 (20:32 +0000)
committerMichael Stucki <michael.stucki@typo3.org>
Sun, 2 Mar 2008 20:32:11 +0000 (20:32 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@3343 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
t3lib/class.t3lib_userauth.php
t3lib/config_default.php
typo3/init.php

index 8ce73b7..a72a304 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,6 @@
 2008-03-02  Ingo Renner  <ingo@typo3.org>
 
-       * fixed bug #7642: Page tree Filter use wrong div for collapse
+       * Fixed bug #7642: Page tree Filter use wrong div for collapse
 
 2008-03-02  Martin Kutschker  <martin.t.kutschker@blackbox.net>
 
@@ -15,6 +15,7 @@
        * Fixed bug #7291: Taskcenter -> sys_action - viewport is too small when creating records (patch by Steffen Kamper)
        * Fixed bug #5788: Add a delete button to the yellow warning box for removing the ENABLE_INSTALL_TOOL_FILE
        * Added hook #7657: New hook "tslib_fe-contentStrReplace" allows to overwrite content on a website after all the caching was already done. Only applies if "config.sendCacheHeaders" is disabled! This hook is very useful for small on-the-fly replacements, for example display the fe_user name, or the time used for page generation.
+       * Fixed bug #5442: When using lockSSL redirection, the port number is not configurable (patch by Christopher Hlubek)
 
 2008-03-01  Dmitry Dulepov  <dmitry@typo3.org>
 
index 73fc9dc..20ee380 100755 (executable)
@@ -556,7 +556,12 @@ class t3lib_userAuth {
                                $backendScript = t3lib_BEfunc::getBackendScript();
                                if($requestStr == $backendScript && t3lib_div::getIndpEnv('TYPO3_SSL')) {
                                        list(,$url) = explode('://',t3lib_div::getIndpEnv('TYPO3_SITE_URL'),2);
-                                       header('Location: http://'.$url.TYPO3_mainDir.$backendScript);
+                                       list($server,$address) = explode('/',$url,2);
+                                       if (intval($TYPO3_CONF_VARS['BE']['lockSSLPort'])) {
+                                               $sslPortSuffix = ':'.intval($TYPO3_CONF_VARS['BE']['lockSSLPort']);
+                                               $server = str_replace($sslPortSuffix,'',$server);       // strip port from server
+                                       }
+                                       header('Location: http://'.$server.'/'.$address.TYPO3_mainDir.$backendScript);
                                        exit;
                                }
                        }
index 132a080..8c2427a 100755 (executable)
@@ -133,6 +133,7 @@ $TYPO3_CONF_VARS = Array(
                'IPmaskList' => '',                                             // String. Lets you define a list of IP-numbers (with *-wildcards) that are the ONLY ones allowed access to ANY backend activity. On error an error header is sent and the script exits. Works like IP masking for users configurable through TSconfig. See syntax for that (or look up syntax for the function t3lib_div::cmpIP())
                'lockBeUserToDBmounts' => 1,                    // Boolean. If set, the backend user is allowed to work only within his page-mount. It's advisable to leave this on because it makes security easy to manage.
                'lockSSL' => 0,                                                 // Int. 0,1,2,3: If set (1,2,3), the backend can only be operated from an ssl-encrypted connection (https). Set to 2 you will be redirected to the https admin-url supposed to be the http-url, but with https scheme instead. If set to 3, only the login is forced to SSL, then the user switches back to non-SSL-mode
+               'lockSSLPort' => 0,                                     // Integer. Use a non-standard HTTPS port for lockSSL. Set this value if you use lockSSL and the HTTPS port of your webserver is not 443.
                'enabledBeUserIPLock' => 1,                             // Boolean. If set, the User/Group TSconfig option 'option.lockToIP' is enabled.
                'loginSecurityLevel' => '',                             // String. Keywords that determines the security level of login to the backend. "normal" means the password from the login form is sent in clear-text, "challenged" means the password is not sent but hashed with some other values, "superchallenged" (default) means the password is first hashed before being hashed with the challenge values again (means the password is stored as a hashed string in the database also). DO NOT CHANGE this value manually; without an alternative authentication service it will only prevent logins in TYPO3 since the "superchallenged" method is hardcoded in the default authentication system.
                'adminOnly' => 0,                                               // Int. If set (>=1), the only "admin" users can log in to the backend. If "<=-1" then the backend is totally shut down! For maintenance purposes.
index 7d02543..37ac889 100755 (executable)
@@ -238,16 +238,24 @@ if (trim($TYPO3_CONF_VARS['BE']['IPmaskList']) && !(defined('TYPO3_cliMode') &&
 // Check SSL (https)
 // **********************
 if (intval($TYPO3_CONF_VARS['BE']['lockSSL']) && !(defined('TYPO3_cliMode') && TYPO3_cliMode)) {
+       if(intval($TYPO3_CONF_VARS['BE']['lockSSLPort'])) {
+               $sslPortSuffix = ':'.intval($TYPO3_CONF_VARS['BE']['lockSSLPort']);
+       } else {
+               $sslPortSuffix = '';
+       }
        if ($TYPO3_CONF_VARS['BE']['lockSSL'] == 3)     {
                $requestStr = substr(t3lib_div::getIndpEnv('TYPO3_REQUEST_SCRIPT'), strlen(t3lib_div::getIndpEnv('TYPO3_SITE_URL').TYPO3_mainDir));
                if($requestStr == 'index.php' && !t3lib_div::getIndpEnv('TYPO3_SSL'))   {
                        list(,$url) = explode('://',t3lib_div::getIndpEnv('TYPO3_REQUEST_URL'),2);
-                       header('Location: https://'.$url);
+                       list($server,$address) = explode('/',$url,2);
+                       header('Location: https://'.$server.$sslPortSuffix.'/'.$address);
+                       exit;
                }
        } elseif (!t3lib_div::getIndpEnv('TYPO3_SSL') ) {
                if ($TYPO3_CONF_VARS['BE']['lockSSL'] == 2)     {
                        list(,$url) = explode('://',t3lib_div::getIndpEnv('TYPO3_SITE_URL').TYPO3_mainDir,2);
-                       header('Location: https://'.$url);      // Just point us away from here...
+                       list($server,$address) = explode('/',$url,2);
+                       header('Location: https://'.$server.$sslPortSuffix.'/'.$address);
                } else {
                        header('Status: 404 Not Found');        // Send Not Found header - if the webserver can make use of it...
                        header('Location: http://');    // Just point us away from here...