0

我开始在本地环境中使用 SabreDav 创建自己的测试服务器,一切正常。

现在,我正在尝试将我的配置迁移到我的生产 Web 服务器,并且我在使用此处描述的 PDO 身份验证时遇到了各种问题。

我成功地创建了我的数据库,并且在没有身份验证的情况下,我能够导航主要节点(这意味着我的数据库连接工作正常)。

添加服务器 pdo 身份验证插件时,它一直要求输入登录名/密码,尽管我使用了默认值,好像登录名/密码错误。

我测试了许多场景,但无法弄清楚为什么它一直阻止我登录 - 因为我很确定登录/密码是正确的!

测试场景:查看myServer/server.php/principals/admin/中的节点(admin 是在此处找到的 mysql 脚本中创建的默认用户)。

尝试 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:在 server.php 中强制使用默认领域的 FAIL 替代方法不断提示输入密码

$authBackend = new Sabre\DAV\Auth\Backend\PDO($pdo);
$authPlugin = new Sabre\DAV\Auth\Plugin($authBackend, 'SabreDAV');
$server->addPlugin($authPlugin);

尝试 4:失败保持相同的领域“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');
4

1 回答 1

5

感谢Evert.htaccess使用服务器根目录中包含以下代码的文件将我指向正确的方向:

RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
于 2015-09-10T15:16:47.070 回答