Bug fix: correct authentification for API with CGI
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@92 b3834d28-1941-0410-a4f8-b48e95affb8f
This commit is contained in:
parent
920f836e29
commit
836f47cf2a
2 changed files with 24 additions and 2 deletions
|
@ -8,3 +8,12 @@ RewriteRule ^posts/update posts_update.php
|
|||
RewriteRule ^posts/add posts_add.php
|
||||
RewriteRule ^posts/delete posts_delete.php
|
||||
RewriteRule ^tags/rename tags_rename.php
|
||||
|
||||
|
||||
# Allow PHP_AUTH_USER with CGI script
|
||||
# (Sinpired by http://www.yetanothercommunitysystem.com/article-321-regle-comment-utiliser-l-authentification-http-en-php-chez-ovh )
|
||||
|
||||
<IfModule mod_rewrite.c>
|
||||
RewriteEngine on
|
||||
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
|
||||
</IfModule>
|
||||
|
|
|
@ -5,9 +5,22 @@
|
|||
function authenticate() {
|
||||
header('WWW-Authenticate: Basic realm="SemanticScuttle API"');
|
||||
header('HTTP/1.0 401 Unauthorized');
|
||||
|
||||
die("Use of the API calls requires authentication.");
|
||||
}
|
||||
|
||||
|
||||
/* Maybe we have caught authentication data in $_SERVER['REMOTE_USER']
|
||||
( Inspired by http://www.yetanothercommunitysystem.com/article-321-regle-comment-utiliser-l-authentification-http-en-php-chez-ovh ) */
|
||||
if((!$_SERVER['PHP_AUTH_USER'] || !$_SERVER['PHP_AUTH_USER'])
|
||||
&& preg_match('/Basic\s+(.*)$/i', $_SERVER['REMOTE_USER'], $matches)) {
|
||||
list($name, $password) = explode(':', base64_decode($matches[1]));
|
||||
$_SERVER['PHP_AUTH_USER'] = strip_tags($name);
|
||||
$_SERVER['PHP_AUTH_PW'] = strip_tags($password);
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (!isset($_SERVER['PHP_AUTH_USER'])) {
|
||||
authenticate();
|
||||
} else {
|
||||
|
|
Loading…
Reference in a new issue