Add the secret parameter to the token system.
authorGunnar Wrobel <p@rdus.de>
Tue, 30 Nov 2010 05:05:00 +0000 (06:05 +0100)
committerGunnar Wrobel <p@rdus.de>
Tue, 30 Nov 2010 12:48:27 +0000 (13:48 +0100)
framework/Core/lib/Horde/Core/Factory/Token.php
framework/Token/lib/Horde/Token/Base.php
framework/Token/test/Horde/Token/Unit/FileTest.php

index 8b13577..149b417 100644 (file)
@@ -20,6 +20,7 @@ class Horde_Core_Factory_Token
             $driver = 'Null';
         }
 
+        $params['secret'] = $injector->getInstance('Horde_Secret')->setKey('token');
         $params['logger'] = $injector->getInstance('Horde_Log_Logger');
 
         $class = 'Horde_Token_' . ucfirst($driver);
index 0b1a410..e711ceb 100644 (file)
@@ -32,13 +32,20 @@ abstract class Horde_Token_Base
     /**
      * Constructor.
      *
-     * @param array $params  Optional parameters:
+     * @param array $params  Required parameters:
+     * <pre>
+     * 'secret' - (string) The secret string used for signing tokens.
+     * </pre>
+     * Optional parameters:
      * <pre>
      * 'logger' - (Horde_Log_Logger) A logger object.
      * </pre>
      */
     public function __construct($params)
     {
+        if (!isset($params['secret'])) {
+            throw new Horde_Token_Exception('Missing secret parameter.');
+        }
         if (isset($params['logger'])) {
             $this->_logger = $params['logger'];
             unset($params['logger']);
index 9199d11..e89888e 100644 (file)
@@ -41,10 +41,18 @@ class Horde_Token_Unit_Storage_FileTest extends PHPUnit_Framework_TestCase
 
     public function testNonces()
     {
-        $t = new Horde_Token_File();
+        $t = new Horde_Token_File(array('secret' => 'abc'));
         $this->assertEquals(6, strlen($t->getNonce()));
     }
 
+    /**
+     * @expectedException Horde_Token_Exception
+     */
+    public function testInvalidConstruction()
+    {
+        $t = new Horde_Token_File();
+    }
+
     private function _getTemporaryDirectory()
     {
         $this->_temp_dir = sys_get_temp_dir() . DIRECTORY_SEPARATOR