Skip to content

Merge release 3.1.6 into 3.2.x #432

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

Merged
merged 3 commits into from
Feb 2, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/tweet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Tweet
uses: snow-actions/tweet@v1
uses: snow-actions/tweet@v1.4.0
with:
status: |
We are proud to announce that ${{ github.repository }} · ${{ github.event.release.name }}
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
"ext-mbstring": "*",
"ext-openssl": "*",
"ext-sodium": "*",
"brick/math": "^0.9|^0.10",
"brick/math": "^0.9|^0.10|^0.11",
"paragonie/constant_time_encoding": "^2.4",
"psr/event-dispatcher": "^1.0",
"psr/http-client": "^1.0",
Expand Down
4 changes: 4 additions & 0 deletions phpstan.neon
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,11 @@ parameters:
checkGenericClassInNonGenericObjectType: false
treatPhpDocTypesAsCertain: false
checkUninitializedProperties: true
checkDynamicProperties: true
ignoreErrors:
- "#Method [a-zA-Z0-9\\_\\\\:\\(\\)]+ has parameter \\$[a-zA-Z0-9_]+ with no value type specified in iterable type array#"
- "#Method [a-zA-Z0-9\\_\\\\:\\(\\)]+ return type has no value type specified in iterable type array#"
- "#Property [a-zA-Z0-9\\$\\_\\\\:\\(\\)]+ type has no value type specified in iterable type array#"
- '#Variable static method call on Jose\\Component\\Core\\Util\\Hash\.#'
- '#Call to an undefined method Symfony\\Component\\Config\\Definition\\Builder\\NodeDefinition::children\(\)#'
- '#Invalid type object to throw\.#'
Expand Down
6 changes: 6 additions & 0 deletions src/Bundle/JoseFramework/DataCollector/AlgorithmCollector.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ public function __construct(
) {
}

/**
* @param array<string, mixed> $data
*/
public function collect(array &$data, Request $request, Response $response, ?Throwable $exception = null): void
{
$algorithms = $this->algorithmManagerFactory->all();
Expand Down Expand Up @@ -90,6 +93,9 @@ private function getAlgorithmType(
}
}

/**
* @return array<string, array<string, string>>
*/
private function getAlgorithmMessages(): array
{
return [
Expand Down
35 changes: 33 additions & 2 deletions src/Bundle/JoseFramework/DataCollector/CheckerCollector.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,26 +15,39 @@
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\VarDumper\Cloner\Data;
use Symfony\Component\VarDumper\Cloner\VarCloner;
use Throwable;

class CheckerCollector implements Collector, EventSubscriberInterface
{
/**
* @var array<Data>
*/
private array $headerCheckedSuccesses = [];

/**
* @var array<Data>
*/
private array $headerCheckedFailures = [];

/**
* @var array<Data>
*/
private array $claimCheckedSuccesses = [];

/**
* @var array<Data>
*/
private array $claimCheckedFailures = [];

/**
* @var HeaderCheckerManager[]
* @var array<HeaderCheckerManager>
*/
private array $headerCheckerManagers = [];

/**
* @var ClaimCheckerManager[]
* @var array<ClaimCheckerManager>
*/
private array $claimCheckerManagers = [];

Expand All @@ -44,6 +57,9 @@ public function __construct(
) {
}

/**
* @param array<string, mixed> $data
*/
public function collect(array &$data, Request $request, Response $response, ?Throwable $exception = null): void
{
$this->collectHeaderCheckerManagers($data);
Expand Down Expand Up @@ -97,6 +113,9 @@ public function catchClaimCheckFailure(ClaimCheckedFailureEvent $event): void
$this->claimCheckedFailures[] = $cloner->cloneVar($event);
}

/**
* @param array<string, array<string, mixed>> $data
*/
private function collectHeaderCheckerManagers(array &$data): void
{
$data['checker']['header_checker_managers'] = [];
Expand All @@ -111,6 +130,9 @@ private function collectHeaderCheckerManagers(array &$data): void
}
}

/**
* @param array<string, array<string, mixed>> $data
*/
private function collectSupportedHeaderCheckers(array &$data): void
{
$data['checker']['header_checkers'] = [];
Expand All @@ -125,6 +147,9 @@ private function collectSupportedHeaderCheckers(array &$data): void
}
}

/**
* @param array<string, array<string, mixed>> $data
*/
private function collectClaimCheckerManagers(array &$data): void
{
$data['checker']['claim_checker_managers'] = [];
Expand All @@ -138,6 +163,9 @@ private function collectClaimCheckerManagers(array &$data): void
}
}

/**
* @param array<string, array<string, mixed>> $data
*/
private function collectSupportedClaimCheckers(array &$data): void
{
$data['checker']['claim_checkers'] = [];
Expand All @@ -151,6 +179,9 @@ private function collectSupportedClaimCheckers(array &$data): void
}
}

/**
* @param array<string, array<string, mixed>> $data
*/
private function collectEvents(array &$data): void
{
$data['checker']['events'] = [
Expand Down
3 changes: 3 additions & 0 deletions src/Bundle/JoseFramework/DataCollector/Collector.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,8 @@

interface Collector
{
/**
* @param array<string, mixed> $data
*/
public function collect(array &$data, Request $request, Response $response, ?Throwable $exception = null): void;
}
40 changes: 37 additions & 3 deletions src/Bundle/JoseFramework/DataCollector/JWECollector.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,31 +16,44 @@
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\VarDumper\Cloner\Data;
use Symfony\Component\VarDumper\Cloner\VarCloner;
use Throwable;

class JWECollector implements Collector, EventSubscriberInterface
{
/**
* @var array<Data>
*/
private array $jweDecryptionSuccesses = [];

/**
* @var array<Data>
*/
private array $jweDecryptionFailures = [];

/**
* @var array<Data>
*/
private array $jweBuiltSuccesses = [];

/**
* @var array<Data>
*/
private array $jweBuiltFailures = [];

/**
* @var JWEBuilder[]
* @var array<JWEBuilder>
*/
private array $jweBuilders = [];

/**
* @var JWEDecrypter[]
* @var array<JWEDecrypter>
*/
private array $jweDecrypters = [];

/**
* @var JWELoader[]
* @var array<JWELoader>
*/
private array $jweLoaders = [];

Expand All @@ -50,6 +63,9 @@ public function __construct(
) {
}

/**
* @param array<string, mixed> $data
*/
public function collect(array &$data, Request $request, Response $response, ?Throwable $exception = null): void
{
$this->collectSupportedCompressionMethods($data);
Expand Down Expand Up @@ -109,6 +125,9 @@ public function catchJweBuiltFailure(JWEBuiltFailureEvent $event): void
$this->jweBuiltFailures[] = $cloner->cloneVar($event);
}

/**
* @param array<string, array<string, mixed>> $data
*/
private function collectSupportedCompressionMethods(array &$data): void
{
$data['jwe']['compression_methods'] = [];
Expand All @@ -121,6 +140,9 @@ private function collectSupportedCompressionMethods(array &$data): void
}
}

/**
* @param array<string, array<string, mixed>> $data
*/
private function collectSupportedJWESerializations(array &$data): void
{
$data['jwe']['jwe_serialization'] = [];
Expand All @@ -133,6 +155,9 @@ private function collectSupportedJWESerializations(array &$data): void
}
}

/**
* @param array<string, array<string, mixed>> $data
*/
private function collectSupportedJWEBuilders(array &$data): void
{
$data['jwe']['jwe_builders'] = [];
Expand All @@ -148,6 +173,9 @@ private function collectSupportedJWEBuilders(array &$data): void
}
}

/**
* @param array<string, array<string, mixed>> $data
*/
private function collectSupportedJWEDecrypters(array &$data): void
{
$data['jwe']['jwe_decrypters'] = [];
Expand All @@ -163,6 +191,9 @@ private function collectSupportedJWEDecrypters(array &$data): void
}
}

/**
* @param array<string, array<string, mixed>> $data
*/
private function collectSupportedJWELoaders(array &$data): void
{
$data['jwe']['jwe_loaders'] = [];
Expand All @@ -183,6 +214,9 @@ private function collectSupportedJWELoaders(array &$data): void
}
}

/**
* @param array<string, array<string, mixed>> $data
*/
private function collectEvents(array &$data): void
{
$data['jwe']['events'] = [
Expand Down
33 changes: 32 additions & 1 deletion src/Bundle/JoseFramework/DataCollector/JWSCollector.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,14 @@
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\VarDumper\Cloner\Data;
use Symfony\Component\VarDumper\Cloner\VarCloner;
use Throwable;

class JWSCollector implements Collector, EventSubscriberInterface
{
/**
* @var JWSBuilder[]
* @var array<JWSBuilder>
*/
private array $jwsBuilders = [];

Expand All @@ -35,19 +36,34 @@ class JWSCollector implements Collector, EventSubscriberInterface
*/
private array $jwsLoaders = [];

/**
* @var array<Data>
*/
private array $jwsVerificationSuccesses = [];

/**
* @var array<Data>
*/
private array $jwsVerificationFailures = [];

/**
* @var array<Data>
*/
private array $jwsBuiltSuccesses = [];

/**
* @var array<Data>
*/
private array $jwsBuiltFailures = [];

public function __construct(
private readonly ?JWSSerializerManagerFactory $jwsSerializerManagerFactory = null
) {
}

/**
* @param array<string, mixed> $data
*/
public function collect(array &$data, Request $request, Response $response, ?Throwable $exception = null): void
{
$this->collectSupportedJWSSerializations($data);
Expand Down Expand Up @@ -106,6 +122,9 @@ public function catchJwsBuiltFailure(JWSBuiltFailureEvent $event): void
$this->jwsBuiltFailures[] = $cloner->cloneVar($event);
}

/**
* @param array<string, array<string, mixed>> $data
*/
private function collectSupportedJWSSerializations(array &$data): void
{
$data['jws']['jws_serialization'] = [];
Expand All @@ -118,6 +137,9 @@ private function collectSupportedJWSSerializations(array &$data): void
}
}

/**
* @param array<string, array<string, mixed>> $data
*/
private function collectSupportedJWSBuilders(array &$data): void
{
$data['jws']['jws_builders'] = [];
Expand All @@ -129,6 +151,9 @@ private function collectSupportedJWSBuilders(array &$data): void
}
}

/**
* @param array<string, array<string, mixed>> $data
*/
private function collectSupportedJWSVerifiers(array &$data): void
{
$data['jws']['jws_verifiers'] = [];
Expand All @@ -140,6 +165,9 @@ private function collectSupportedJWSVerifiers(array &$data): void
}
}

/**
* @param array<string, array<string, mixed>> $data
*/
private function collectSupportedJWSLoaders(array &$data): void
{
$data['jws']['jws_loaders'] = [];
Expand All @@ -154,6 +182,9 @@ private function collectSupportedJWSLoaders(array &$data): void
}
}

/**
* @param array<string, array<string, mixed>> $data
*/
private function collectEvents(array &$data): void
{
$data['jws']['events'] = [
Expand Down
3 changes: 3 additions & 0 deletions src/Bundle/JoseFramework/DataCollector/JoseCollector.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ public function getName(): string
return 'jose_collector';
}

/**
* @return array<string, mixed>|Data
*/
public function getData(): array|Data
{
return $this->data;
Expand Down
Loading