From 87a4b173940a6bf054b77b9f9bf889949c1bce81 Mon Sep 17 00:00:00 2001 From: GaryJones Date: Fri, 23 Nov 2012 12:30:38 +0000 Subject: [PATCH] Refactor common code for getting the signature key. --- src/GaryJones/OAuth/HmacSha1.php | 10 +--------- src/GaryJones/OAuth/PlainText.php | 11 +---------- src/GaryJones/OAuth/SignatureMethod.php | 19 +++++++++++++++++++ 3 files changed, 21 insertions(+), 19 deletions(-) diff --git a/src/GaryJones/OAuth/HmacSha1.php b/src/GaryJones/OAuth/HmacSha1.php index 1a476c3..133c534 100644 --- a/src/GaryJones/OAuth/HmacSha1.php +++ b/src/GaryJones/OAuth/HmacSha1.php @@ -55,15 +55,7 @@ class HmacSha1 extends SignatureMethod public function buildSignature(Request $request, Client $client, Token $token = null) { $base_string = $request->getSignatureBaseString(); - $request->base_string = $base_string; - - $key_parts = array( - $client->getSecret(), - ($token) ? $token->getSecret() : '' - ); - - $key_parts = Util::urlencodeRfc3986($key_parts); - $key = implode('&', $key_parts); + $key = $this->getSignatureKey($client, $token); return base64_encode(hash_hmac('sha1', $base_string, $key, true)); } diff --git a/src/GaryJones/OAuth/PlainText.php b/src/GaryJones/OAuth/PlainText.php index 5c4577c..6c1794e 100644 --- a/src/GaryJones/OAuth/PlainText.php +++ b/src/GaryJones/OAuth/PlainText.php @@ -52,15 +52,6 @@ class PlainText extends SignatureMethod */ public function buildSignature(Request $request, Client $client, Token $token = null) { - $key_parts = array( - $client->getSecret(), - ($token) ? $token->getSecret() : '' - ); - - $key_parts = Util::urlencodeRfc3986($key_parts); - $key = implode('&', $key_parts); - $request->base_string = $key; - - return $key; + return $this->getSignatureKey($client, $token); } } diff --git a/src/GaryJones/OAuth/SignatureMethod.php b/src/GaryJones/OAuth/SignatureMethod.php index df15f44..986624c 100644 --- a/src/GaryJones/OAuth/SignatureMethod.php +++ b/src/GaryJones/OAuth/SignatureMethod.php @@ -44,6 +44,25 @@ abstract class SignatureMethod */ abstract public function buildSignature(Request $request, Client $client, Token $token = null); + /** + * Get the signature key, made up of client and optionally token shared secrets. + * + * @param GaryJones\OAuth\Client $client + * @param GaryJones\OAuth\Token $token + * + * @return string + */ + public function getSignatureKey(Client $client, Token $token = null) + { + $key_parts = array( + $client->getSecret(), + ($token) ? $token->getSecret() : '', + ); + + $key_parts = Util::urlencodeRfc3986($key_parts); + return implode('&', $key_parts); + } + /** * Verifies that a given signature is correct. *