I´m having the same problem!
If your eGroupware is not accepting your credentials, is necessary this workaround:
-
Apache - Settings
mod_rewrite = on
register_globals = Off
-
Save the following files if anything goes wrong :
/.htaccess
/webdav.php
/groupdav.php
(Trunk >= r30059) /phpgwapi/inc/class.egw_digest_auth.inc.php
-
Edit .htaccess:
ADD:
RewriteEngine on
RewriteCond %{HTTP:Authorization} ^Basic.*
RewriteRule ^webdav.* webdav.php?auth=%{HTTP:Authorization} [QSA,L]
RewriteRule ^groupdav.* groupdav.php?auth=%{HTTP:Authorization} [QSA,L]
========= < Trunk-Version r30059:
- Edit webdav.php (version 27668 2009-08-18 07:55:59Z):
SEARCH & REPLACE:
function check_access(&$account){…}
WITH:
function check_access(&$account)
{
if (isset($_SERVER[‘PHP_AUTH_USER’]))
{
$user = $_SERVER[‘PHP_AUTH_USER’];
$pass = $_SERVER[‘PHP_AUTH_PW’];
}
elseif(isset($_GET[‘auth’]))
{
if (preg_match(’/Basic\s+(.*)$/i’, $_GET[‘auth’], $auth))
{
list($user,$pass) = explode(’:’, base64_decode($auth[1]));
}
}
if (!isset($user) || !($sessionid = $GLOBALS[‘egw’]->session->create($user,$pass,‘text’)))
{
header(‘WWW-Authenticate: Basic realm="’.vfs_webdav_server::REALM.
// if the session class gives a reason why the login failed --> append it to the REALM
($GLOBALS[‘egw’]->session->reason ? ‘: ‘.$GLOBALS[‘egw’]->session->reason : ‘’).’"’);
header(“HTTP/1.1 401 Unauthorized”);
header(“X-!WebDAV-Status: 401 Unauthorized”, true);
exit;
}
return $sessionid;
}
- Edit groupdav.php (version 26747 2009-04-04 08:38:56Z):
SEARCH & REPLACE:
if (!isset($_SERVER[‘PHP_AUTH_USER’]) ||
!($sessionid = $GLOBALS[‘egw’]->session->create($_SERVER[‘PHP_AUTH_USER’],$_SERVER[‘PHP_AUTH_PW’],‘text’)))
WITH:
if (isset($_SERVER[‘PHP_AUTH_USER’]))
{
$user = $_SERVER[‘PHP_AUTH_USER’];
$pass = $_SERVER[‘PHP_AUTH_PW’];
}
elseif(isset($_GET[‘auth’]))
{
if (preg_match(’/Basic\s+(.*)$/i’, $_GET[‘auth’], $auth))
{
list($user,$pass) = explode(’:’, base64_decode($auth[1]));
}
}
if (!isset($user) || !($sessionid = $GLOBALS[‘egw’]->session->create($user,$pass,‘text’)))
========= >= Trunk-Version r30059:
-
…
-
Edit class.egw_digest_auth.inc.php:
SEARCH & REPLACE:
static public function autocreate_session_callback(&$account)
{
WITH:
static public function autocreate_session_callback(&$account)
{
if(isset($_GET[‘auth’]))
{
if (preg_match(’/Basic\s+(.*)$/i’, $_GET[‘auth’], $auth))
{
list($_SERVER[‘PHP_AUTH_USER’],$_SERVER[‘PHP_AUTH_PW’]) = explode(’:’, base64_decode($auth[1]));
}
}
- that’s all…
This workaround is written by DaKu