use factory method for oauthprovider
authorChristian Weiske <cweiske@cweiske.de>
Thu, 21 Aug 2014 15:09:07 +0000 (17:09 +0200)
committerChristian Weiske <cweiske@cweiske.de>
Thu, 21 Aug 2014 15:09:07 +0000 (17:09 +0200)
controller/apicontroller.php
controller/oauthcontroller.php
lib/oauth.php

index 4c7af48..aa21429 100644 (file)
@@ -67,7 +67,7 @@ class ApiController extends Controller
         $urlGen = $deps->urlGen;
 
         try {
-            $provider = new \OAuthProvider();
+            $provider = OAuth::getProvider();
             $oauth->registerHandler($provider)
                 ->registerAccessTokenHandler($provider);
             $provider->checkOAuthRequest(
index d02b7b8..29198bc 100644 (file)
@@ -72,7 +72,7 @@ class OauthController extends Controller
         $urlGen = $this->deps->urlGen;
 
         try {
-            $provider = new \OAuthProvider();
+            $provider = OAuth::getProvider();
             $oauth->registerHandler($provider)
                 ->registerVerificationTokenHandler($provider);
             $provider->checkOAuthRequest(
@@ -167,7 +167,7 @@ class OauthController extends Controller
         }
 
         //the user is logged in and authorized
-        $provider = new \OAuthProvider();
+        $provider = OAuth::getProvider();
 
         $newToken = new Token('verify');
         $newToken->tokenKey = $token->tokenKey;
@@ -230,7 +230,7 @@ class OauthController extends Controller
         $urlGen = $this->deps->urlGen;
 
         try {
-            $provider = new \OAuthProvider();
+            $provider = OAuth::getProvider();
             $oauth->registerHandler($provider);
             $provider->isRequestTokenEndpoint(true);
             $provider->checkOAuthRequest(
index 7cfd4e0..e2eb651 100644 (file)
@@ -106,7 +106,7 @@ class OAuth
     public function verifyOAuthUser($username, $url)
     {
         try {
-            $provider = new \OAuthProvider();
+            $provider = OAuth::getProvider();
             $this->registerHandler($provider);
             $this->registerAccessTokenHandler($provider);
             //do not use "user" in signature
@@ -131,5 +131,16 @@ class OAuth
         //var_dump($e);
         exit(1);
     }
+
+    /**
+     * Get a new oauth provider instance.
+     * Used to work around the fastcgi bug in oauthprovider.
+     * 
+     * @return \OAuthProvider
+     */
+    public static function getProvider()
+    {
+        return new \OAuthProvider();
+    }
 }
 ?>