2015-08-12 7 views
0

Я начал создавать свой собственный тестовый сервер, используя 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'); 
+0

Попробуйте ввести пароль в своем браузере, и когда снова откроется диалоговое окно пароля, нажмите escape. Что такое сообщение об ошибке? – Evert

+0

Пожалуйста, ознакомьтесь с Update в моем оригинальном посте! Приветствия! – neggenbe

+0

Убедитесь, что вы * сначала * введите пароль, только после того, как во второй раз вы откроете окно входа в систему. Если вы получите ту же самую ошибку, это в основном означает, что ваш веб-сервер вырезает заголовок auth digest, прежде чем он сможет достичь PHP. – Evert

ответ

3

Кредиты до Evert для указания меня в нужном направлении с использованием файла .htaccess у корневого сервера сервера, который содержит следующий код:

RewriteEngine on 
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] 

 Смежные вопросы

  • Нет связанных вопросов^_^