static protected $_instances = array();
/**
- * Attempts to return a concrete Horde_Auth_Driver instance based on
+ * Attempts to return a concrete Horde_Auth_Base instance based on
* $driver.
*
- * @param mixed $driver The type of concrete Horde_Auth_Driver subclass
+ * @param mixed $driver The type of concrete Horde_Auth_Base subclass
* to return. If $driver is an array, then look
* in $driver[0]/lib/Auth/ for the subclass
* implementation named $driver[1].php.
* @param array $params A hash containing any additional configuration or
* parameters a subclass might need.
*
- * @return Horde_Auth_Driver The newly created concrete instance.
+ * @return Horde_Auth_Base The newly created concrete instance.
* @throws Horde_Exception
*/
static public function factory($driver, $params = null)
$driver = basename($driver);
}
- /* Return a base Horde_Auth_Driver object if no driver is
- * specified. */
- if (empty($driver) || (strcasecmp($driver, 'none') == 0)) {
- return new Horde_Auth_Driver();
- }
-
if (empty($params)) {
$params = Horde::getDriverConfig('auth', $driver);
}
$class = (empty($app) ? 'Horde' : $app) . '_Auth_' . ucfirst($driver);
-
if (class_exists($class)) {
return new $class($params);
}
*
* This method must be invoked as: $var = Horde_Auth::singleton()
*
- * @param mixed $driver The type of concrete Horde_Auth_Driver subclass
+ * @param mixed $driver The type of concrete Horde_Auth_Base subclass
* to return. If $driver is an array, then look
* in $driver[0]/lib/Auth/ for the subclass
* implementation named $driver[1].php.
* @param array $params A hash containing any additional configuration or
* connection parameters a subclass might need.
*
- * @return Horde_Auth_Driver The concrete reference.
+ * @return Horde_Auth_Base The concrete reference.
* @throws Horde_Exception
*/
static public function singleton($driver, $params = array())
* @author Chuck Hagenbuch <chuck@horde.org>
* @package Horde_Auth
*/
-class Horde_Auth_Application extends Horde_Auth_Driver
+class Horde_Auth_Application extends Horde_Auth_Base
{
/**
* Cache for hasCapability().
* @author Chuck Hagenbuch <chuck@horde.org>
* @package Horde_Auth
*/
-class Horde_Auth_Auto extends Horde_Auth_Driver
+class Horde_Auth_Auto extends Horde_Auth_Base
{
/**
* An array of capabilities, so that the driver can report which
--- /dev/null
+<?php
+/**
+ * The Horde_Auth_Base:: class provides a common abstracted interface to
+ * creating various authentication backends.
+ *
+ * Copyright 1999-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (LGPL). If you did
+ * not receive this file, see http://opensource.org/licenses/lgpl-2.1.php
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ * @author Michael Slusarz <slusarz@curecanti.org>
+ * @package Horde_Auth
+ */
+abstract class Horde_Auth_Base
+{
+ /**
+ * An array of capabilities, so that the driver can report which
+ * operations it supports and which it doesn't.
+ *
+ * @var array
+ */
+ protected $_capabilities = array(
+ 'add' => false,
+ 'groups' => false,
+ 'list' => false,
+ 'resetpassword' => false,
+ 'remove' => false,
+ 'transparent' => false,
+ 'update' => false
+ );
+
+ /**
+ * Hash containing parameters needed for the drivers.
+ *
+ * @var array
+ */
+ protected $_params = array();
+
+ /**
+ * The credentials currently being authenticated.
+ *
+ * @var array
+ */
+ protected $_authCredentials = array();
+
+ /**
+ * Constructor.
+ *
+ * @param array $params A hash containing parameters.
+ */
+ public function __construct($params = array())
+ {
+ $this->_params = $params;
+ }
+
+ /**
+ * Finds out if a set of login credentials are valid, and if requested,
+ * mark the user as logged in in the current session.
+ *
+ * @param string $userId The userId to check.
+ * @param array $credentials The credentials to check.
+ * @param boolean $login Whether to log the user in. If false, we'll
+ * only test the credentials and won't modify
+ * the current session. Defaults to true.
+ * @param string $realm The authentication realm to check.
+ *
+ * @return boolean Whether or not the credentials are valid.
+ */
+ public function authenticate($userId, $credentials, $login = true,
+ $realm = null)
+ {
+ $auth = false;
+ $userId = trim($userId);
+
+ if (!empty($GLOBALS['conf']['hooks']['preauthenticate'])) {
+ if (!Horde::callHook('_horde_hook_preauthenticate', array($userId, $credentials, $realm), 'horde')) {
+ if (Horde_Auth::getAuthError() != Horde_Auth::REASON_MESSAGE) {
+ Horde_Auth::setAuthError(Horde_Auth::REASON_FAILED);
+ }
+ return false;
+ }
+ }
+
+ /* Store the credentials being checked so that subclasses can modify
+ * them if necessary (like transparent auth does). */
+ $this->_authCredentials = array(
+ 'changeRequested' => false,
+ 'credentials' => $credentials,
+ 'realm' => $realm,
+ 'userId' => $userId
+ );
+
+ try {
+ $this->_authenticate($userId, $credentials);
+
+ if ($login) {
+ $auth = Horde_Auth::setAuth(
+ $this->_authCredentials['userId'],
+ $this->_authCredentials['credentials'],
+ $this->_authCredentials['realm'],
+ $this->_authCredentials['changeRequested']
+ );
+ } else {
+ if (!Horde_Auth::checkSessionIP()) {
+ Horde_Auth::setAuthError(self::REASON_SESSIONIP);
+ } elseif (!Horde_Auth::checkBrowserString()) {
+ Horde_Auth::setAuthError(self::REASON_BROWSER);
+ } else {
+ $auth = true;
+ }
+ }
+ } catch (Horde_Exception $e) {
+ Horde::logMessage($e, __FILE__, __LINE__, PEAR_LOG_DEBUG);
+ Horde_Auth::setAuthError($e->getCode() || Horde_Auth::REASON_MESSAGE, $e->getMessage());
+ }
+
+ return $auth;
+ }
+
+ /**
+ * Authentication stub.
+ *
+ * Horde_Exception should pass a message string (if any) in the message
+ * field, and the REASON_* constant in the code field (defaults to
+ * REASON_MESSAGE).
+ *
+ * @throws Horde_Exception
+ */
+ abstract protected function _authenticate();
+
+ /**
+ * Adds a set of authentication credentials.
+ *
+ * @param string $userId The userId to add.
+ * @param array $credentials The credentials to use.
+ *
+ * @throws Horde_Exception
+ */
+ public function addUser($userId, $credentials)
+ {
+ throw new Horde_Exception('unsupported');
+ }
+
+ /**
+ * Updates a set of authentication credentials.
+ *
+ * @param string $oldID The old userId.
+ * @param string $newID The new userId.
+ * @param array $credentials The new credentials
+ *
+ * @throws Horde_Exception
+ */
+ public function updateUser($oldID, $newID, $credentials)
+ {
+ throw new Horde_Exception('unsupported');
+ }
+
+ /**
+ * Deletes a set of authentication credentials.
+ *
+ * @param string $userId The userId to delete.
+ *
+ * @throws Horde_Exception
+ */
+ public function removeUser($userId)
+ {
+ throw new Horde_Exception('unsupported');
+ }
+
+ /**
+ * Lists all users in the system.
+ *
+ * @return mixed The array of userIds.
+ * @throws Horde_Exception
+ */
+ public function listUsers()
+ {
+ throw new Horde_Exception('unsupported');
+ }
+
+ /**
+ * Checks if $userId exists in the system.
+ *
+ * @param string $userId User ID for which to check
+ *
+ * @return boolean Whether or not $userId already exists.
+ */
+ public function exists($userId)
+ {
+ try {
+ $users = $this->listUsers();
+ return in_array($userId, $users);
+ } catch (Horde_Exception $e) {
+ return false;
+ }
+ }
+
+ /**
+ * Automatic authentication: Finds out if the client matches an allowed IP
+ * block.
+ *
+ * @return boolean Whether or not the client is allowed.
+ */
+ public function transparent()
+ {
+ try {
+ return $this->_transparent();
+ } catch (Horde_Exception $e) {
+ Horde_Auth::setAuthError($e->getCode() || Horde_Auth::REASON_MESSAGE, $e->getMessage());
+ return false;
+ }
+ }
+
+ /**
+ * Transparent authentication stub.
+ *
+ * If the auth error message is desired to be set, Horde_Exception should
+ * thrown instead of returning false.
+ * The Horde_Exception object should have a message string (if any) in the
+ * message field, and the REASON_* constant in the code field (defaults to
+ * REASON_MESSAGE).
+ *
+ * @return boolean Whether transparent login is supported.
+ * @throws Horde_Exception
+ */
+ protected function _transparent()
+ {
+ return false;
+ }
+
+ /**
+ * Reset a user's password. Used for example when the user does not
+ * remember the existing password.
+ *
+ * @param string $userId The user id for which to reset the password.
+ *
+ * @return string The new password on success.
+ * @throws Horde_Exception
+ */
+ public function resetPassword($userId)
+ {
+ throw new Horde_Exception('unsupported');
+ }
+
+ /**
+ * Queries the current driver to find out if it supports the given
+ * capability.
+ *
+ * @param string $capability The capability to test for.
+ *
+ * @return boolean Whether or not the capability is supported.
+ */
+ public function hasCapability($capability)
+ {
+ return !empty($this->_capabilities[$capability]);
+ }
+
+ /**
+ * Returns the URI of the login screen for the current authentication
+ * method.
+ *
+ * @param string $app The application to use.
+ * @param string $url The URL to redirect to after login.
+ *
+ * @return string The login screen URI.
+ */
+ public function getLoginScreen($app = 'horde', $url = '')
+ {
+ $login = Horde::url($GLOBALS['registry']->get('webroot', $app) . '/login.php', true);
+ if (!empty($url)) {
+ $login = Horde_Util::addParameter($login, 'url', $url);
+ }
+ return $login;
+ }
+
+ /**
+ * Returns the named parameter for the current auth driver.
+ *
+ * @param string $param The parameter to fetch.
+ *
+ * @return string The parameter's value, or null if it doesn't exist.
+ */
+ public function getParam($param)
+ {
+ return isset($this->_params[$param])
+ ? $this->_params[$param]
+ : null;
+ }
+
+ /**
+ * Driver-level admin check stub.
+ *
+ * @todo
+ *
+ * @return boolean False.
+ */
+ public function isAdmin($permission = null, $permlevel = null, $user = null)
+ {
+ return false;
+ }
+
+}
* @author Chuck Hagenbuch <chuck@horde.org>
* @package Horde_Auth
*/
-class Horde_Auth_Composite extends Horde_Auth_Driver
+class Horde_Auth_Composite extends Horde_Auth_Base
{
/**
* Hash containing any instantiated drivers.
* @author Mike Cochrane <mike@graftonhall.co.nz>
* @package Horde_Auth
*/
-class Horde_Auth_Cyrus extends Horde_Auth_Driver
+class Horde_Auth_Cyrus extends Horde_Auth_Base
{
/**
* Horde_Imap_Client object.
/**
* Pointer to another backend that Cyrus authenticates against.
*
- * @var Horde_Auth_Driver
+ * @var Horde_Auth_Base
*/
protected $_backend;
+++ /dev/null
-<?php
-/**
- * The Horde_Auth_Driver:: class provides a common abstracted interface to
- * creating various authentication backends.
- *
- * Copyright 1999-2009 The Horde Project (http://www.horde.org/)
- *
- * See the enclosed file COPYING for license information (LGPL). If you did
- * not receive this file, see http://opensource.org/licenses/lgpl-2.1.php
- *
- * @author Chuck Hagenbuch <chuck@horde.org>
- * @author Michael Slusarz <slusarz@curecanti.org>
- * @package Horde_Auth
- */
-class Horde_Auth_Driver
-{
- /**
- * An array of capabilities, so that the driver can report which
- * operations it supports and which it doesn't.
- *
- * @var array
- */
- protected $_capabilities = array(
- 'add' => false,
- 'groups' => false,
- 'list' => false,
- 'resetpassword' => false,
- 'remove' => false,
- 'transparent' => false,
- 'update' => false
- );
-
- /**
- * Hash containing parameters needed for the drivers.
- *
- * @var array
- */
- protected $_params = array();
-
- /**
- * The credentials currently being authenticated.
- *
- * @var array
- */
- protected $_authCredentials = array();
-
- /**
- * Constructor.
- *
- * @param array $params A hash containing parameters.
- */
- public function __construct($params = array())
- {
- $this->_params = $params;
- }
-
- /**
- * Finds out if a set of login credentials are valid, and if requested,
- * mark the user as logged in in the current session.
- *
- * @param string $userId The userId to check.
- * @param array $credentials The credentials to check.
- * @param boolean $login Whether to log the user in. If false, we'll
- * only test the credentials and won't modify
- * the current session. Defaults to true.
- * @param string $realm The authentication realm to check.
- *
- * @return boolean Whether or not the credentials are valid.
- */
- public function authenticate($userId, $credentials, $login = true,
- $realm = null)
- {
- $auth = false;
- $userId = trim($userId);
-
- if (!empty($GLOBALS['conf']['hooks']['preauthenticate'])) {
- if (!Horde::callHook('_horde_hook_preauthenticate', array($userId, $credentials, $realm), 'horde')) {
- if (Horde_Auth::getAuthError() != Horde_Auth::REASON_MESSAGE) {
- Horde_Auth::setAuthError(Horde_Auth::REASON_FAILED);
- }
- return false;
- }
- }
-
- /* Store the credentials being checked so that subclasses can modify
- * them if necessary (like transparent auth does). */
- $this->_authCredentials = array(
- 'changeRequested' => false,
- 'credentials' => $credentials,
- 'realm' => $realm,
- 'userId' => $userId
- );
-
- try {
- $this->_authenticate($userId, $credentials);
-
- if ($login) {
- $auth = Horde_Auth::setAuth(
- $this->_authCredentials['userId'],
- $this->_authCredentials['credentials'],
- $this->_authCredentials['realm'],
- $this->_authCredentials['changeRequested']
- );
- } else {
- if (!Horde_Auth::checkSessionIP()) {
- Horde_Auth::setAuthError(self::REASON_SESSIONIP);
- } elseif (!Horde_Auth::checkBrowserString()) {
- Horde_Auth::setAuthError(self::REASON_BROWSER);
- } else {
- $auth = true;
- }
- }
- } catch (Horde_Exception $e) {
- Horde::logMessage($e, __FILE__, __LINE__, PEAR_LOG_DEBUG);
- Horde_Auth::setAuthError($e->getCode() || Horde_Auth::REASON_MESSAGE, $e->getMessage());
- }
-
- return $auth;
- }
-
- /**
- * Authentication stub.
- *
- * Horde_Exception should pass a message string (if any) in the message
- * field, and the REASON_* constant in the code field (defaults to
- * REASON_MESSAGE).
- *
- * @throws Horde_Exception
- */
- protected function _authenticate()
- {
- }
-
- /**
- * Adds a set of authentication credentials.
- *
- * @param string $userId The userId to add.
- * @param array $credentials The credentials to use.
- *
- * @throws Horde_Exception
- */
- public function addUser($userId, $credentials)
- {
- throw new Horde_Exception('unsupported');
- }
-
- /**
- * Updates a set of authentication credentials.
- *
- * @param string $oldID The old userId.
- * @param string $newID The new userId.
- * @param array $credentials The new credentials
- *
- * @throws Horde_Exception
- */
- public function updateUser($oldID, $newID, $credentials)
- {
- throw new Horde_Exception('unsupported');
- }
-
- /**
- * Deletes a set of authentication credentials.
- *
- * @param string $userId The userId to delete.
- *
- * @throws Horde_Exception
- */
- public function removeUser($userId)
- {
- throw new Horde_Exception('unsupported');
- }
-
- /**
- * Lists all users in the system.
- *
- * @return mixed The array of userIds.
- * @throws Horde_Exception
- */
- public function listUsers()
- {
- throw new Horde_Exception('unsupported');
- }
-
- /**
- * Checks if $userId exists in the system.
- *
- * @param string $userId User ID for which to check
- *
- * @return boolean Whether or not $userId already exists.
- */
- public function exists($userId)
- {
- try {
- $users = $this->listUsers();
- return in_array($userId, $users);
- } catch (Horde_Exception $e) {
- return false;
- }
- }
-
- /**
- * Automatic authentication: Finds out if the client matches an allowed IP
- * block.
- *
- * @return boolean Whether or not the client is allowed.
- */
- public function transparent()
- {
- try {
- return $this->_transparent();
- } catch (Horde_Exception $e) {
- Horde_Auth::setAuthError($e->getCode() || Horde_Auth::REASON_MESSAGE, $e->getMessage());
- return false;
- }
- }
-
- /**
- * Transparent authentication stub.
- *
- * If the auth error message is desired to be set, Horde_Exception should
- * thrown instead of returning false.
- * The Horde_Exception object should have a message string (if any) in the
- * message field, and the REASON_* constant in the code field (defaults to
- * REASON_MESSAGE).
- *
- * @return boolean Whether transparent login is supported.
- * @throws Horde_Exception
- */
- protected function _transparent()
- {
- return false;
- }
-
- /**
- * Reset a user's password. Used for example when the user does not
- * remember the existing password.
- *
- * @param string $userId The user id for which to reset the password.
- *
- * @return string The new password on success.
- * @throws Horde_Exception
- */
- public function resetPassword($userId)
- {
- throw new Horde_Exception('unsupported');
- }
-
- /**
- * Queries the current driver to find out if it supports the given
- * capability.
- *
- * @param string $capability The capability to test for.
- *
- * @return boolean Whether or not the capability is supported.
- */
- public function hasCapability($capability)
- {
- return !empty($this->_capabilities[$capability]);
- }
-
- /**
- * Returns the URI of the login screen for the current authentication
- * method.
- *
- * @param string $app The application to use.
- * @param string $url The URL to redirect to after login.
- *
- * @return string The login screen URI.
- */
- public function getLoginScreen($app = 'horde', $url = '')
- {
- $login = Horde::url($GLOBALS['registry']->get('webroot', $app) . '/login.php', true);
- if (!empty($url)) {
- $login = Horde_Util::addParameter($login, 'url', $url);
- }
- return $login;
- }
-
- /**
- * Returns the named parameter for the current auth driver.
- *
- * @param string $param The parameter to fetch.
- *
- * @return string The parameter's value, or null if it doesn't exist.
- */
- public function getParam($param)
- {
- return isset($this->_params[$param])
- ? $this->_params[$param]
- : null;
- }
-
- /**
- * Driver-level admin check stub.
- *
- * @todo
- *
- * @return boolean False.
- */
- public function isAdmin($permission = null, $permlevel = null, $user = null)
- {
- return false;
- }
-
-}
* @author Max Kalika <max@horde.org>
* @package Horde_Auth
*/
-class Horde_Auth_Ftp extends Horde_Auth_Driver
+class Horde_Auth_Ftp extends Horde_Auth_Base
{
/**
* Constructor.
* @author Chuck Hagenbuch <chuck@horde.org>
* @package Horde_Auth
*/
-class Horde_Auth_Http extends Horde_Auth_Driver
+class Horde_Auth_Http extends Horde_Auth_Base
{
/**
* An array of capabilities, so that the driver can report which
* @author Duck <duck@obala.net>
* @package Horde_Auth
*/
-class Horde_Auth_HttpRemote extends Horde_Auth_Driver
+class Horde_Auth_HttpRemote extends Horde_Auth_Base
{
/**
* Find out if a set of login credentials are valid.
* @author Jan Schneider <jan@horde.org>
* @package Horde_Auth
*/
-class Horde_Auth_Imap extends Horde_Auth_Driver
+class Horde_Auth_Imap extends Horde_Auth_Base
{
/**
* Constructor.
* @author Michael Rubinsky <mrubinsk@horde.org>
* @package Horde_Auth
*/
-class Horde_Auth_imsp extends Horde_Auth_Driver
+class Horde_Auth_imsp extends Horde_Auth_Base
{
/**
* Private authentication function.
* @author Chuck Hagenbuch <chuck@horde.org>
* @package Horde_Auth
*/
-class Horde_Auth_Ipbasic extends Horde_Auth_Driver
+class Horde_Auth_Ipbasic extends Horde_Auth_Base
{
/**
* An array of capabilities, so that the driver can report which
* @author Gunnar Wrobel <wrobel@pardus.de>
* @package Horde_Auth
*/
-class Horde_Auth_Kolab extends Horde_Auth_Driver
+class Horde_Auth_Kolab extends Horde_Auth_Base
{
/**
* An array of capabilities, so that the driver can report which
*/
function setAuth($userId, $credentials, $realm = null, $changeRequested = false)
{
- // TODO - setAuth doesn't exist in Horde_Auth_Driver
+ // TODO - setAuth doesn't exist in Horde_Auth_Base
// This should probably use _username_hook_frombackend.
if (class_exists('Horde_Kolab_Session')) {
* @author Michael Slusarz <slusarz@horde.org>
* @package Horde_Auth
*/
-class Horde_Auth_Krb5 extends Horde_Auth_Driver
+class Horde_Auth_Krb5 extends Horde_Auth_Base
{
/**
* Constructor.
* @author Jon Parise <jon@horde.org>
* @package Horde_Auth
*/
-class Horde_Auth_Ldap extends Horde_Auth_Driver
+class Horde_Auth_Ldap extends Horde_Auth_Base
{
/**
* An array of capabilities, so that the driver can report which
* @author Jan Schneider <jan@horde.org>
* @package Horde_Auth
*/
-class Horde_Auth_Login extends Horde_Auth_Driver
+class Horde_Auth_Login extends Horde_Auth_Base
{
/**
* List of users that should be excluded from being listed/handled
* @author Jon Parise <jon@horde.org>
* @package Horde_Auth
*/
-class Horde_Auth_Pam extends Horde_Auth_Driver
+class Horde_Auth_Pam extends Horde_Auth_Base
{
/**
* Constructor.
* @author Chuck Hagenbuch <chuck@horde.org>
* @package Horde_Auth
*/
-class Horde_Auth_Passwd extends Horde_Auth_Driver
+class Horde_Auth_Passwd extends Horde_Auth_Base
{
/**
* An array of capabilities, so that the driver can report which
* @author Jon Parise <jon@horde.org>
* @package Horde_Auth
*/
-class Horde_Auth_Peclsasl extends Horde_Auth_Driver
+class Horde_Auth_Peclsasl extends Horde_Auth_Base
{
/**
* Constructor.
* @author Michael Slusarz <slusarz@horde.org>
* @package Horde_Auth
*/
-class Horde_Auth_Radius extends Horde_Auth_Driver
+class Horde_Auth_Radius extends Horde_Auth_Base
{
/**
* Constructor.
* @author Cassio Nishiguchi <cassio@protectnetwork.org>
* @package Horde_Auth
*/
-class Horde_Auth_Shibboleth extends Horde_Auth_Driver
+class Horde_Auth_Shibboleth extends Horde_Auth_Base
{
/**
* An array of capabilities, so that the driver can report which
* @author Marcus I. Ryan <marcus@riboflavin.net>
* @package Horde_Auth
*/
-class Horde_Auth_Smb extends Horde_Auth_Driver
+class Horde_Auth_Smb extends Horde_Auth_Base
{
/**
* Constructor.
* @author Marcus I. Ryan <marcus@riboflavin.net>
* @package Horde_Auth
*/
-class Horde_Auth_Smbclient extends Horde_Auth_Driver
+class Horde_Auth_Smbclient extends Horde_Auth_Base
{
/**
* Constructor.
* @author Chuck Hagenbuch <chuck@horde.org>
* @package Horde_Auth
*/
-class Horde_Auth_Sql extends Horde_Auth_Driver
+class Horde_Auth_Sql extends Horde_Auth_Base
{
/**
* An array of capabilities, so that the driver can report which
<api>beta</api>
</stability>
<license uri="http://opensource.org/licenses/lgpl-2.1.php">LGPL</license>
- <notes>* Split Horde_Auth:: into Horde_Auth:: and Horde_Auth_Driver:: components.
+ <notes>* Split Horde_Auth:: into Horde_Auth:: and Horde_Auth_Base:: components.
* Initial Horde 4 package.
</notes>
<contents>
</dir> <!-- /lib/Horde/Auth/Signup -->
<file name="Application.php" role="php" />
<file name="Auto.php" role="php" />
+ <file name="Base.php" role="php" />
<file name="Composite.php" role="php" />
<file name="Customsql.php" role="php" />
<file name="Cyrsql.php" role="php" />
<file name="Cyrus.php" role="php" />
- <file name="Driver.php" role="php" />
<file name="Ftp.php" role="php" />
<file name="Http.php" role="php" />
<file name="HttpRemote.php" role="php" />
<install name="lib/Horde/Auth/Signup/Sql.php" as="Horde/Auth/Signup/Sql.php" />
<install name="lib/Horde/Auth/Application.php" as="Horde/Auth/Application.php" />
<install name="lib/Horde/Auth/Auto.php" as="Horde/Auth/Auto.php" />
+ <install name="lib/Horde/Auth/Base.php" as="Horde/Auth/Base.php" />
<install name="lib/Horde/Auth/Composite.php" as="Horde/Auth/Composite.php" />
<install name="lib/Horde/Auth/Customsql.php" as="Horde/Auth/Customsql.php" />
<install name="lib/Horde/Auth/Cyrsql.php" as="Horde/Auth/Cyrsql.php" />
<install name="lib/Horde/Auth/Cyrus.php" as="Horde/Auth/Cyrus.php" />
- <install name="lib/Horde/Auth/Driver.php" as="Horde/Auth/Driver.php" />
<install name="lib/Horde/Auth/Ftp.php" as="Horde/Auth/Ftp.php" />
<install name="lib/Horde/Auth/Http.php" as="Horde/Auth/Http.php" />
<install name="lib/Horde/Auth/HttpRemote.php" as="Horde/Auth/HttpRemote.php" />