Я начал создавать свой собственный тестовый сервер, используя SabreDav в локальной среде, и все работало нормально.Ошибка аутентификации SabreDav
Теперь я пытаюсь перенести свою конфигурацию на мой веб-сервер производства, и я испытываю всевозможные проблемы с аутентификацией PDO, как описано here.
Я успешно создал свою базу данных, и, без аутентификации, я могу перемещаться по основным узлам (что означает, что мое соединение с DB работает нормально).
При добавлении плагина аутентификации сервера pdo он продолжает запрашивать логин/пароль, хотя я использовал значения по умолчанию, как если бы логин/pwd были неправильными.
Я проверил множество сценариев и не могу понять, почему он препятствует мне входить в систему - поскольку я уверен, что логин/pwd верны!
Тест сценарий: увидеть узлы в MYSERVER/server.php/принципалов/админ/ (администратор является пользователем по умолчанию, созданный в MySQL скриптов, как нашел here).
Покушение 0: УСПЕХ отключить аутентификацию в моем server.php
$authBackend = new Sabre\DAV\Auth\Backend\PDO($pdo);
// -- comment out $authPlugin = new Sabre\DAV\Auth\Plugin($authBackend);
// -- comment out $server->addPlugin($authPlugin);
Попытка 1: FAIL с использованием конфигурации по умолчанию в моем server.php терпит неудачу и продолжает запрос пароля
$authBackend = new Sabre\DAV\Auth\Backend\PDO($pdo);
$authPlugin = new Sabre\DAV\Auth\Plugin($authBackend);
$server->addPlugin($authPlugin);
Попытка 2: FAIL, вызывающая область по умолчанию в server.php, продолжает запрашивать пароль
$authBackend = new Sabre\DAV\Auth\Backend\PDO($pdo);
$authBackend->setRealm('SabreDAV');
$authPlugin = new Sabre\DAV\Auth\Plugin($authBackend);
$server->addPlugin($authPlugin);
Покушения 3: FAIL альтернативного метода форсирования области по умолчанию в server.php продолжает запрос пароля
$authBackend = new Sabre\DAV\Auth\Backend\PDO($pdo);
$authPlugin = new Sabre\DAV\Auth\Plugin($authBackend, 'SabreDAV');
$server->addPlugin($authPlugin);
Попытки 4: FAIL сохранить ту же область 'SabreDAV' и генерировать (на самом деле, я обязательно использовал тот же логин/пароль, что и на моем локальном сервере, который работает локально, но не на сервере веб-производства ...)
$authBackend = new Sabre\DAV\Auth\Backend\PDO($pdo);
$authPlugin = new Sabre\DAV\Auth\Plugin($authBackend, 'SabreDAV');
$server->addPlugin($authPlugin);
ВАЖНОЕ ЗАМЕЧАНИЕ: Похоже, что моя производственная база данных mysql хранит введенные данные - если это источник проблемы, есть ли способ решить проблему?
В окне входа указано 'Имя пользователя и пароль запрашиваются https://mywebsite.com. На сайте говорится: «SabreDAV».
Тогда при ударе бежать, вот страница ошибки:
<d:error>
<s:sabredav-version>3.0.3</s:sabredav-version>
<s:exception>Sabre\DAV\Exception\NotAuthenticated</s:exception>
<s:message>No 'Authorization: Digest' header found. Either the client didn't send one, or the server is mis-configured</s:message>
</d:error>
Я настройка дайджеста в моей конфигурации сервера, как я использую стандартный способ, описанный в учебниках:
$authPlugin = new Sabre\DAV\Auth\Plugin($authBackend, 'SabreDAV');
Попробуйте ввести пароль в своем браузере, и когда снова откроется диалоговое окно пароля, нажмите escape. Что такое сообщение об ошибке? – Evert
Пожалуйста, ознакомьтесь с Update в моем оригинальном посте! Приветствия! – neggenbe
Убедитесь, что вы * сначала * введите пароль, только после того, как во второй раз вы откроете окно входа в систему. Если вы получите ту же самую ошибку, это в основном означает, что ваш веб-сервер вырезает заголовок auth digest, прежде чем он сможет достичь PHP. – Evert