Я использую Digest Auth в своем приложении CakePHP для защиты некоторых действий. На моем ПК с wamp это работает, но когда я нажимаю на сервер, у меня появляется эта ошибка:
Ошибка: Call to undefined method UnauthorizedException::responseHeader()
Файл: .../lib/Cake/Controller/Component/Auth/BasicAuthenticate.php
Линия: 104
/lib/Cake/Controller/Component/Auth/BasicAuthenticate.php:
public function unauthenticated(CakeRequest $request, CakeResponse $response) {
$Exception = new UnauthorizedException();
$Exception->responseHeader(array($this->loginHeaders())); //Line 104
throw $Exception;
}
У кого-то есть представление о проблеме?
Спасибо за помощь.
UnauthorizedException расширяет HttpException
HttpException имеет следующий бит кода (торт 2.5.6)
if (!class_exists('HttpException', false)) {
class HttpException extends CakeBaseException {
}
}
Если вы уже определили HttpException, то он не будет расширять CakeBaseException и, вероятно, не будет реализована функция responseHeader.
проверьте расширения php и библиотеки вендоров, если у них есть HttpException
я использовал:
$reflector = new ReflectionClass('HttpException');
var_dump($reflector->getFileName()); //if its defined in a php file
var_dump($reflector->getExtensionName()); //if its defined in a php extension
чтобы узнать, что у меня установлено расширение php-http, которое мне не нужно, и для него определен класс HttpException
Других решений пока нет …