From: Gunnar Wrobel Date: Tue, 30 Nov 2010 05:05:00 +0000 (+0100) Subject: Add the secret parameter to the token system. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=0adff3f9ba4c6c4f48d68931d34b8d4120a577fc;p=horde.git Add the secret parameter to the token system. --- diff --git a/framework/Core/lib/Horde/Core/Factory/Token.php b/framework/Core/lib/Horde/Core/Factory/Token.php index 8b1357750..149b41747 100644 --- a/framework/Core/lib/Horde/Core/Factory/Token.php +++ b/framework/Core/lib/Horde/Core/Factory/Token.php @@ -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); diff --git a/framework/Token/lib/Horde/Token/Base.php b/framework/Token/lib/Horde/Token/Base.php index 0b1a4102d..e711cebda 100644 --- a/framework/Token/lib/Horde/Token/Base.php +++ b/framework/Token/lib/Horde/Token/Base.php @@ -32,13 +32,20 @@ abstract class Horde_Token_Base /** * Constructor. * - * @param array $params Optional parameters: + * @param array $params Required parameters: + *
+     * 'secret' - (string) The secret string used for signing tokens.
+     * 
+ * Optional parameters: *
      * 'logger' - (Horde_Log_Logger) A logger object.
      * 
*/ 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']); diff --git a/framework/Token/test/Horde/Token/Unit/FileTest.php b/framework/Token/test/Horde/Token/Unit/FileTest.php index 9199d116f..e89888ebb 100644 --- a/framework/Token/test/Horde/Token/Unit/FileTest.php +++ b/framework/Token/test/Horde/Token/Unit/FileTest.php @@ -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