Spec-Zone.ru › CakePHP 3.7

Класс DigestAuthenticate

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

Обеспечивает поддержку 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( )

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

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

  • 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']);

Параметры

string|array $key
Ключ для установки или массив конфигураций.
mixed|null $value необязательно null
Значение для установки.
boolean $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 устаревший

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.7/class-Cake.Auth.DigestAuthenticate.html

Spec-Zone.ru

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