Current File : /home/pacjaorg/.trash/libraries.1/vendor/joomla/authentication/src/Strategies/LocalStrategy.php |
<?php
/**
* Part of the Joomla Framework Authentication Package
*
* @copyright Copyright (C) 2005 - 2021 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE
*/
namespace Joomla\Authentication\Strategies;
use Joomla\Authentication\AbstractUsernamePasswordAuthenticationStrategy;
use Joomla\Authentication\Authentication;
use Joomla\Authentication\Password\HandlerInterface;
use Joomla\Input\Input;
/**
* Joomla Framework Local Strategy Authentication class
*
* @since 1.0
*/
class LocalStrategy extends AbstractUsernamePasswordAuthenticationStrategy
{
/**
* The credential store.
*
* @var array
* @since 1.0
*/
private $credentialStore;
/**
* The Input object
*
* @var Input
* @since 1.0
*/
private $input;
/**
* Strategy Constructor
*
* @param Input $input The input object from which to retrieve the request credentials.
* @param array $credentialStore Hash of username and hash pairs.
* @param ?HandlerInterface $passwordHandler The password handler.
*
* @since 1.0
*/
public function __construct(Input $input, array $credentialStore = [], ?HandlerInterface $passwordHandler = null)
{
parent::__construct($passwordHandler);
$this->credentialStore = $credentialStore;
$this->input = $input;
}
/**
* Attempt to authenticate the username and password pair.
*
* @return string|boolean A string containing a username if authentication is successful, false otherwise.
*
* @since 1.0
*/
public function authenticate()
{
$username = $this->input->get('username', false, 'username');
$password = $this->input->get('password', false, 'raw');
if (!$username || !$password) {
$this->status = Authentication::NO_CREDENTIALS;
return false;
}
return $this->doAuthenticate($username, $password);
}
/**
* Retrieve the hashed password for the specified user.
*
* @param string $username Username to lookup.
*
* @return string|boolean Hashed password on success or boolean false on failure.
*
* @since 1.1.0
*/
protected function getHashedPassword($username)
{
return $this->credentialStore[$username] ?? false;
}
}