[Fusionforge-commits] r14317 - in trunk/src/plugins/oauthprovider: db include www

Madhumita Dhar mdhar at fusionforge.org
Mon Sep 5 17:28:43 CEST 2011


Author: mdhar
Date: 2011-09-05 17:28:42 +0200 (Mon, 05 Sep 2011)
New Revision: 14317

Modified:
   trunk/src/plugins/oauthprovider/db/oauthprovider-init.sql
   trunk/src/plugins/oauthprovider/include/fusionforge_oauth_datastore.php
   trunk/src/plugins/oauthprovider/include/request_token_api.php
   trunk/src/plugins/oauthprovider/www/access_token.php
   trunk/src/plugins/oauthprovider/www/authorize.php
   trunk/src/plugins/oauthprovider/www/consumer.php
   trunk/src/plugins/oauthprovider/www/token_authorize.php
Log:
adding code for oauth verifier

Modified: trunk/src/plugins/oauthprovider/db/oauthprovider-init.sql
===================================================================
--- trunk/src/plugins/oauthprovider/db/oauthprovider-init.sql	2011-09-05 11:31:45 UTC (rev 14316)
+++ trunk/src/plugins/oauthprovider/db/oauthprovider-init.sql	2011-09-05 15:28:42 UTC (rev 14317)
@@ -16,6 +16,7 @@
                                 token_key VARCHAR(250) NOT NULL,
                                 token_secret VARCHAR(250) NOT NULL,
 				authorized INTEGER NOT NULL DEFAULT 0,
+				verifier VARCHAR (150) NOT NULL DEFAULT 0,
 				user_id	INTEGER NULL,
 				role_id INTEGER NOT NULL DEFAULT 0,
 				time_stamp INTEGER NOT NULL,

Modified: trunk/src/plugins/oauthprovider/include/fusionforge_oauth_datastore.php
===================================================================
--- trunk/src/plugins/oauthprovider/include/fusionforge_oauth_datastore.php	2011-09-05 11:31:45 UTC (rev 14316)
+++ trunk/src/plugins/oauthprovider/include/fusionforge_oauth_datastore.php	2011-09-05 15:28:42 UTC (rev 14317)
@@ -581,8 +581,8 @@
 
 			$token_id = db_insertid($t_result, $t_token_table, 'id');
 		} else { # update
-			$t_query = "UPDATE $t_token_table SET consumer_id=$1, token_key=$2, token_secret=$3, authorized=$4, user_id=$5, role_id=$6, time_stamp=$7 WHERE id=$8";
-			db_query_params( $t_query, array( $token->getConsumerId(), $token->key, $token->secret, $token->getAuthorized(), $token->getUserId(), $token->getRoleId(), $token->gettime_stamp(), $token->getId() ) );
+			$t_query = "UPDATE $t_token_table SET consumer_id=$1, token_key=$2, token_secret=$3, authorized=$4, verifier=$5, user_id=$6, role_id=$7, time_stamp=$8 WHERE id=$9";
+			db_query_params( $t_query, array( $token->getConsumerId(), $token->key, $token->secret, $token->getAuthorized(), $token->getVerifier(), $token->getUserId(), $token->getRoleId(), $token->gettime_stamp(), $token->getId() ) );
 		}
 		return $token_id;
 	}

Modified: trunk/src/plugins/oauthprovider/include/request_token_api.php
===================================================================
--- trunk/src/plugins/oauthprovider/include/request_token_api.php	2011-09-05 11:31:45 UTC (rev 14316)
+++ trunk/src/plugins/oauthprovider/include/request_token_api.php	2011-09-05 15:28:42 UTC (rev 14317)
@@ -36,6 +36,7 @@
 class OauthAuthzRequestToken extends OauthAuthzToken {
 
   protected $authorized; // if a user has authorized the token
+  protected $verifier; //the oauth verifier code
   protected $role_id; //access level granted
 
   const TOKEN_TYPE = 'request';
@@ -48,16 +49,21 @@
    * @param int $p_user_id
    * @param int $p_time_stamp
    */
-  function __construct( $p_consumer_id, $p_key, $p_secret, $p_authorized=false, $p_user_id=null, $p_role_id=null, $p_time_stamp=null) {
+  function __construct( $p_consumer_id, $p_key, $p_secret, $p_authorized=false, $p_verifier=FALSE, $p_user_id=null, $p_role_id=null, $p_time_stamp=null) {
     parent::__construct( $p_consumer_id, $p_key, $p_secret, $p_user_id, $p_time_stamp);
 
     $this->authorized = $p_authorized;
+    $this->verifier = $p_verifier;
     $this->role_id = $p_role_id;
   }
 
   public function getAuthorized() {
   	return $this->authorized;
   }
+  
+  public function getVerifier()	{
+  	return $this->verifier;
+  }
 
   public function getRoleId() {
   	return $this->role_id;
@@ -69,7 +75,7 @@
    * @return OauthAuthzRequestToken
    */
   static function row_to_new_token ($t_row) {
-    $t_token = new OauthAuthzRequestToken( $t_row['consumer_id'], $t_row['token_key'], $t_row['token_secret'], $t_row['authorized'], $t_row['user_id'], $t_row['role_id'], $t_row['time_stamp'] );
+    $t_token = new OauthAuthzRequestToken( $t_row['consumer_id'], $t_row['token_key'], $t_row['token_secret'], $t_row['authorized'], $t_row['verifier'], $t_row['user_id'], $t_row['role_id'], $t_row['time_stamp'] );
 
     $t_token->id = $t_row['id'];
 
@@ -120,10 +126,18 @@
 
   public function authorize($user_id, $role_id) {
   	$this->authorized = 1;
+  	$this->verifier = substr(sha1(util_randbytes(32)),-10,12);
   	$this->user_id = $user_id;
-  	$this->role_id = $role_id;
+  	$this->role_id = $role_id;   	
   	$this->save();
+  	return $this->verifier;
   }
+  
+  public function check_verifier($verifier)	{
+  	if(!$this->verifier || ($this->verifier!=$verifier))	 {
+  		throw new OAuthException("Incorrect OAuth verification code provided.");
+  	}
+  }
 
 
 };

Modified: trunk/src/plugins/oauthprovider/www/access_token.php
===================================================================
--- trunk/src/plugins/oauthprovider/www/access_token.php	2011-09-05 11:31:45 UTC (rev 14316)
+++ trunk/src/plugins/oauthprovider/www/access_token.php	2011-09-05 15:28:42 UTC (rev 14317)
@@ -42,6 +42,13 @@
 	// Retrieves an access token in exchange from the request token provided
 	$req = OAuthRequest::from_request();
 	//print_r($req->get_parameters());
+	$verifier = $req->get_parameter('oauth_verifier');
+	
+	$request_token_key = $req->get_parameter('oauth_token');
+	$request_token = OauthAuthzRequestToken::load_by_key($request_token_key);
+	//make sure the verification code received in the request is the same as was sent when authorizing the request token
+	$request_token->check_verifier($verifier);	
+	
 	$token = $oauthprovider_server->fetch_access_token($req);
 
 	// the default print method is exactly what must be returned

Modified: trunk/src/plugins/oauthprovider/www/authorize.php
===================================================================
--- trunk/src/plugins/oauthprovider/www/authorize.php	2011-09-05 11:31:45 UTC (rev 14316)
+++ trunk/src/plugins/oauthprovider/www/authorize.php	2011-09-05 15:28:42 UTC (rev 14317)
@@ -44,10 +44,10 @@
 try {
 
 	$req = OAuthRequest::from_request();
-	//  print_r($req);
+	 //print_r($req);
 
 	$p_token = $req->get_parameter('oauth_token');
-	//  echo "token : $p_token";
+	//echo "token : $p_token";
 
 	$t_request_token = OauthAuthzRequestToken::load_by_key($p_token);
 
@@ -64,18 +64,10 @@
 	foreach (RBACEngine::getInstance()->getAvailableRolesForUser($user) as $role) {
 
 		if ($role->getHomeProject()) {
-			if($groupname) {
-				if ($role->getHomeProject()->getID() == $group->getID()) {
+			if ($role->getHomeProject()->getID() == $group->getID()) {
 					//print_r('role1 :');
 					$roles[] = $role ;
-				}
-			}
-			else {
-				//print_r('role2 :');
-				//print_r($role);
-				$roles[] = $role ;
-			}
-
+			}			
 		}
 	}
 

Modified: trunk/src/plugins/oauthprovider/www/consumer.php
===================================================================
--- trunk/src/plugins/oauthprovider/www/consumer.php	2011-09-05 11:31:45 UTC (rev 14316)
+++ trunk/src/plugins/oauthprovider/www/consumer.php	2011-09-05 15:28:42 UTC (rev 14317)
@@ -59,13 +59,13 @@
 
 	if ( $t_can_manage ) { ?>
           <td class="center">
-	  print util_make_link('/plugins/'.$pluginname.'/consumer_manage.php?consumer_id=' . $t_consumer->getId() , _('Manage'));
+	  <?php print util_make_link('/plugins/'.$pluginname.'/consumer_manage.php?consumer_id=' . $t_consumer->getId() , _('Manage'));
 	  ?></td><?php
 	}
 
 	if ( $t_can_manage ) { ?>
           <td class="center">
-	  print util_make_link('/plugins/'.$pluginname.'/consumer_delete.php?consumer_id=' . $t_consumer->getId() . '&plugin_oauthprovider_consumer_delete_token='.form_generate_key(), _('Delete'));
+	  <?php print util_make_link('/plugins/'.$pluginname.'/consumer_delete.php?consumer_id=' . $t_consumer->getId() . '&plugin_oauthprovider_consumer_delete_token='.form_generate_key(), _('Delete'));
           ?></td><?php
 
 	}

Modified: trunk/src/plugins/oauthprovider/www/token_authorize.php
===================================================================
--- trunk/src/plugins/oauthprovider/www/token_authorize.php	2011-09-05 11:31:45 UTC (rev 14316)
+++ trunk/src/plugins/oauthprovider/www/token_authorize.php	2011-09-05 15:28:42 UTC (rev 14317)
@@ -53,13 +53,13 @@
 		//    echo "user : $user_id";
 
 		// mark as authorized by the user in the DB
-		$t_token->authorize($user_id, $f_role_id);
+		$verifier = $t_token->authorize($user_id, $f_role_id);
 
 		form_release_key(getStringFromRequest('plugin_oauthprovider_token_authorize_token'));
 
 		if($f_callback_url) {
 		//echo "Redirect : $callback_url?oauth_token=$p_token \n";exit;
-		Header("Location: $f_callback_url?oauth_token=$p_token");
+		Header("Location: $f_callback_url?oauth_token=$p_token&oauth_verifier=$verifier");
 		//session_redirect( $f_callback_url . "?oauthprovider_token=$p_token" );
 		}
 		else {




More information about the Fusionforge-commits mailing list