Skip to content
This repository was archived by the owner on Aug 7, 2023. It is now read-only.

Commit d683fd1

Browse files
Improve code base
1 parent 743309c commit d683fd1

File tree

5 files changed

+22
-19
lines changed

5 files changed

+22
-19
lines changed

src/AbstractExtractor.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@
1414

1515
abstract class AbstractExtractor implements ExtractorInterface
1616
{
17+
public const IN_HEADER = 'header';
18+
19+
public const IN_QUERY_PARAM = 'query_param';
20+
1721
private string $in;
1822

1923
private string $item;
@@ -29,8 +33,8 @@ public function __construct(
2933
throw new \LogicException('Issuer can not be blank!');
3034
}
3135

32-
if (ExtractorInterface::IN_HEADER !== $in && ExtractorInterface::IN_QUERY_PARAM !== $in) {
33-
throw new \LogicException(sprintf('Origin token must in: `%s` or `%s`, can not in: `%s`', ExtractorInterface::IN_HEADER, ExtractorInterface::IN_QUERY_PARAM, $in));
36+
if (self::IN_HEADER !== $in && self::IN_QUERY_PARAM !== $in) {
37+
throw new \LogicException(sprintf('Origin token must in: `%s` or `%s`, can not in: `%s`', self::IN_HEADER, self::IN_QUERY_PARAM, $in));
3438
}
3539

3640
$this->issuer = $issuer;
@@ -41,8 +45,8 @@ public function __construct(
4145
final public function extract(ServerRequestInterface $request): ?array
4246
{
4347
$value = match ($this->in) {
44-
ExtractorInterface::IN_HEADER => $request->getHeader($this->item)[0] ?? null,
45-
ExtractorInterface::IN_QUERY_PARAM => $request->getQueryParams()[$this->item] ?? null
48+
self::IN_HEADER => $request->getHeader($this->item)[0] ?? null,
49+
self::IN_QUERY_PARAM => $request->getQueryParams()[$this->item] ?? null
4650
};
4751

4852
if (false === is_string($value)) {

src/Base64HeaderExtractor.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ final class Base64HeaderExtractor extends AbstractExtractor
1414
{
1515
public function __construct(string $issuer, string $item)
1616
{
17-
parent::__construct($issuer, ExtractorInterface::IN_HEADER, $item);
17+
parent::__construct($issuer, self::IN_HEADER, $item);
1818
}
1919

2020
protected function extractFromValue(string $value): ?array

src/ExtractorFactory.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,22 @@
1212

1313
class ExtractorFactory
1414
{
15-
public static function fromBase64Header(string $issuer, string $header): Base64HeaderExtractor
15+
public static function fromBase64Header(string $issuer, string $header): ExtractorInterface
1616
{
1717
return new Base64HeaderExtractor($issuer, $header);
1818
}
1919

20-
public static function fromOriginTokenHeader(string $issuer, string $header): OriginTokenExtractor
20+
public static function fromOriginTokenHeader(string $issuer, string $header): ExtractorInterface
2121
{
22-
return new OriginTokenExtractor($issuer, ExtractorInterface::IN_HEADER, $header);
22+
return new OriginTokenExtractor($issuer, AbstractExtractor::IN_HEADER, $header);
2323
}
2424

25-
public static function fromOriginTokenQueryParam(string $issuer, string $queryParam): OriginTokenExtractor
25+
public static function fromOriginTokenQueryParam(string $issuer, string $queryParam): ExtractorInterface
2626
{
27-
return new OriginTokenExtractor($issuer, ExtractorInterface::IN_QUERY_PARAM, $queryParam);
27+
return new OriginTokenExtractor($issuer, AbstractExtractor::IN_QUERY_PARAM, $queryParam);
2828
}
2929

30-
public static function fromExtractors(ExtractorInterface ...$extractors): CompositeExtractor
30+
public static function fromExtractors(ExtractorInterface ...$extractors): ExtractorInterface
3131
{
3232
return new CompositeExtractor($extractors);
3333
}

src/ExtractorInterface.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,8 @@
1414

1515
interface ExtractorInterface
1616
{
17-
public const IN_HEADER = 'header';
18-
19-
public const IN_QUERY_PARAM = 'query_param';
20-
17+
/*
18+
* Extract JWT payload from server request.
19+
*/
2120
public function extract(ServerRequestInterface $request): ?array;
2221
}

tests/OriginTokenExtractorTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
namespace Istio\JWTPayloadExtractor\Tests;
1212

13-
use Istio\JWTPayloadExtractor\ExtractorInterface;
13+
use Istio\JWTPayloadExtractor\AbstractExtractor;
1414
use Istio\JWTPayloadExtractor\OriginTokenExtractor;
1515
use PHPUnit\Framework\TestCase;
1616
use Psr\Http\Message\ServerRequestInterface;
@@ -31,7 +31,7 @@ public function testInitWithInvalidIn(): void
3131
{
3232
$this->expectException(\LogicException::class);
3333
$this->expectExceptionMessageMatches(
34-
sprintf('~`%s` or `%s`~', ExtractorInterface::IN_HEADER, ExtractorInterface::IN_QUERY_PARAM)
34+
sprintf('~`%s` or `%s`~', AbstractExtractor::IN_HEADER, AbstractExtractor::IN_QUERY_PARAM)
3535
);
3636

3737
new OriginTokenExtractor('valid', 'invalid', 'authorization');
@@ -65,8 +65,8 @@ public function testExtractFromValidRequests(ServerRequestInterface $inHeader, S
6565

6666
private function extractRequests(ServerRequestInterface $inHeader, ServerRequestInterface $inQueryParam): array
6767
{
68-
$headerExtractor = new OriginTokenExtractor('valid', ExtractorInterface::IN_HEADER, 'authorization');
69-
$queryParamExtractor = new OriginTokenExtractor('valid', ExtractorInterface::IN_QUERY_PARAM, 'token');
68+
$headerExtractor = new OriginTokenExtractor('valid', AbstractExtractor::IN_HEADER, 'authorization');
69+
$queryParamExtractor = new OriginTokenExtractor('valid', AbstractExtractor::IN_QUERY_PARAM, 'token');
7070

7171
return [$headerExtractor->extract($inHeader), $queryParamExtractor->extract($inQueryParam)];
7272
}

0 commit comments

Comments
 (0)