Try to fix issue #10; work around bug https://bugs.php.net/bug.php?id=68168
[grauphel.git] / lib / oauth.php
index 231a177cfc2cd177cd3afeddda624d758b6758e2..41af3490953d078fec47a13c5e6af0382b87c339 100644 (file)
@@ -160,6 +160,17 @@ class OAuth
     {
         //$_SERVER['REDIRECT_HTTP_AUTHORIZATION'] = $_SERVER['HTTP_AUTHORIZATION'];
         //unset($_SERVER['HTTP_AUTHORIZATION']);
+        if ((isset($_SERVER['HTTP_AUTHORIZATION'])
+                && strtolower(substr($_SERVER['HTTP_AUTHORIZATION'], 0, 5)) != 'oauth')
+            || (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])
+                && strtolower(substr($_SERVER['REDIRECT_HTTP_AUTHORIZATION'], 0, 5)) != 'oauth')
+        ) {
+            //work around bug https://bugs.php.net/bug.php?id=68168
+            //#68168: HTTP Basic auth reported as "signature_method_rejected"
+            throw new \OAuthException(
+                'No oauth auth header', OAUTH_PARAMETER_ABSENT
+            );
+        }
 
         $params = array();
         if (!isset($_SERVER['HTTP_AUTHORIZATION'])