CakePHP 2.6.2 — BasicAuthenticate — вызов неопределенного метода UnauthorizedException :: responseHeader ()

Я использую 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;
}

У кого-то есть представление о проблеме?

Спасибо за помощь.

1

Решение

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]