You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

69 lines
1.7 KiB
PHP

<?php
declare(strict_types=1);
/**
* This file is part of CodeIgniter Shield.
*
* (c) CodeIgniter Foundation <admin@codeigniter.com>
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
namespace CodeIgniter\Shield\Authentication;
use CodeIgniter\HTTP\Exceptions\HTTPException;
use CodeIgniter\Shield\Exceptions\RuntimeException;
class AuthenticationException extends RuntimeException
{
protected $code = 403;
/**
* @param string $alias Authenticator alias
*/
public static function forUnknownAuthenticator(string $alias): self
{
return new self(lang('Auth.unknownAuthenticator', [$alias]));
}
public static function forUnknownUserProvider(): self
{
return new self(lang('Auth.unknownUserProvider'));
}
public static function forInvalidUser(): self
{
return new self(lang('Auth.invalidUser'));
}
public static function forBannedUser(): self
{
return new self(lang('Auth.invalidUser'));
}
public static function forNoEntityProvided(): self
{
return new self(lang('Auth.noUserEntity'), 500);
}
/**
* Fires when no minimumPasswordLength has been set
* in the Auth config file.
*/
public static function forUnsetPasswordLength(): self
{
return new self(lang('Auth.unsetPasswordLength'), 500);
}
/**
* When the cURL request (to Have I Been Pwned) in PwnedValidator
* throws a HTTPException it is re-thrown as this one
*/
public static function forHIBPCurlFail(HTTPException $e): self
{
return new self($e->getMessage(), $e->getCode(), $e);
}
}