Skip to content

Commit bc453aa

Browse files
authored
Update diactoros to support Drupal 8.6+. (#52)
* Update diactoros to support Drupal 8.6+. * Reverse the if statements for Diactoros. * Update to php 7.3, fix some linting.
1 parent f63d695 commit bc453aa

4 files changed

Lines changed: 31 additions & 12 deletions

File tree

.travis.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@
77
language: php
88

99
php:
10+
- 7.3
1011
- 7.2
1112
- 7.1
12-
- 7.0
13-
- 5.6
1413

1514
before_install:
1615
- travis_retry composer self-update

composer.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@
1414
"issues": "https://github.com/acquia/http-hmac-php/issues"
1515
},
1616
"require": {
17-
"php": "~5.6 || ~7.0",
17+
"php": "^7.1",
1818
"psr/http-message": "~1.0.0"
1919
},
2020
"suggest": {
2121
"guzzlehttp/guzzle": "~6.0",
22-
"symfony/psr-http-message-bridge": "^1.0",
22+
"symfony/psr-http-message-bridge": "^1.1.2 | ^2.0",
2323
"symfony/security": "^3.0 | ^4.0",
24-
"zendframework/zend-diactoros": "^1.3"
24+
"laminas/laminas-diactoros": "^1.8 || ^2.2"
2525
},
2626
"require-dev": {
2727
"guzzlehttp/guzzle": "~6.0",
@@ -30,10 +30,10 @@
3030
"phpunit/phpunit": "~5.7",
3131
"sebastian/phpcpd": "^2.0",
3232
"friendsofphp/php-cs-fixer": "^2.11",
33-
"symfony/psr-http-message-bridge": "^1.0",
33+
"symfony/psr-http-message-bridge": "^1.1.2 | ^2.0",
3434
"symfony/security": "^3.0 | ^4.0",
3535
"symfony/security-bundle": "^3.0 | ^4.0",
36-
"zendframework/zend-diactoros": "^1.3"
36+
"laminas/laminas-diactoros": "^1.8 || ^2.2"
3737
},
3838
"replace": {
3939
"acquia/hmac-request": "self.version"

src/Symfony/HmacAuthenticationProvider.php

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,12 @@
33
namespace Acquia\Hmac\Symfony;
44

55
use Acquia\Hmac\RequestAuthenticatorInterface;
6+
use Laminas\Diactoros\ResponseFactory;
7+
use Laminas\Diactoros\ServerRequestFactory;
8+
use Laminas\Diactoros\StreamFactory;
9+
use Laminas\Diactoros\UploadedFileFactory;
610
use Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory;
11+
use Symfony\Bridge\PsrHttpMessage\Factory\PsrHttpFactory;
712
use Symfony\Component\Security\Core\Authentication\Provider\AuthenticationProviderInterface;
813
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
914
use Symfony\Component\Security\Core\Exception\AuthenticationException;
@@ -35,8 +40,13 @@ public function __construct(RequestAuthenticatorInterface $authenticator)
3540
*/
3641
public function authenticate(TokenInterface $token)
3742
{
38-
$psr7Factory = new DiactorosFactory();
39-
$psr7Request = $psr7Factory->createRequest($token->getRequest());
43+
if (class_exists(DiactorosFactory::class)) {
44+
$httpMessageFactory = new DiactorosFactory();
45+
} else {
46+
$httpMessageFactory = new PsrHttpFactory(new ServerRequestFactory(), new StreamFactory(), new UploadedFileFactory(), new ResponseFactory());
47+
}
48+
49+
$psr7Request = $httpMessageFactory->createRequest($token->getRequest());
4050

4151
try {
4252
$key = $this->authenticator->authenticate($psr7Request);

src/Symfony/HmacResponseListener.php

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,12 @@
33
namespace Acquia\Hmac\Symfony;
44

55
use Acquia\Hmac\ResponseSigner;
6+
use Laminas\Diactoros\ResponseFactory;
7+
use Laminas\Diactoros\ServerRequestFactory;
8+
use Laminas\Diactoros\StreamFactory;
9+
use Laminas\Diactoros\UploadedFileFactory;
610
use Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory;
11+
use Symfony\Bridge\PsrHttpMessage\Factory\PsrHttpFactory;
712
use Symfony\Bridge\PsrHttpMessage\Factory\HttpFoundationFactory;
813
use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
914
use Symfony\Component\HttpKernel\KernelEvents;
@@ -27,11 +32,16 @@ public function onKernelResponse(FilterResponseEvent $event)
2732
$response = $event->getResponse();
2833

2934
if ($request->attributes->has('hmac.key')) {
30-
$psr7Factory = new DiactorosFactory();
35+
if (class_exists(DiactorosFactory::class)) {
36+
$httpMessageFactory = new DiactorosFactory();
37+
} else {
38+
$httpMessageFactory = new PsrHttpFactory(new ServerRequestFactory(), new StreamFactory(), new UploadedFileFactory(), new ResponseFactory());
39+
}
40+
3141
$foundationFactory = new HttpFoundationFactory();
3242

33-
$psr7Request = $psr7Factory->createRequest($request);
34-
$psr7Response = $psr7Factory->createResponse($response);
43+
$psr7Request = $httpMessageFactory->createRequest($request);
44+
$psr7Response = $httpMessageFactory->createResponse($response);
3545

3646
$signer = new ResponseSigner($request->attributes->get('hmac.key'), $psr7Request);
3747
$signedResponse = $signer->signResponse($psr7Response);

0 commit comments

Comments
 (0)