SabreDav 身份验证失败
SabreDav authentication fails
我开始在本地环境中使用 SabreDav 创建自己的测试服务器,一切正常。
现在,我正在尝试将我的配置迁移到我的生产 Web 服务器,但我遇到了 PDO 身份验证的各种问题,如 here 所述。
我成功创建了我的数据库,无需身份验证,我就可以导航主要节点(这意味着我的数据库连接工作正常)。
添加服务器 pdo 身份验证插件时,它一直要求 login/password,虽然我使用了默认值,好像 login/pwd 是错误的。
我测试了很多场景,但无法弄清楚为什么它一直阻止我登录 - 因为我很确定登录名/密码是正确的!
测试场景:查看myServer/server中的节点。php/principals/admin/(管理员为默认用户在 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:失败 在我的 server.php 中使用默认配置失败并不断提示输入密码
$authBackend = new Sabre\DAV\Auth\Backend\PDO($pdo);
$authPlugin = new Sabre\DAV\Auth\Plugin($authBackend);
$server->addPlugin($authPlugin);
尝试 2:失败 在 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 中强制使用默认领域的替代方法不断提示输入密码
$authBackend = new Sabre\DAV\Auth\Backend\PDO($pdo);
$authPlugin = new Sabre\DAV\Auth\Plugin($authBackend, 'SabreDAV');
$server->addPlugin($authPlugin);
尝试 4:失败 保持相同的领域 'SabreDAV' 并生成不同的摘要(实际上,我确保使用完全相同的 login/password 作为在我本地工作的本地服务器中,但不在网络生产服务器上...)
$authBackend = new Sabre\DAV\Auth\Backend\PDO($pdo);
$authPlugin = new Sabre\DAV\Auth\Plugin($authBackend, 'SabreDAV');
$server->addPlugin($authPlugin);
重要提示:我的产品 mysql 数据库似乎存储了加密数据 - 如果这是问题的根源,是否有解决问题的方法?
登录 window 说
´https://mywebsite.com 正在请求用户名和密码。该网站说:"SabreDAV"´。
然后当点击escape时,这里是错误页面:
<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');
感谢 Evert 使用服务器根目录中包含以下代码的 .htaccess
文件为我指明了正确的方向:
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
我开始在本地环境中使用 SabreDav 创建自己的测试服务器,一切正常。
现在,我正在尝试将我的配置迁移到我的生产 Web 服务器,但我遇到了 PDO 身份验证的各种问题,如 here 所述。
我成功创建了我的数据库,无需身份验证,我就可以导航主要节点(这意味着我的数据库连接工作正常)。
添加服务器 pdo 身份验证插件时,它一直要求 login/password,虽然我使用了默认值,好像 login/pwd 是错误的。
我测试了很多场景,但无法弄清楚为什么它一直阻止我登录 - 因为我很确定登录名/密码是正确的!
测试场景:查看myServer/server中的节点。php/principals/admin/(管理员为默认用户在 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:失败 在我的 server.php 中使用默认配置失败并不断提示输入密码
$authBackend = new Sabre\DAV\Auth\Backend\PDO($pdo);
$authPlugin = new Sabre\DAV\Auth\Plugin($authBackend);
$server->addPlugin($authPlugin);
尝试 2:失败 在 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 中强制使用默认领域的替代方法不断提示输入密码
$authBackend = new Sabre\DAV\Auth\Backend\PDO($pdo);
$authPlugin = new Sabre\DAV\Auth\Plugin($authBackend, 'SabreDAV');
$server->addPlugin($authPlugin);
尝试 4:失败 保持相同的领域 'SabreDAV' 并生成不同的摘要(实际上,我确保使用完全相同的 login/password 作为在我本地工作的本地服务器中,但不在网络生产服务器上...)
$authBackend = new Sabre\DAV\Auth\Backend\PDO($pdo);
$authPlugin = new Sabre\DAV\Auth\Plugin($authBackend, 'SabreDAV');
$server->addPlugin($authPlugin);
重要提示:我的产品 mysql 数据库似乎存储了加密数据 - 如果这是问题的根源,是否有解决问题的方法?
登录 window 说 ´https://mywebsite.com 正在请求用户名和密码。该网站说:"SabreDAV"´。
然后当点击escape时,这里是错误页面:
<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');
感谢 Evert 使用服务器根目录中包含以下代码的 .htaccess
文件为我指明了正确的方向:
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]