Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove empty Signer, empty Key, empty Signature, empty strings #939

Merged
merged 9 commits into from
Nov 8, 2022
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ vendor/composer/installed.json: composer.json composer.lock

.PHONY: phpunit
phpunit:
@php -d assert.exception=1 -d zend.assertions=1 vendor/bin/phpunit
@php -d assert.exception=1 -d zend.assertions=1 vendor/bin/phpunit $(PHPUNIT_FLAGS)

.PHONY: infection
infection:
Expand Down
1 change: 1 addition & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
"phpstan/phpstan-deprecation-rules": "^1.0",
"phpstan/phpstan-phpunit": "^1.2",
"phpstan/phpstan-strict-rules": "^1.4",
"phpunit/php-code-coverage": "9.2.17",
"phpunit/phpunit": "^9.5"
},
"autoload": {
Expand Down
60 changes: 30 additions & 30 deletions composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 0 additions & 18 deletions phpstan.neon.dist
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,3 @@ parameters:
paths:
- src
- tests

ignoreErrors:
- """
#^Call to deprecated method fromEmptyData\\(\\) of class Lcobucci\\\\JWT\\\\Token\\\\Signature:
Deprecated since v4\\.3$#
"""
- """
#^Call to deprecated method forUnsecuredSigner\\(\\) of class Lcobucci\\\\JWT\\\\Configuration:
Deprecated since v4\\.3$#
"""
- """
#^Call to deprecated method empty\\(\\) of class Lcobucci\\\\JWT\\\\Signer\\\\Key\\\\InMemory:
Deprecated since v4\\.3$#
"""
- """
#^.+ of deprecated class Lcobucci\\\\JWT\\\\Signer\\\\None:
Deprecated since v4\\.3$#
"""
12 changes: 12 additions & 0 deletions src/Builder.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ interface Builder
{
/**
* Appends new items to audience
*
* @param non-empty-string ...$audiences
*/
public function permittedFor(string ...$audiences): Builder;

Expand All @@ -25,6 +27,8 @@ public function expiresAt(DateTimeImmutable $expiration): Builder;

/**
* Configures the token id
*
* @param non-empty-string $id
*/
public function identifiedBy(string $id): Builder;

Expand All @@ -35,6 +39,8 @@ public function issuedAt(DateTimeImmutable $issuedAt): Builder;

/**
* Configures the issuer
*
* @param non-empty-string $issuer
*/
public function issuedBy(string $issuer): Builder;

Expand All @@ -45,17 +51,23 @@ public function canOnlyBeUsedAfter(DateTimeImmutable $notBefore): Builder;

/**
* Configures the subject
*
* @param non-empty-string $subject
*/
public function relatedTo(string $subject): Builder;

/**
* Configures a header item
*
* @param non-empty-string $name
*/
public function withHeader(string $name, mixed $value): Builder;

/**
* Configures a claim item
*
* @param non-empty-string $name
*
* @throws RegisteredClaimGiven When trying to set a registered claim.
*/
public function withClaim(string $name, mixed $value): Builder;
Expand Down
4 changes: 2 additions & 2 deletions src/ClaimsFormatter.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
interface ClaimsFormatter
{
/**
* @param array<string, mixed> $claims
* @param array<non-empty-string, mixed> $claims
*
* @return array<string, mixed>
* @return array<non-empty-string, mixed>
*/
public function formatClaims(array $claims): array;
}
18 changes: 0 additions & 18 deletions src/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@
use Lcobucci\JWT\Encoding\ChainedFormatter;
use Lcobucci\JWT\Encoding\JoseEncoder;
use Lcobucci\JWT\Signer\Key;
use Lcobucci\JWT\Signer\Key\InMemory;
use Lcobucci\JWT\Signer\None;
use Lcobucci\JWT\Validation\Constraint;

/**
Expand Down Expand Up @@ -74,22 +72,6 @@ public static function forSymmetricSigner(
);
}

/** @deprecated Deprecated since v4.3 */
public static function forUnsecuredSigner(
Encoder $encoder = new JoseEncoder(),
Decoder $decoder = new JoseEncoder(),
): self {
$key = InMemory::empty();

return new self(
new None(),
$key,
$key,
$encoder,
$decoder,
);
}

/** @param callable(ClaimsFormatter): Builder $builderFactory */
public function setBuilderFactory(callable $builderFactory): void
{
Expand Down
4 changes: 4 additions & 0 deletions src/Decoder.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ interface Decoder
/**
* Decodes from JSON, validating the errors
*
* @param non-empty-string $json
*
* @throws CannotDecodeContent When something goes wrong while decoding.
*/
public function jsonDecode(string $json): mixed;
Expand All @@ -19,6 +21,8 @@ public function jsonDecode(string $json): mixed;
*
* @link http://tools.ietf.org/html/rfc4648#section-5
*
* @return ($data is non-empty-string ? non-empty-string : string)
*
* @throws CannotDecodeContent When something goes wrong while decoding.
*/
public function base64UrlDecode(string $data): string;
Expand Down
4 changes: 4 additions & 0 deletions src/Encoder.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ interface Encoder
/**
* Encodes to JSON, validating the errors
*
* @return non-empty-string
*
* @throws CannotEncodeContent When something goes wrong while encoding.
*/
public function jsonEncode(mixed $data): string;
Expand All @@ -18,6 +20,8 @@ public function jsonEncode(mixed $data): string;
* Encodes to base64url
*
* @link http://tools.ietf.org/html/rfc4648#section-5
*
* @return ($data is non-empty-string ? non-empty-string : string)
*/
public function base64UrlEncode(string $data): string;
}
7 changes: 6 additions & 1 deletion src/Encoding/JoseEncoder.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
use Lcobucci\JWT\Encoder;
use Lcobucci\JWT\SodiumBase64Polyfill;

use function assert;
use function json_decode;
use function json_encode;

Expand All @@ -23,10 +24,14 @@ final class JoseEncoder implements Encoder, Decoder
public function jsonEncode(mixed $data): string
{
try {
return json_encode($data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_THROW_ON_ERROR);
$jsonEncoded = json_encode($data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_THROW_ON_ERROR);
} catch (JsonException $exception) {
throw CannotEncodeContent::jsonIssues($exception);
}

assert($jsonEncoded !== '');

return $jsonEncoded;
}

public function jsonDecode(string $json): mixed
Expand Down
1 change: 1 addition & 0 deletions src/JwtFacade.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ public function issue(
return $customiseBuilder($builder, $now)->getToken($signer, $signingKey);
}

/** @param non-empty-string $jwt */
public function parse(
string $jwt,
SignedWith $signedWith,
Expand Down
Loading