mirror of
https://github.com/shlinkio/shlink.git
synced 2025-02-25 18:45:27 -06:00
Removed remaining deprecated elements
This commit is contained in:
@@ -1,119 +0,0 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace ShlinkioTest\Shlink\Rest\Authentication\Plugin;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Prophecy\Prophecy\ObjectProphecy;
|
||||
use Shlinkio\Shlink\Rest\Authentication\JWTServiceInterface;
|
||||
use Shlinkio\Shlink\Rest\Authentication\Plugin\AuthorizationHeaderPlugin;
|
||||
use Shlinkio\Shlink\Rest\Exception\VerifyAuthenticationException;
|
||||
use Zend\Diactoros\Response;
|
||||
use Zend\Diactoros\ServerRequest;
|
||||
|
||||
use function sprintf;
|
||||
|
||||
/** @deprecated */
|
||||
class AuthorizationHeaderPluginTest extends TestCase
|
||||
{
|
||||
/** @var AuthorizationHeaderPlugin */
|
||||
private $plugin;
|
||||
/** @var ObjectProphecy */
|
||||
private $jwtService;
|
||||
|
||||
public function setUp(): void
|
||||
{
|
||||
$this->jwtService = $this->prophesize(JWTServiceInterface::class);
|
||||
$this->plugin = new AuthorizationHeaderPlugin($this->jwtService->reveal());
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function verifyAnAuthorizationWithoutBearerTypeThrowsException()
|
||||
{
|
||||
$authToken = 'ABC-abc';
|
||||
$request = (new ServerRequest())->withHeader(
|
||||
AuthorizationHeaderPlugin::HEADER_NAME,
|
||||
$authToken
|
||||
);
|
||||
|
||||
$this->expectException(VerifyAuthenticationException::class);
|
||||
$this->expectExceptionMessage(sprintf(
|
||||
'You need to provide the Bearer type in the %s header.',
|
||||
AuthorizationHeaderPlugin::HEADER_NAME
|
||||
));
|
||||
|
||||
$this->plugin->verify($request);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function verifyAnAuthorizationWithWrongTypeThrowsException()
|
||||
{
|
||||
$authToken = 'Basic ABC-abc';
|
||||
$request = (new ServerRequest())->withHeader(
|
||||
AuthorizationHeaderPlugin::HEADER_NAME,
|
||||
$authToken
|
||||
);
|
||||
|
||||
$this->expectException(VerifyAuthenticationException::class);
|
||||
$this->expectExceptionMessage(
|
||||
'Provided authorization type Basic is not supported. Use Bearer instead.'
|
||||
);
|
||||
|
||||
$this->plugin->verify($request);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function verifyAnExpiredTokenThrowsException()
|
||||
{
|
||||
$authToken = 'Bearer ABC-abc';
|
||||
$request = (new ServerRequest())->withHeader(
|
||||
AuthorizationHeaderPlugin::HEADER_NAME,
|
||||
$authToken
|
||||
);
|
||||
$jwtVerify = $this->jwtService->verify('ABC-abc')->willReturn(false);
|
||||
|
||||
$this->expectException(VerifyAuthenticationException::class);
|
||||
$this->expectExceptionMessage(sprintf(
|
||||
'Missing or invalid auth token provided. Perform a new authentication request and send provided '
|
||||
. 'token on every new request on the %s header',
|
||||
AuthorizationHeaderPlugin::HEADER_NAME
|
||||
));
|
||||
|
||||
$this->plugin->verify($request);
|
||||
|
||||
$jwtVerify->shouldHaveBeenCalledOnce();
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function verifyValidTokenDoesNotThrowException()
|
||||
{
|
||||
$authToken = 'Bearer ABC-abc';
|
||||
$request = (new ServerRequest())->withHeader(
|
||||
AuthorizationHeaderPlugin::HEADER_NAME,
|
||||
$authToken
|
||||
);
|
||||
$jwtVerify = $this->jwtService->verify('ABC-abc')->willReturn(true);
|
||||
|
||||
$this->plugin->verify($request);
|
||||
|
||||
$jwtVerify->shouldHaveBeenCalledOnce();
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function updateReturnsAnUpdatedResponseWithNewJwt()
|
||||
{
|
||||
$authToken = 'Bearer ABC-abc';
|
||||
$request = (new ServerRequest())->withHeader(
|
||||
AuthorizationHeaderPlugin::HEADER_NAME,
|
||||
$authToken
|
||||
);
|
||||
$jwtRefresh = $this->jwtService->refresh('ABC-abc')->willReturn('DEF-def');
|
||||
|
||||
$response = $this->plugin->update($request, new Response());
|
||||
|
||||
$this->assertTrue($response->hasHeader(AuthorizationHeaderPlugin::HEADER_NAME));
|
||||
$this->assertEquals('Bearer DEF-def', $response->getHeaderLine(AuthorizationHeaderPlugin::HEADER_NAME));
|
||||
$jwtRefresh->shouldHaveBeenCalledOnce();
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,6 @@ use Prophecy\Prophecy\ObjectProphecy;
|
||||
use Shlinkio\Shlink\Rest\Authentication\AuthenticationPluginManagerInterface;
|
||||
use Shlinkio\Shlink\Rest\Authentication\Plugin\ApiKeyHeaderPlugin;
|
||||
use Shlinkio\Shlink\Rest\Authentication\Plugin\AuthenticationPluginInterface;
|
||||
use Shlinkio\Shlink\Rest\Authentication\Plugin\AuthorizationHeaderPlugin;
|
||||
use Shlinkio\Shlink\Rest\Authentication\RequestToHttpAuthPlugin;
|
||||
use Shlinkio\Shlink\Rest\Exception\MissingAuthenticationException;
|
||||
use Zend\Diactoros\ServerRequest;
|
||||
@@ -63,14 +62,7 @@ class RequestToAuthPluginTest extends TestCase
|
||||
|
||||
public function provideHeaders(): iterable
|
||||
{
|
||||
yield 'API key header only' => [[
|
||||
ApiKeyHeaderPlugin::HEADER_NAME => 'foobar',
|
||||
], ApiKeyHeaderPlugin::HEADER_NAME];
|
||||
yield 'Authorization header only' => [[
|
||||
AuthorizationHeaderPlugin::HEADER_NAME => 'foobar',
|
||||
], AuthorizationHeaderPlugin::HEADER_NAME];
|
||||
yield 'Both headers' => [[
|
||||
AuthorizationHeaderPlugin::HEADER_NAME => 'foobar',
|
||||
yield 'API key header' => [[
|
||||
ApiKeyHeaderPlugin::HEADER_NAME => 'foobar',
|
||||
], ApiKeyHeaderPlugin::HEADER_NAME];
|
||||
}
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace ShlinkioTest\Shlink\Rest\Exception;
|
||||
|
||||
use Exception;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Shlinkio\Shlink\Rest\Exception\AuthenticationException;
|
||||
use Throwable;
|
||||
|
||||
class AuthenticationExceptionTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* @test
|
||||
* @dataProvider providePrev
|
||||
*/
|
||||
public function expiredJWTCreatesExpectedException(?Throwable $prev): void
|
||||
{
|
||||
$e = AuthenticationException::expiredJWT($prev);
|
||||
|
||||
$this->assertEquals($prev, $e->getPrevious());
|
||||
$this->assertEquals(-1, $e->getCode());
|
||||
$this->assertEquals('The token has expired.', $e->getMessage());
|
||||
}
|
||||
|
||||
public function providePrev(): iterable
|
||||
{
|
||||
yield 'with previous exception' => [new Exception('Prev')];
|
||||
yield 'without previous exception' => [null];
|
||||
}
|
||||
}
|
||||
@@ -15,7 +15,6 @@ use Zend\Diactoros\ServerRequest;
|
||||
use Zend\Expressive\Router\Route;
|
||||
use Zend\Expressive\Router\RouteResult;
|
||||
|
||||
use function implode;
|
||||
use function Zend\Stratigility\middleware;
|
||||
|
||||
class CrossDomainMiddlewareTest extends TestCase
|
||||
@@ -62,10 +61,10 @@ class CrossDomainMiddlewareTest extends TestCase
|
||||
$headers = $response->getHeaders();
|
||||
|
||||
$this->assertEquals('local', $response->getHeaderLine('Access-Control-Allow-Origin'));
|
||||
$this->assertEquals(implode(', ', [
|
||||
$this->assertEquals(
|
||||
Authentication\Plugin\ApiKeyHeaderPlugin::HEADER_NAME,
|
||||
Authentication\Plugin\AuthorizationHeaderPlugin::HEADER_NAME,
|
||||
]), $response->getHeaderLine('Access-Control-Expose-Headers'));
|
||||
$response->getHeaderLine('Access-Control-Expose-Headers')
|
||||
);
|
||||
$this->assertArrayNotHasKey('Access-Control-Allow-Methods', $headers);
|
||||
$this->assertArrayNotHasKey('Access-Control-Max-Age', $headers);
|
||||
$this->assertArrayNotHasKey('Access-Control-Allow-Headers', $headers);
|
||||
@@ -87,10 +86,10 @@ class CrossDomainMiddlewareTest extends TestCase
|
||||
$headers = $response->getHeaders();
|
||||
|
||||
$this->assertEquals('local', $response->getHeaderLine('Access-Control-Allow-Origin'));
|
||||
$this->assertEquals(implode(', ', [
|
||||
$this->assertEquals(
|
||||
Authentication\Plugin\ApiKeyHeaderPlugin::HEADER_NAME,
|
||||
Authentication\Plugin\AuthorizationHeaderPlugin::HEADER_NAME,
|
||||
]), $response->getHeaderLine('Access-Control-Expose-Headers'));
|
||||
$response->getHeaderLine('Access-Control-Expose-Headers')
|
||||
);
|
||||
$this->assertArrayHasKey('Access-Control-Allow-Methods', $headers);
|
||||
$this->assertEquals('1000', $response->getHeaderLine('Access-Control-Max-Age'));
|
||||
$this->assertEquals('foo, bar, baz', $response->getHeaderLine('Access-Control-Allow-Headers'));
|
||||
|
||||
Reference in New Issue
Block a user