From 8751c8b837efa18771b0887066cce5b37f12f7b9 Mon Sep 17 00:00:00 2001
From: Jakob Perry
Date: Tue, 12 May 2020 01:00:39 -0700
Subject: [PATCH 1/4] LCH-4065: Update diactoros to support Drupal 8.6+.
---
composer.json | 10 +++++-----
src/Symfony/HmacAuthenticationProvider.php | 17 +++++++++++++++--
src/Symfony/HmacResponseListener.php | 18 +++++++++++++++---
3 files changed, 35 insertions(+), 10 deletions(-)
diff --git a/composer.json b/composer.json
index 94077f9..340a865 100644
--- a/composer.json
+++ b/composer.json
@@ -14,14 +14,14 @@
"issues": "https://github.com/acquia/http-hmac-php/issues"
},
"require": {
- "php": "~5.6 || ~7.0",
+ "php": "^7.0",
"psr/http-message": "~1.0.0"
},
"suggest": {
"guzzlehttp/guzzle": "~6.0",
- "symfony/psr-http-message-bridge": "^1.0",
+ "symfony/psr-http-message-bridge": "^1.1.2 | ^2.0",
"symfony/security": "^3.0 | ^4.0",
- "zendframework/zend-diactoros": "^1.3"
+ "laminas/laminas-diactoros": "^1.8 || ^2.2"
},
"require-dev": {
"guzzlehttp/guzzle": "~6.0",
@@ -30,10 +30,10 @@
"phpunit/phpunit": "~5.7",
"sebastian/phpcpd": "^2.0",
"friendsofphp/php-cs-fixer": "^2.11",
- "symfony/psr-http-message-bridge": "^1.0",
+ "symfony/psr-http-message-bridge": "^1.1.2 | ^2.0",
"symfony/security": "^3.0 | ^4.0",
"symfony/security-bundle": "^3.0 | ^4.0",
- "zendframework/zend-diactoros": "^1.3"
+ "laminas/laminas-diactoros": "^1.8 || ^2.2"
},
"replace": {
"acquia/hmac-request": "self.version"
diff --git a/src/Symfony/HmacAuthenticationProvider.php b/src/Symfony/HmacAuthenticationProvider.php
index d5280cf..dc53545 100644
--- a/src/Symfony/HmacAuthenticationProvider.php
+++ b/src/Symfony/HmacAuthenticationProvider.php
@@ -3,7 +3,12 @@
namespace Acquia\Hmac\Symfony;
use Acquia\Hmac\RequestAuthenticatorInterface;
+use Laminas\Diactoros\ResponseFactory;
+use Laminas\Diactoros\ServerRequestFactory;
+use Laminas\Diactoros\StreamFactory;
+use Laminas\Diactoros\UploadedFileFactory;
use Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory;
+use Symfony\Bridge\PsrHttpMessage\Factory\PsrHttpFactory;
use Symfony\Component\Security\Core\Authentication\Provider\AuthenticationProviderInterface;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\Security\Core\Exception\AuthenticationException;
@@ -35,8 +40,16 @@ public function __construct(RequestAuthenticatorInterface $authenticator)
*/
public function authenticate(TokenInterface $token)
{
- $psr7Factory = new DiactorosFactory();
- $psr7Request = $psr7Factory->createRequest($token->getRequest());
+ if (class_exists(DiactorosFactory::class))
+ {
+ $httpMessageFactory = new DiactorosFactory();
+ }
+ else
+ {
+ $httpMessageFactory = new PsrHttpFactory(new ServerRequestFactory(), new StreamFactory(), new UploadedFileFactory(), new ResponseFactory());
+ }
+
+ $psr7Request = $httpMessageFactory->createRequest($token->getRequest());
try {
$key = $this->authenticator->authenticate($psr7Request);
diff --git a/src/Symfony/HmacResponseListener.php b/src/Symfony/HmacResponseListener.php
index 4198efc..0370dad 100644
--- a/src/Symfony/HmacResponseListener.php
+++ b/src/Symfony/HmacResponseListener.php
@@ -3,7 +3,12 @@
namespace Acquia\Hmac\Symfony;
use Acquia\Hmac\ResponseSigner;
+use Laminas\Diactoros\ResponseFactory;
+use Laminas\Diactoros\ServerRequestFactory;
+use Laminas\Diactoros\StreamFactory;
+use Laminas\Diactoros\UploadedFileFactory;
use Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory;
+use Symfony\Bridge\PsrHttpMessage\Factory\PsrHttpFactory;
use Symfony\Bridge\PsrHttpMessage\Factory\HttpFoundationFactory;
use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
use Symfony\Component\HttpKernel\KernelEvents;
@@ -27,11 +32,18 @@ public function onKernelResponse(FilterResponseEvent $event)
$response = $event->getResponse();
if ($request->attributes->has('hmac.key')) {
- $psr7Factory = new DiactorosFactory();
+ if (class_exists(PsrHttpFactory::class))
+ {
+ $httpMessageFactory = new PsrHttpFactory(new ServerRequestFactory(), new StreamFactory(), new UploadedFileFactory(), new ResponseFactory());
+ }
+ else
+ {
+ $httpMessageFactory = new DiactorosFactory();
+ }
$foundationFactory = new HttpFoundationFactory();
- $psr7Request = $psr7Factory->createRequest($request);
- $psr7Response = $psr7Factory->createResponse($response);
+ $psr7Request = $httpMessageFactory->createRequest($request);
+ $psr7Response = $httpMessageFactory->createResponse($response);
$signer = new ResponseSigner($request->attributes->get('hmac.key'), $psr7Request);
$signedResponse = $signer->signResponse($psr7Response);
From fbc5a69433396449355a1e836fc8ba2353925f92 Mon Sep 17 00:00:00 2001
From: Jakob Perry
Date: Wed, 13 May 2020 13:44:23 -0700
Subject: [PATCH 2/4] Reverse the if statements for Diactoros.
---
src/Symfony/HmacResponseListener.php | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/Symfony/HmacResponseListener.php b/src/Symfony/HmacResponseListener.php
index 0370dad..0ab9d92 100644
--- a/src/Symfony/HmacResponseListener.php
+++ b/src/Symfony/HmacResponseListener.php
@@ -32,13 +32,13 @@ public function onKernelResponse(FilterResponseEvent $event)
$response = $event->getResponse();
if ($request->attributes->has('hmac.key')) {
- if (class_exists(PsrHttpFactory::class))
+ if (class_exists(DiactorosFactory::class))
{
- $httpMessageFactory = new PsrHttpFactory(new ServerRequestFactory(), new StreamFactory(), new UploadedFileFactory(), new ResponseFactory());
+ $httpMessageFactory = new DiactorosFactory();
}
else
{
- $httpMessageFactory = new DiactorosFactory();
+ $httpMessageFactory = new PsrHttpFactory(new ServerRequestFactory(), new StreamFactory(), new UploadedFileFactory(), new ResponseFactory());
}
$foundationFactory = new HttpFoundationFactory();
From 24da91693a1ee44b505be1ae1c93e2e3db3a44d8 Mon Sep 17 00:00:00 2001
From: Jakob Perry
Date: Wed, 13 May 2020 13:50:07 -0700
Subject: [PATCH 3/4] Update to php 7.3, fix some linting.
---
.travis.yml | 3 +--
composer.json | 2 +-
src/Symfony/HmacAuthenticationProvider.php | 6 ++----
src/Symfony/HmacResponseListener.php | 7 +++----
4 files changed, 7 insertions(+), 11 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 8220879..02a233b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -7,10 +7,9 @@
language: php
php:
+ - 7.3
- 7.2
- 7.1
- - 7.0
- - 5.6
before_install:
- travis_retry composer self-update
diff --git a/composer.json b/composer.json
index 340a865..08e1e20 100644
--- a/composer.json
+++ b/composer.json
@@ -14,7 +14,7 @@
"issues": "https://github.com/acquia/http-hmac-php/issues"
},
"require": {
- "php": "^7.0",
+ "php": "^7.1",
"psr/http-message": "~1.0.0"
},
"suggest": {
diff --git a/src/Symfony/HmacAuthenticationProvider.php b/src/Symfony/HmacAuthenticationProvider.php
index dc53545..ee2d59b 100644
--- a/src/Symfony/HmacAuthenticationProvider.php
+++ b/src/Symfony/HmacAuthenticationProvider.php
@@ -40,12 +40,10 @@ public function __construct(RequestAuthenticatorInterface $authenticator)
*/
public function authenticate(TokenInterface $token)
{
- if (class_exists(DiactorosFactory::class))
- {
+ if (class_exists(DiactorosFactory::class)) {
$httpMessageFactory = new DiactorosFactory();
}
- else
- {
+ else {
$httpMessageFactory = new PsrHttpFactory(new ServerRequestFactory(), new StreamFactory(), new UploadedFileFactory(), new ResponseFactory());
}
diff --git a/src/Symfony/HmacResponseListener.php b/src/Symfony/HmacResponseListener.php
index 0ab9d92..4e20e48 100644
--- a/src/Symfony/HmacResponseListener.php
+++ b/src/Symfony/HmacResponseListener.php
@@ -32,14 +32,13 @@ public function onKernelResponse(FilterResponseEvent $event)
$response = $event->getResponse();
if ($request->attributes->has('hmac.key')) {
- if (class_exists(DiactorosFactory::class))
- {
+ if (class_exists(DiactorosFactory::class)) {
$httpMessageFactory = new DiactorosFactory();
}
- else
- {
+ else {
$httpMessageFactory = new PsrHttpFactory(new ServerRequestFactory(), new StreamFactory(), new UploadedFileFactory(), new ResponseFactory());
}
+
$foundationFactory = new HttpFoundationFactory();
$psr7Request = $httpMessageFactory->createRequest($request);
From a2465d1ac81ba7f16fd27431c2a7051c6fd431f5 Mon Sep 17 00:00:00 2001
From: Jakob Perry
Date: Wed, 13 May 2020 23:31:58 -0700
Subject: [PATCH 4/4] Relint again.
---
src/Symfony/HmacAuthenticationProvider.php | 3 +--
src/Symfony/HmacResponseListener.php | 3 +--
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/src/Symfony/HmacAuthenticationProvider.php b/src/Symfony/HmacAuthenticationProvider.php
index ee2d59b..7f207f9 100644
--- a/src/Symfony/HmacAuthenticationProvider.php
+++ b/src/Symfony/HmacAuthenticationProvider.php
@@ -42,8 +42,7 @@ public function authenticate(TokenInterface $token)
{
if (class_exists(DiactorosFactory::class)) {
$httpMessageFactory = new DiactorosFactory();
- }
- else {
+ } else {
$httpMessageFactory = new PsrHttpFactory(new ServerRequestFactory(), new StreamFactory(), new UploadedFileFactory(), new ResponseFactory());
}
diff --git a/src/Symfony/HmacResponseListener.php b/src/Symfony/HmacResponseListener.php
index 4e20e48..1cc0e3d 100644
--- a/src/Symfony/HmacResponseListener.php
+++ b/src/Symfony/HmacResponseListener.php
@@ -34,8 +34,7 @@ public function onKernelResponse(FilterResponseEvent $event)
if ($request->attributes->has('hmac.key')) {
if (class_exists(DiactorosFactory::class)) {
$httpMessageFactory = new DiactorosFactory();
- }
- else {
+ } else {
$httpMessageFactory = new PsrHttpFactory(new ServerRequestFactory(), new StreamFactory(), new UploadedFileFactory(), new ResponseFactory());
}