]> source.dussan.org Git - nextcloud-server.git/commitdiff
Fix WebDAV (and Android Client) not being able to authorize on Debian Squeeze + mod_f...
authorStefan Seidel <android@stefanseidel.info>
Fri, 9 Nov 2012 12:30:07 +0000 (13:30 +0100)
committerStefan Seidel <android@stefanseidel.info>
Fri, 9 Nov 2012 12:30:07 +0000 (13:30 +0100)
.htaccess
lib/base.php
lib/setup.php

index a5d51c78087fe7fc1930541769111f0f729ea124..2d7b7dcc364b4c5de3612f5318a75f1d4324883b 100755 (executable)
--- a/.htaccess
+++ b/.htaccess
@@ -1,3 +1,11 @@
+<IfModule mod_fcgid.c>
+<IfModule mod_setenvif.c>
+<IfModule mod_headers.c>
+SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
+RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
+</IfModule>
+</IfModule>
+</IfModule>
 ErrorDocument 403 /core/templates/403.php
 ErrorDocument 404 /core/templates/404.php
 <IfModule mod_php5.c>
index d4eeac82daa056e12797843560b7e92fd9573621..bed50c904c7f851c172790952fc56d3141f5712b 100644 (file)
@@ -356,6 +356,10 @@ class OC{
                //try to set the session lifetime to 60min
                @ini_set('gc_maxlifetime', '3600');
 
+               //copy http auth headers for apache+php-fcgid work around
+               if (isset($_SERVER['HTTP_XAUTHORIZATION']) && !isset($_SERVER['HTTP_AUTHORIZATION'])) {
+                       $_SERVER['HTTP_AUTHORIZATION'] = $_SERVER['HTTP_XAUTHORIZATION'];
+               }
 
                //set http auth headers for apache+php-cgi work around
                if (isset($_SERVER['HTTP_AUTHORIZATION']) && preg_match('/Basic\s+(.*)$/i', $_SERVER['HTTP_AUTHORIZATION'], $matches)) {
index 726b3352d50ed857bffc1f4fe39d1d0d43c7819e..013ae2f6efc9422f82a599e6599a0928848237c5 100644 (file)
@@ -573,7 +573,15 @@ class OC_Setup {
         * create .htaccess files for apache hosts
         */
        private static function createHtaccess() {
-               $content = "ErrorDocument 403 ".OC::$WEBROOT."/core/templates/403.php\n";//custom 403 error page
+               $content = "<IfModule mod_fcgid.c>\n";
+               $content.= "<IfModule mod_setenvif.c>\n";
+               $content.= "<IfModule mod_headers.c>\n";
+               $content.= "SetEnvIfNoCase ^Authorization$ \"(.+)\" XAUTHORIZATION=$1\n";
+               $content.= "RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION\n";
+               $content.= "</IfModule>\n";
+               $content.= "</IfModule>\n";
+               $content.= "</IfModule>\n";
+               $content.= "ErrorDocument 403 ".OC::$WEBROOT."/core/templates/403.php\n";//custom 403 error page
                $content.= "ErrorDocument 404 ".OC::$WEBROOT."/core/templates/404.php\n";//custom 404 error page
                $content.= "<IfModule mod_php5.c>\n";
                $content.= "php_value upload_max_filesize 512M\n";//upload limit