[TASK] Change PHP namespace of EXT:openid to FoT3
[Packages/TYPO3.CMS.git] / typo3 / sysext / openid / Classes / OpenidEid.php
index 710e38e..fcd8248 100644 (file)
@@ -1,55 +1,50 @@
 <?php
-namespace TYPO3\CMS\Openid;
+namespace FoT3\Openid;
 
-/***************************************************************
- *  Copyright notice
+/*
+ * This file is part of the TYPO3 CMS project.
  *
- *  (c) 2008-2013 Dmitry Dulepov <dmitry@typo3.org>
- *  All rights reserved
+ * It is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, either version 2
+ * of the License, or any later version.
  *
- *  This script is part of the TYPO3 project. The TYPO3 project is
- *  free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
  *
- *  The GNU General Public License can be found at
- *  http://www.gnu.org/copyleft/gpl.html.
- *
- *  This script is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  This copyright notice MUST APPEAR in all copies of the script!
- ***************************************************************/
+ * The TYPO3 project - inspiring people to share!
+ */
+
+use TYPO3\CMS\Core\Utility\GeneralUtility;
+use TYPO3\CMS\Core\Utility\HttpUtility;
+use TYPO3\CMS\Frontend\Utility\EidUtility;
+
 /**
  * This class is the OpenID return script for the TYPO3 Frontend.
- *
- * @author     Dmitry Dulepov <dmitry@typo3.org>
  */
-class OpenidEid {
-
-       /**
-        * Processes eID request.
-        *
-        * @return      void
-        */
-       public function main() {
-               // Due to the nature of OpenID (redrections, etc) we need to force user
-               // session fetching if there is no session around. This ensures that
-               // our service is called even if there is no login data in the request.
-               // Inside the service we will process OpenID response and authenticate
-               // the user.
-               $GLOBALS['TYPO3_CONF_VARS']['SVCONF']['auth']['FE_fetchUserIfNoSession'] = TRUE;
-               // Initialize Frontend user
-               \TYPO3\CMS\Frontend\Utility\EidUtility::initFeUser();
-               // Redirect to the original location in any case (authenticated or not)
-               @ob_end_clean();
-               \TYPO3\CMS\Core\Utility\HttpUtility::redirect(\TYPO3\CMS\Core\Utility\GeneralUtility::_GP('tx_openid_location'), \TYPO3\CMS\Core\Utility\HttpUtility::HTTP_STATUS_303);
-       }
+class OpenidEid
+{
+    /**
+     * Processes eID request.
+     *
+     * @return void
+     */
+    public function main()
+    {
+        // Due to the nature of OpenID (redrections, etc) we need to force user
+        // session fetching if there is no session around. This ensures that
+        // our service is called even if there is no login data in the request.
+        // Inside the service we will process OpenID response and authenticate
+        // the user.
+        $GLOBALS['TYPO3_CONF_VARS']['SVCONF']['auth']['FE_fetchUserIfNoSession'] = true;
+        // Initialize Frontend user
+        EidUtility::initFeUser();
+        // Redirect to the original location in any case (authenticated or not)
+        @ob_end_clean();
 
+        $location = GeneralUtility::_GP('tx_openid_location');
+        $signature = GeneralUtility::hmac($location, 'openid');
+        if ($signature === GeneralUtility::_GP('tx_openid_location_signature')) {
+            HttpUtility::redirect($location, HttpUtility::HTTP_STATUS_303);
+        }
+    }
 }
-
-
-?>
\ No newline at end of file