Spec-Zone.ru › CakePHP 3.6

Класс DigestAuthenticate

Адаптер аутентификации Digest для компонента AuthComponent.

Обеспечивает поддержку аутентификации HTTP Digest для AuthComponent.

Использование аутентификации Digest

Загрузите AuthComponent в initialize() вашего контроллера и добавьте 'Digest' в ключ 'authenticate'

$this->loadComponent('Auth', [
     'authenticate' => ['Digest'],
     'storage' => 'Memory',
     'unauthorizedRedirect' => false,
 ]);

Вы должны установить storage на Memory, чтобы предотвратить отправку CakePHP куки сессии клиенту.

Вы должны установить unauthorizedRedirect на false. Это заставляет AuthComponent выбрасывать исключение ForbiddenException, вместо перенаправления на другую страницу.

Поскольку HTTP аутентификация Digest бессостоятельна, вам не нужно вызывать setUser() в вашем контроллере. Учетные данные пользователя будут проверяться при каждом запросе. Если действительные учетные данные не предоставлены, этот поставщик аутентификации отправит необходимые заголовки аутентификации, которые инициируют диалог входа в браузере/клиенте.

Генерация паролей, совместимых с аутентификацией Digest.

DigestAuthenticate требует специального хеша пароля, соответствующего RFC2617. Вы можете сгенерировать этот пароль, используя DigestAuthenticate::password()

$digestPass = DigestAuthenticate::password($username, $password, env('SERVER_NAME'));

Если вы хотите использовать аутентификацию digest вместе с другими методами аутентификации, рекомендуется хранить аутентификацию digest отдельно. Например, User.digest_pass можно использовать для пароля digest, а User.password — для хранения хеша пароля для использования с другими методами, такими как Basic или Form.

Cake\Auth\BaseAuthenticate реализует Cake\Event\EventListenerInterface использует Cake\Core\InstanceConfigTrait , Cake\ORM\Locator\LocatorAwareTrait
Extended by Cake\Auth\BasicAuthenticate
Extended by Cake\Auth\DigestAuthenticate
Пространство имён: Cake\Auth
См.: https://book.cakephp.org/3.0/ru/controllers/components/authentication.html
Расположение: Auth/DigestAuthenticate.php

Унаследованные свойства

  • _defaultConfig, _needsPasswordRehash, _passwordHasher, _registry _config, _configInitialized _tableLocator

Краткое описание методов

  • __construct() public
    Конструктор
  • _getDigest() protected
    Получает заголовки digest из запроса/среды.
  • generateNonce() protected
    Генерирует значение nonce, которое проверяется в будущих запросах.
  • generateResponseHash() public
    Генерирует хеш ответа для заданного массива digest.
  • getUser() public
    Получает пользователя на основе информации в запросе. Используется для аутентификации без куки для бессостоятельных клиентов.
  • loginHeaders() public
    Генерирует заголовки входа
  • parseAuthData() public
    Парсит заголовки аутентификации digest и разделяет их.
  • password() public static
    Создаёт хеш пароля digest для хранения
  • validNonce() protected
    Проверяет nonce, чтобы убедиться, что он действителен и не истек.

Подробное описание методов

__construct()source public

__construct( Cake\Controller\ComponentRegistry $registry , array $config = [] )

Конструктор

Помимо ключей, указанных в BaseAuthenticate::$_defaultConfig, DigestAuthenticate использует следующие дополнительные ключи:

  • secret Секрет для проверки nonce. По умолчанию Security::getSalt().
  • realm Сфера действия аутентификации. По умолчанию имя сервера.
  • qop По умолчанию 'auth', в данный момент другие значения не поддерживаются.
  • opaque Строка, которая должна возвращаться клиентами без изменений. По умолчанию md5($config['realm'])
  • nonceLifetime Количество секунд, в течение которых nonce действителен. По умолчанию 300.

Параметры

Cake\Controller\ComponentRegistry $registry

Реестр компонентов, используемый в этом запросе.

массив $config необязательно []
Массив настроек для использования.

Переопределяет

Cake\Auth\BaseAuthenticate::__construct()

_getDigest()source protected

_getDigest( Cake\Http\ServerRequest $request )

Получает заголовки digest из запроса/среды.

Параметры

Cake\Http\ServerRequest $request
Объект запроса.

Возвращает

массив|логическое значение
Массив информации о digest.

generateNonce()source protected

generateNonce( )

Генерирует значение nonce, которое проверяется в будущих запросах.

Возвращает

строка

generateResponseHash()source public

generateResponseHash( array $digest , string $password , string $method )

Генерирует хеш ответа для заданного массива digest.

Параметры

массив $digest
Информация о digest, содержащая данные из DigestAuthenticate::parseAuthData().
строка $password
Пароль хеша digest, сгенерированный с помощью DigestAuthenticate::password()
строка $method
Метод запроса

Возвращает

строка
Хеш ответа

getUser()source public

getUser( Cake\Http\ServerRequest $request )

Получает пользователя на основе информации в запросе. Используется для аутентификации без куки для бессостоятельных клиентов.

Параметры

Cake\Http\ServerRequest $request
Объект запроса.

Возвращает

смешанное значение
Либо false, либо массив информации о пользователе

Переопределяет

Cake\Auth\BasicAuthenticate::getUser()

loginHeaders()source public

loginHeaders( Cake\Http\ServerRequest $request )

Генерирует заголовки входа

Параметры

Cake\Http\ServerRequest $request
Объект запроса.

Возвращает

массив
Заголовки для входа.

Переопределяет

Cake\Auth\BasicAuthenticate::loginHeaders()

parseAuthData()source public

parseAuthData( string $digest )

Парсит заголовки аутентификации digest и разделяет их.

Параметры

строка $digest
Необработанные заголовки аутентификации digest.

Возвращает

массив|null
Массив заголовков аутентификации digest

password()source public static

password( string $username , string $password , string $realm )

Создаёт хеш пароля digest для хранения

Параметры

строка $username
Имя пользователя для использования в хеше digest.
строка $password
Нехешированный пароль для создания хеша digest.
строка $realm
Сфера действия пароля.

Возвращает

строка
Хешированный пароль, который можно использовать позже с аутентификацией Digest.

validNonce()source protected

validNonce( string $nonce )

Проверяет nonce, чтобы убедиться, что он действителен и не истек.

Параметры

строка $nonce
Значение nonce для проверки.

Возвращает

логическое значение

Методы, унаследованные от Cake\Auth\BasicAuthenticate

authenticate()source public

authenticate( Cake\Http\ServerRequest $request , Cake\Http\Response $response )

Авторизовать пользователя с помощью HTTP-аутентификации. Будет использовать настроенную модель пользователя и попытается выполнить вход с помощью HTTP-аутентификации.

Параметры

Cake\Http\ServerRequest $request
Запрос для аутентификации.
Cake\Http\Response $response
Ответ, к которому нужно добавить заголовки.

Возвращает

mixed
В случае неудачи — false, в случае успеха — массив данных пользователя.

unauthenticated()source public

unauthenticated( Cake\Http\ServerRequest $request , Cake\Http\Response $response )

Обрабатывает попытку доступа без аутентификации, отправляя соответствующие заголовки входа.

Параметры

Cake\Http\ServerRequest $request
Объект запроса.
Cake\Http\Response $response
Объект ответа.

Выбрасывает

Cake\Http\Exception\UnauthorizedException

Переопределяет

Cake\Auth\BaseAuthenticate::unauthenticated()

Методы, унаследованные от Cake\Auth\BaseAuthenticate

_findUser()source protected

_findUser( string $username , string|null $password = null )

Найти запись пользователя по предоставленному имени пользователя и паролю.

Вводимые пароли будут хешироваться, даже если пользователя не существует. Это помогает смягчить атаки с помощью тайминга, которые пытаются найти действительные имена пользователей.

Параметры

string $username
Имя пользователя/идентификатор.
string|null $password optional null

Пароль, если не указан, проверка пароля пропускается, и возвращается результат поиска.

Возвращает

boolean|array
В случае неудачи — false, в случае успеха — массив данных пользователя.

_query()source protected

_query( string $username )

Получить объект запроса для извлечения пользователя из базы данных.

Параметры

string $username
Имя пользователя/идентификатор.

Возвращает

Cake\ORM\Query

implementedEvents()source public

implementedEvents( )

Возвращает список всех событий, на которые будет реагировать этот класс аутентификации.

Класс аутентификации может реагировать на следующие события, генерируемые компонентом Auth:

  • Auth.afterIdentify - Срабатывает после того, как пользователь был идентифицирован с помощью одного из настроенных классов аутентификации. Функция обратного вызова должна иметь сигнатуру, подобную afterIdentify(Event $event, array $user), когда $user — идентифицированная запись пользователя.

  • Auth.logout - Срабатывает, когда вызывается AuthComponent::logout(). Функция обратного вызова должна иметь сигнатуру, подобную logout(Event $event, array $user), где $user — пользователь, который скоро будет разлогинен.

Возвращает

array
Список событий, на которые реагирует этот класс. По умолчанию [].

Реализация

Cake\Event\EventListenerInterface::implementedEvents()

needsPasswordRehash()source public

needsPasswordRehash( )

Возвращает, требуется ли перехешировать пароль, хранящийся в репозитории для вошедшего пользователя, с помощью другого алгоритма.

Возвращает

boolean

passwordHasher()source public

passwordHasher( )

Возвращает объект хеширования паролей.

Возвращает

Cake\Auth\AbstractPasswordHasher
Экземпляр хешера паролей

Выбрасывает

RuntimeException

Если класс хеширования паролей не найден или он не расширяет AbstractPasswordHasher


Методы, используемые из Cake\Core\InstanceConfigTrait

_configDelete()source protected

_configDelete( string $key )

Удаляет отдельный ключ конфигурации.

Параметры

string $key
Ключ для удаления.

Выбрасывает

Cake\Core\Exception\Exception
при попытке перезаписать существующую конфигурацию

_configRead()source protected

_configRead( string|null $key )

Считывает ключ конфигурации.

Параметры

string|null $key
Ключ для чтения.

Возвращает

mixed

_configWrite()source protected

_configWrite( string|array $key , mixed $value , boolean|string $merge = false )

Записывает ключ конфигурации.

Параметры

string|array $key
Ключ для записи.
mixed $value
Значение для записи.
boolean|string $merge optional false

True для рекурсивной слияния, 'shallow' для простого слияния, false для перезаписи, по умолчанию — false.

Выбрасывает

Cake\Core\Exception\Exception
при попытке перезаписать существующую конфигурацию

config()source public deprecated

config( string|array|null $key = null , mixed|null $value = null , boolean $merge = true )

Получение/Установка конфигурации.

Использование

Чтение всей конфигурации:

$this->config();

Чтение определенного значения:

$this->config('key');

Чтение вложенного значения:

$this->config('some.nested.key');

Установка определенного значения:

$this->config('key', $value);

Установка вложенного значения:

$this->config('some.nested.key', $value);

Обновление нескольких настроек конфигурации одновременно:

$this->config(['one' => 'value', 'another' => 'value']);

Устарело

3.4.0 используйте setConfig()/getConfig() вместо этого.

Параметры

string|array|null $key optional null
Ключ для получения/установки или полный массив конфигураций.
mixed|null $value optional null
Значение для установки.
boolean $merge optional true
Выполнять рекурсивное слияние или перезаписывать существующую конфигурацию, по умолчанию — true.

Возвращает

mixed
Считанное значение конфигурации или сам объект при операциях записи.

Выбрасывает

Cake\Core\Exception\Exception
при попытке установки недопустимого ключа.

configShallow()source public

configShallow( string|array $key , mixed|null $value = null )

Объединить предоставленную конфигурацию с существующей конфигурацией. В отличие от config(), которое выполняет рекурсивное слияние для вложенных ключей, этот метод выполняет простое слияние.

Установка определенного значения:

$this->configShallow('key', $value);

Установка вложенного значения:

$this->configShallow('some.nested.key', $value);

Обновление нескольких настроек конфигурации одновременно:

$this->configShallow(['one' => 'value', 'another' => 'value']);

Параметры

string|array $key
Ключ для установки или полный массив конфигураций.
mixed|null $value optional null
Значение для установки.

Возвращает


$this

getConfig()source public

getConfig( string|null $key = null , mixed $default = null )

Возвращает конфигурацию.

Использование

Чтение всей конфигурации:

$this->getConfig();

Чтение определенного значения:

$this->getConfig('key');

Чтение вложенного значения:

$this->getConfig('some.nested.key');

Чтение со значением по умолчанию:

$this->getConfig('some-key', 'default-value');

Параметры

string|null $key optional null
Ключ для получения или null для всей конфигурации.
mixed $default optional null
Возвращаемое значение, если ключ не существует.

Возвращает

mixed
Считанное значение конфигурации.
END_OF_DOCUMENT_MARKER

setConfig()source public

setConfig( string|array $key , mixed|null $value = null , boolean $merge = true )

Устанавливает конфигурацию.

Использование

Установка определенного значения:

$this->setConfig('key', $value);

Установка вложенного значения:

$this->setConfig('some.nested.key', $value);

Обновление нескольких настроек конфигурации одновременно:

$this->setConfig(['one' => 'value', 'another' => 'value']);

Параметры

строка|массив $key
Ключ для установки или полный массив настроек.
смешанный|null $value необязательно null
Значение для установки.
булево $merge необязательно true
Признак рекурсивного слияния или перезаписи существующей конфигурации, по умолчанию — true.

Возвращает


$this

Выбрасывает

Cake\Core\Exception\Exception
При попытке установить недействительный ключ.

Методы, используемые из Cake\ORM\Locator\LocatorAwareTrait

getTableLocator()source public

getTableLocator( )

Получает локетор таблицы.

Возвращает

Cake\ORM\Locator\LocatorInterface

setTableLocator()source public

setTableLocator( Cake\ORM\Locator\LocatorInterface $tableLocator )

Устанавливает локетор таблицы.

Параметры

Cake\ORM\Locator\LocatorInterface $tableLocator
Экземпляр LocatorInterface.

Возвращает


$this

tableLocator()source public deprecated

tableLocator( Cake\ORM\Locator\LocatorInterface $tableLocator = null )

Устанавливает локетор таблицы. Если параметры не переданы, возвращает текущий используемый локетор.

Устарело

3.5.0 Используйте getTableLocator()/setTableLocator() вместо этого.

Параметры

Cake\ORM\Locator\LocatorInterface $tableLocator необязательно null
Экземпляр LocatorInterface.

Возвращает

Cake\ORM\Locator\LocatorInterface

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.6/class-Cake.Auth.DigestAuthenticate.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API