1: <?php
2: 3: 4: 5:
6: class Horde_Core_Factory_Token extends Horde_Core_Factory_Injector
7: {
8: public function create(Horde_Injector $injector)
9: {
10: $driver = isset($GLOBALS['conf']['token'])
11: ? $GLOBALS['conf']['token']['driver']
12: : 'Null';
13: $params = isset($GLOBALS['conf']['token'])
14: ? Horde::getDriverConfig('token', $GLOBALS['conf']['token']['driver'])
15: : array();
16:
17: if (strcasecmp($driver, 'Sql') === 0) {
18: $params['db'] = $injector->getInstance('Horde_Db_Adapter');
19: } elseif (strcasecmp($driver, 'None') === 0) {
20: $driver = 'Null';
21: }
22:
23: if (isset($GLOBALS['conf']['urls']['token_lifetime'])) {
24: $params['token_lifetime'] = $GLOBALS['conf']['urls']['token_lifetime'] * 60;
25: }
26:
27: $params['secret'] = $injector->getInstance('Horde_Secret')->getKey('auth');
28: $params['logger'] = $injector->getInstance('Horde_Log_Logger');
29:
30: $class = 'Horde_Token_' . ucfirst($driver);
31: if (class_exists($class)) {
32: return new $class($params);
33: }
34:
35: throw new Horde_Token_Exception('Driver ' . $driver . ' not found.');
36: }
37:
38: }
39: