Ejegg has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/338300 )
Change subject: Get some static Config access out of Authenticator
......................................................................
Get some static Config access out of Authenticator
Provide credentials via constructor params
Bug: T158374
Change-Id: I59c54829f4ac197ca9c5681f338a415c9abb6764
---
M PaymentProviders/Ingenico/Authenticator.php
M PaymentProviders/Ingenico/Tests/phpunit/AuthenticatorTest.php
M SmashPig.yaml
3 files changed, 24 insertions(+), 20 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/SmashPig
refs/changes/00/338300/1
diff --git a/PaymentProviders/Ingenico/Authenticator.php
b/PaymentProviders/Ingenico/Authenticator.php
index bbb3333..cbb389c 100644
--- a/PaymentProviders/Ingenico/Authenticator.php
+++ b/PaymentProviders/Ingenico/Authenticator.php
@@ -11,24 +11,28 @@
*/
class Authenticator {
+ protected $keyId;
+ protected $secret;
+
+ public function __construct( $keyId, $secret ) {
+ $this->keyId = $keyId;
+ $this->secret = $secret;
+ }
+
public function signRequest( OutboundRequest $request ) {
- $config = Context::get()->getConfiguration();
$toSign = $this->getStringToSign( $request );
- $secretApiKey = $config->val( 'credentials/api-secret' );
$signature = base64_encode(
hash_hmac(
'sha256',
$toSign,
- $secretApiKey,
+ $this->secret,
true
)
);
- $apiKeyId = $config->val( 'credentials/api-key-id' );
-
- $authHeader = "GCS v1HMAC:$apiKeyId:$signature";
+ $authHeader = "GCS v1HMAC:{$this->keyId}:$signature";
$request->setHeader( 'Authorization', $authHeader );
}
diff --git a/PaymentProviders/Ingenico/Tests/phpunit/AuthenticatorTest.php
b/PaymentProviders/Ingenico/Tests/phpunit/AuthenticatorTest.php
index b9d9fd9..d242f6a 100644
--- a/PaymentProviders/Ingenico/Tests/phpunit/AuthenticatorTest.php
+++ b/PaymentProviders/Ingenico/Tests/phpunit/AuthenticatorTest.php
@@ -14,14 +14,16 @@
*/
class AuthenticatorTest extends BaseSmashPigUnitTestCase {
+ /**
+ * @var Authenticator
+ */
+ protected $authenticator;
+
public function setUp() {
- $config = $this->setConfig( 'ingenico' );
- $config->override( array(
- 'credentials' => array(
- 'api-key-id' => '5e45c937b9db33ae',
- 'api-secret' =>
'I42Zf4pVnRdroHfuHnRiJjJ2B6+22h0yQt/R3nZR8Xg='
- )
- ) );
+ $this->authenticator = new Authenticator(
+ '5e45c937b9db33ae',
+ 'I42Zf4pVnRdroHfuHnRiJjJ2B6+22h0yQt/R3nZR8Xg='
+ );
parent::setUp();
}
@@ -31,8 +33,7 @@
public function testBasicSignature() {
$request = new OutboundRequest(
'https://api.globalcollect.com/v1/9991/tokens/123456789' );
$request->setHeader( 'Date', 'Fri, 06 Jun 2014 13:39:43 GMT' );
- $authenticator = new Authenticator();
- $authenticator->signRequest( $request );
+ $this->authenticator->signRequest( $request );
$headers = $request->getHeaders();
$this->assertEquals(
'GCS
v1HMAC:5e45c937b9db33ae:J5LjfSBvrQNhu7gG0gvifZt+IWNDReGCmHmBmth6ueI=',
@@ -43,8 +44,7 @@
public function testEncodedQuery() {
$request = new OutboundRequest(
'https://api.globalcollect.com/v1/consumer/ANDR%C3%89E/?q=na%20me' );
$request->setHeader( 'Date', 'Fri, 06 Jun 2014 13:39:43 GMT' );
- $authenticator = new Authenticator();
- $authenticator->signRequest( $request );
+ $this->authenticator->signRequest( $request );
$headers = $request->getHeaders();
$this->assertEquals(
'GCS
v1HMAC:5e45c937b9db33ae:x9S2hQmLhLTbpK0YdTuYCD8TB4D+Kf60tNW0Xw5Xls0=',
diff --git a/SmashPig.yaml b/SmashPig.yaml
index ce84b07..db44c38 100644
--- a/SmashPig.yaml
+++ b/SmashPig.yaml
@@ -446,12 +446,12 @@
credentials:
merchant-id: 1234
- api-key-id: 'apiKey'
- api-secret: 'apiSecret'
authenticator:
class: SmashPig\PaymentProviders\Ingenico\Authenticator
- constructor-parameters: []
+ constructor-parameters:
+ - 'apiKey'
+ - 'apiSecret'
bank-cache:
key: SMASHPIG_INGENICO_IDEAL_BANK_LIST
--
To view, visit https://gerrit.wikimedia.org/r/338300
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I59c54829f4ac197ca9c5681f338a415c9abb6764
Gerrit-PatchSet: 1
Gerrit-Project: wikimedia/fundraising/SmashPig
Gerrit-Branch: master
Gerrit-Owner: Ejegg <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits