我开始在本地环境中使用SabreDav创建自己的测试服务器,所有这些都运行得很好。
现在,我正试图将我的配置迁移到我的生产web服务器上,并且遇到了这里所描述的PDO身份验证的各种问题。
我成功地创建了我的数据库,并且在没有身份验证的情况下,我能够导航主体节点(这意味着我的DB连接正常工作)。
当添加服务器pdo身份验证插件时,它会一直询问登录/密码,尽管我使用了默认值,好像login/pwd是错误的。
我测试了许多场景,无法弄清楚为什么它一直阻止我登录-因为我很确定登录/ pwd是正确的!
myServer/server.php//admin/(是在myServer/server.php/这里脚本中创建的默认用户)。
尝试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‘并生成不同的摘要(实际上,我确保使用与本地服务器完全相同的登录/密码,而不是在web生产服务器上使用.)
$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');发布于 2015-09-10 15:16:47
使用包含以下代码的服务器根目录上的一个埃弗特文件向我指出正确的方向,这将归功于.htaccess:
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]https://stackoverflow.com/questions/31965774
复制相似问题