Spec-Zone.ru › CakePHP 3.4

Класс 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.salt.
  • 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( )

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

Класс авторизации может подписываться на следующие события, запускаемые компонентом 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 необязательно false

Истинно для рекурсивного объединения, 'shallow' для простого объединения, ложно для перезаписи, по умолчанию ложно.

Выбрасывает

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
Выполнять рекурсивное объединение или перезапись существующей конфигурации, по умолчанию истинно.

Возвращает

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
Выполнять рекурсивное объединение или перезапись существующей конфигурации, по умолчанию истинно.

Возвращает


$this

Выбрасывает

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

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

Spec-Zone.ru

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