Spec-Zone.ru › CakePHP 3.5

Класс DigestAuthenticate

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

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

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

В массиве компонентов вашего контроллера добавьте auth и необходимую конфигурацию

public $components = [
     'Auth' => [
         'authenticate' => ['Digest']
     ]
 ];

Вы также должны установить AuthComponent::$sessionKey = false; в методе beforeFilter() вашего контроллера AppController, чтобы предотвратить отправку CakePHP куки сессии клиенту.

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

Вы также можете использовать $this->Auth->unauthorizedRedirect = false;. Это заставит компонент Auth выбросить исключение ForbiddenException вместо перенаправления на другую страницу.

Генерация паролей, совместимых с 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
Extended by Cake\Auth\BasicAuthenticate
Extended by Cake\Auth\DigestAuthenticate
Пространство имен: Cake\Auth
Расположение: Auth/DigestAuthenticate.php

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

  • _defaultConfig, _needsPasswordRehash, _passwordHasher, _registry _config, _configInitialized

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

  • __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
Ответ для добавления заголовков.

Возвращает

смешанное значение
Либо false при ошибке, либо массив данных пользователя при успехе.
END_OF_DOCUMENT_MARKER

unauthenticated()source public

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

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

Параметры

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

Исключения

Cake\Network\Exception\UnauthorizedException

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

Cake\Auth\BaseAuthenticate::unauthenticated()

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

_findUser()source protected

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

Поиск записи пользователя по имени пользователя и паролю.

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

Параметры

string $username
Имя пользователя/идентификатор.
string|null $password необязательно 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 необязательно false

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

Исключения

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

config()source public

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 необязательно null
Ключ для получения/установки или массив конфигураций.
mixed|null $value необязательно null
Значение для установки.
boolean $merge необязательно 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 необязательно 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 необязательно null
Ключ для получения или null для всей конфигурации.
mixed $default необязательно null
Возвращаемое значение, если ключ не существует.

Возвращает

mixed
Значение конфигурации, которое считывается.

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
При попытке установить недопустимый ключ.

© 2005–2018 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.5/class-Cake.Auth.DigestAuthenticate.html

Spec-Zone.ru

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