Commit bc7387355f7de205906e616aa712e809bf2deb38

Authored by Megan Watson
1 parent 4c2facdd

Added workaround for mod_auth with php in cgi mode

PT: 1627005

Committed by: Megan Watson
.htaccess
... ... @@ -95,6 +95,11 @@ php_value max_execution_time 0
95 95 php_value error_reporting 5
96 96 </IfModule>
97 97  
  98 +# Workaround for mod_auth when running php cgi
  99 +<IfModule mod_rewrite.c>
  100 +RewriteEngine on
  101 +RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
  102 +</IfModule>
98 103  
99 104 #<IfModule mod_rewrite.c>
100 105 #RewriteEngine On
... ...
ktwebdav/lib/KTWebDAVServer.inc.php
... ... @@ -372,6 +372,11 @@ class KTWebDAVServer extends HTTP_WebDAV_Server
372 372 {
373 373 $this->ktwebdavLog('Entering _check_auth...', 'info', true);
374 374  
  375 + // Workaround for mod_auth when running php cgi
  376 + if(!isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['HTTP_AUTHORIZATION'])){
  377 + list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':' , base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
  378 + }
  379 +
375 380 if (method_exists($this, 'checkAuth')) {
376 381 // PEAR style method name
377 382 return $this->checkAuth(@$_SERVER['AUTH_TYPE'],
... ...
... ... @@ -5,7 +5,7 @@
5 5 * KnowledgeTree Community Edition
6 6 * Document Management Made Simple
7 7 * Copyright (C) 2008, 2009 KnowledgeTree Inc.
8   - *
  8 + *
9 9 *
10 10 * This program is free software; you can redistribute it and/or modify it under
11 11 * the terms of the GNU General Public License version 3 as published by the
... ... @@ -40,6 +40,9 @@ require_once(KT_LIB_DIR .&#39;/authentication/DBAuthenticator.inc&#39;);
40 40 require_once(KT_LIB_DIR .'/authentication/authenticationutil.inc.php');
41 41 require_once(KT_DIR. '/plugins/rssplugin/KTrss.inc.php');
42 42  
  43 +// Workaround for mod_auth when running php cgi
  44 +list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':' , base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
  45 +
43 46 // workaround to get http authentication working in cgi mode
44 47 $altinfo = KTUtil::arrayGet( $_SERVER, 'kt_auth', KTUtil::arrayGet( $_SERVER, 'REDIRECT_kt_auth'));
45 48 if ( !empty( $altinfo) && !isset( $_SERVER['PHP_AUTH_USER'])) {
... ...
webservice/classes/atompub/KT_atom_HTTPauth.inc.php
1 1 <?php
2 2 class KT_atom_HTTPauth{
3 3 public static function getCredentials(){
  4 +
  5 + // Workaround for mod_auth when running php cgi
  6 + if(!isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['HTTP_AUTHORIZATION'])){
  7 + list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':' , base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
  8 + }
  9 +
4 10 $credentials=array('user'=>'','pass'=>'','method'=>'');
5 11 if(isset($_SERVER['PHP_AUTH_USER'])){
6 12 $credentials['user']=$_SERVER['PHP_AUTH_USER'];
... ...