diff --git a/.ci-tools/phpstan-baseline.neon b/.ci-tools/phpstan-baseline.neon index 95df433b..8c6c0822 100644 --- a/.ci-tools/phpstan-baseline.neon +++ b/.ci-tools/phpstan-baseline.neon @@ -1767,6 +1767,30 @@ parameters: count: 1 path: ../src/symfony/src/Security/Authorization/Voter/IsUserVerifiedVoter.php + - + rawMessage: 'Method Webauthn\Bundle\Security\Handler\CreationOptionsHandler::onCreationOptions() has parameter $request with a nullable type declaration.' + identifier: ergebnis.noParameterWithNullableTypeDeclaration + count: 1 + path: ../src/symfony/src/Security/Handler/CreationOptionsHandler.php + + - + rawMessage: 'Method Webauthn\Bundle\Security\Handler\CreationOptionsHandler::onCreationOptions() has parameter $request with null as default value.' + identifier: ergebnis.noParameterWithNullDefaultValue + count: 1 + path: ../src/symfony/src/Security/Handler/CreationOptionsHandler.php + + - + rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultCreationOptionsHandler::onCreationOptions() has parameter $request with a nullable type declaration.' + identifier: ergebnis.noParameterWithNullableTypeDeclaration + count: 1 + path: ../src/symfony/src/Security/Handler/DefaultCreationOptionsHandler.php + + - + rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultCreationOptionsHandler::onCreationOptions() has parameter $request with null as default value.' + identifier: ergebnis.noParameterWithNullDefaultValue + count: 1 + path: ../src/symfony/src/Security/Handler/DefaultCreationOptionsHandler.php + - rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultFailureHandler::onFailure() has parameter $exception with a nullable type declaration.' identifier: ergebnis.noParameterWithNullableTypeDeclaration @@ -1779,12 +1803,60 @@ parameters: count: 1 path: ../src/symfony/src/Security/Handler/DefaultFailureHandler.php + - + rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultRequestOptionsHandler::onRequestOptions() has parameter $request with a nullable type declaration.' + identifier: ergebnis.noParameterWithNullableTypeDeclaration + count: 1 + path: ../src/symfony/src/Security/Handler/DefaultRequestOptionsHandler.php + + - + rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultRequestOptionsHandler::onRequestOptions() has parameter $request with null as default value.' + identifier: ergebnis.noParameterWithNullDefaultValue + count: 1 + path: ../src/symfony/src/Security/Handler/DefaultRequestOptionsHandler.php + - rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultRequestOptionsHandler::onRequestOptions() has parameter $userEntity with a nullable type declaration.' identifier: ergebnis.noParameterWithNullableTypeDeclaration count: 1 path: ../src/symfony/src/Security/Handler/DefaultRequestOptionsHandler.php + - + rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultSuccessHandler::onSuccess() has parameter $publicKeyCredential with a nullable type declaration.' + identifier: ergebnis.noParameterWithNullableTypeDeclaration + count: 1 + path: ../src/symfony/src/Security/Handler/DefaultSuccessHandler.php + + - + rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultSuccessHandler::onSuccess() has parameter $publicKeyCredential with null as default value.' + identifier: ergebnis.noParameterWithNullDefaultValue + count: 1 + path: ../src/symfony/src/Security/Handler/DefaultSuccessHandler.php + + - + rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultSuccessHandler::onSuccess() has parameter $publicKeyCredentialOptions with a nullable type declaration.' + identifier: ergebnis.noParameterWithNullableTypeDeclaration + count: 1 + path: ../src/symfony/src/Security/Handler/DefaultSuccessHandler.php + + - + rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultSuccessHandler::onSuccess() has parameter $publicKeyCredentialOptions with null as default value.' + identifier: ergebnis.noParameterWithNullDefaultValue + count: 1 + path: ../src/symfony/src/Security/Handler/DefaultSuccessHandler.php + + - + rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultSuccessHandler::onSuccess() has parameter $userEntity with a nullable type declaration.' + identifier: ergebnis.noParameterWithNullableTypeDeclaration + count: 1 + path: ../src/symfony/src/Security/Handler/DefaultSuccessHandler.php + + - + rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultSuccessHandler::onSuccess() has parameter $userEntity with null as default value.' + identifier: ergebnis.noParameterWithNullDefaultValue + count: 1 + path: ../src/symfony/src/Security/Handler/DefaultSuccessHandler.php + - rawMessage: 'Method Webauthn\Bundle\Security\Handler\FailureHandler::onFailure() has parameter $exception with a nullable type declaration.' identifier: ergebnis.noParameterWithNullableTypeDeclaration @@ -1797,12 +1869,60 @@ parameters: count: 1 path: ../src/symfony/src/Security/Handler/FailureHandler.php + - + rawMessage: 'Method Webauthn\Bundle\Security\Handler\RequestOptionsHandler::onRequestOptions() has parameter $request with a nullable type declaration.' + identifier: ergebnis.noParameterWithNullableTypeDeclaration + count: 1 + path: ../src/symfony/src/Security/Handler/RequestOptionsHandler.php + + - + rawMessage: 'Method Webauthn\Bundle\Security\Handler\RequestOptionsHandler::onRequestOptions() has parameter $request with null as default value.' + identifier: ergebnis.noParameterWithNullDefaultValue + count: 1 + path: ../src/symfony/src/Security/Handler/RequestOptionsHandler.php + - rawMessage: 'Method Webauthn\Bundle\Security\Handler\RequestOptionsHandler::onRequestOptions() has parameter $userEntity with a nullable type declaration.' identifier: ergebnis.noParameterWithNullableTypeDeclaration count: 1 path: ../src/symfony/src/Security/Handler/RequestOptionsHandler.php + - + rawMessage: 'Method Webauthn\Bundle\Security\Handler\SuccessHandler::onSuccess() has parameter $publicKeyCredential with a nullable type declaration.' + identifier: ergebnis.noParameterWithNullableTypeDeclaration + count: 1 + path: ../src/symfony/src/Security/Handler/SuccessHandler.php + + - + rawMessage: 'Method Webauthn\Bundle\Security\Handler\SuccessHandler::onSuccess() has parameter $publicKeyCredential with null as default value.' + identifier: ergebnis.noParameterWithNullDefaultValue + count: 1 + path: ../src/symfony/src/Security/Handler/SuccessHandler.php + + - + rawMessage: 'Method Webauthn\Bundle\Security\Handler\SuccessHandler::onSuccess() has parameter $publicKeyCredentialOptions with a nullable type declaration.' + identifier: ergebnis.noParameterWithNullableTypeDeclaration + count: 1 + path: ../src/symfony/src/Security/Handler/SuccessHandler.php + + - + rawMessage: 'Method Webauthn\Bundle\Security\Handler\SuccessHandler::onSuccess() has parameter $publicKeyCredentialOptions with null as default value.' + identifier: ergebnis.noParameterWithNullDefaultValue + count: 1 + path: ../src/symfony/src/Security/Handler/SuccessHandler.php + + - + rawMessage: 'Method Webauthn\Bundle\Security\Handler\SuccessHandler::onSuccess() has parameter $userEntity with a nullable type declaration.' + identifier: ergebnis.noParameterWithNullableTypeDeclaration + count: 1 + path: ../src/symfony/src/Security/Handler/SuccessHandler.php + + - + rawMessage: 'Method Webauthn\Bundle\Security\Handler\SuccessHandler::onSuccess() has parameter $userEntity with null as default value.' + identifier: ergebnis.noParameterWithNullDefaultValue + count: 1 + path: ../src/symfony/src/Security/Handler/SuccessHandler.php + - rawMessage: Class Webauthn\Bundle\Security\Http\Authenticator\Passport\Credentials\WebauthnCredentials is neither abstract nor final. identifier: ergebnis.final @@ -2082,6 +2202,42 @@ parameters: count: 1 path: ../src/symfony/src/Service/DefaultFailureHandler.php + - + rawMessage: 'Method Webauthn\Bundle\Service\DefaultSuccessHandler::onSuccess() has parameter $publicKeyCredential with a nullable type declaration.' + identifier: ergebnis.noParameterWithNullableTypeDeclaration + count: 1 + path: ../src/symfony/src/Service/DefaultSuccessHandler.php + + - + rawMessage: 'Method Webauthn\Bundle\Service\DefaultSuccessHandler::onSuccess() has parameter $publicKeyCredential with null as default value.' + identifier: ergebnis.noParameterWithNullDefaultValue + count: 1 + path: ../src/symfony/src/Service/DefaultSuccessHandler.php + + - + rawMessage: 'Method Webauthn\Bundle\Service\DefaultSuccessHandler::onSuccess() has parameter $publicKeyCredentialOptions with a nullable type declaration.' + identifier: ergebnis.noParameterWithNullableTypeDeclaration + count: 1 + path: ../src/symfony/src/Service/DefaultSuccessHandler.php + + - + rawMessage: 'Method Webauthn\Bundle\Service\DefaultSuccessHandler::onSuccess() has parameter $publicKeyCredentialOptions with null as default value.' + identifier: ergebnis.noParameterWithNullDefaultValue + count: 1 + path: ../src/symfony/src/Service/DefaultSuccessHandler.php + + - + rawMessage: 'Method Webauthn\Bundle\Service\DefaultSuccessHandler::onSuccess() has parameter $userEntity with a nullable type declaration.' + identifier: ergebnis.noParameterWithNullableTypeDeclaration + count: 1 + path: ../src/symfony/src/Service/DefaultSuccessHandler.php + + - + rawMessage: 'Method Webauthn\Bundle\Service\DefaultSuccessHandler::onSuccess() has parameter $userEntity with null as default value.' + identifier: ergebnis.noParameterWithNullDefaultValue + count: 1 + path: ../src/symfony/src/Service/DefaultSuccessHandler.php + - rawMessage: Cannot access offset 'attestation_conveyance' on mixed. identifier: offsetAccess.nonOffsetAccessible diff --git a/src/symfony/src/Security/Handler/CreationOptionsHandler.php b/src/symfony/src/Security/Handler/CreationOptionsHandler.php index d76a7255..d9467733 100644 --- a/src/symfony/src/Security/Handler/CreationOptionsHandler.php +++ b/src/symfony/src/Security/Handler/CreationOptionsHandler.php @@ -4,6 +4,7 @@ namespace Webauthn\Bundle\Security\Handler; +use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Webauthn\PublicKeyCredentialCreationOptions; use Webauthn\PublicKeyCredentialUserEntity; @@ -12,6 +13,7 @@ interface CreationOptionsHandler { public function onCreationOptions( PublicKeyCredentialCreationOptions $publicKeyCredentialCreationOptions, - PublicKeyCredentialUserEntity $userEntity + PublicKeyCredentialUserEntity $userEntity, + ?Request $request = null, ): Response; } diff --git a/src/symfony/src/Security/Handler/DefaultCreationOptionsHandler.php b/src/symfony/src/Security/Handler/DefaultCreationOptionsHandler.php index 0a5cfa28..6fbd0066 100644 --- a/src/symfony/src/Security/Handler/DefaultCreationOptionsHandler.php +++ b/src/symfony/src/Security/Handler/DefaultCreationOptionsHandler.php @@ -6,6 +6,7 @@ use RuntimeException; use Symfony\Component\HttpFoundation\JsonResponse; +use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Serializer\Encoder\JsonEncoder; use Symfony\Component\Serializer\Normalizer\AbstractObjectNormalizer; @@ -23,7 +24,8 @@ public function __construct( public function onCreationOptions( PublicKeyCredentialCreationOptions $publicKeyCredentialCreationOptions, - PublicKeyCredentialUserEntity $userEntity + PublicKeyCredentialUserEntity $userEntity, + ?Request $request = null, ): Response { $data = $this->normalizer->normalize($publicKeyCredentialCreationOptions, JsonEncoder::FORMAT, [ AbstractObjectNormalizer::SKIP_NULL_VALUES => true, diff --git a/src/symfony/src/Security/Handler/DefaultRequestOptionsHandler.php b/src/symfony/src/Security/Handler/DefaultRequestOptionsHandler.php index 72d5a2a8..2478ee33 100644 --- a/src/symfony/src/Security/Handler/DefaultRequestOptionsHandler.php +++ b/src/symfony/src/Security/Handler/DefaultRequestOptionsHandler.php @@ -6,6 +6,7 @@ use RuntimeException; use Symfony\Component\HttpFoundation\JsonResponse; +use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Serializer\Encoder\JsonEncoder; use Symfony\Component\Serializer\Normalizer\AbstractObjectNormalizer; @@ -23,7 +24,8 @@ public function __construct( public function onRequestOptions( PublicKeyCredentialRequestOptions $publicKeyCredentialRequestOptions, - ?PublicKeyCredentialUserEntity $userEntity + ?PublicKeyCredentialUserEntity $userEntity, + ?Request $request = null ): Response { $data = $this->normalizer->normalize($publicKeyCredentialRequestOptions, JsonEncoder::FORMAT, [ AbstractObjectNormalizer::SKIP_NULL_VALUES => true, diff --git a/src/symfony/src/Security/Handler/DefaultSuccessHandler.php b/src/symfony/src/Security/Handler/DefaultSuccessHandler.php index 252eeb2c..6641f223 100644 --- a/src/symfony/src/Security/Handler/DefaultSuccessHandler.php +++ b/src/symfony/src/Security/Handler/DefaultSuccessHandler.php @@ -9,11 +9,18 @@ use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface; +use Webauthn\PublicKeyCredential; +use Webauthn\PublicKeyCredentialOptions; +use Webauthn\PublicKeyCredentialUserEntity; final class DefaultSuccessHandler implements SuccessHandler, AuthenticationSuccessHandlerInterface { - public function onSuccess(Request $request): Response - { + public function onSuccess( + Request $request, + ?PublicKeyCredential $publicKeyCredential = null, + ?PublicKeyCredentialOptions $publicKeyCredentialOptions = null, + ?PublicKeyCredentialUserEntity $userEntity = null + ): Response { $data = [ 'status' => 'ok', 'errorMessage' => '', diff --git a/src/symfony/src/Security/Handler/RequestOptionsHandler.php b/src/symfony/src/Security/Handler/RequestOptionsHandler.php index aa86ad34..3bd01222 100644 --- a/src/symfony/src/Security/Handler/RequestOptionsHandler.php +++ b/src/symfony/src/Security/Handler/RequestOptionsHandler.php @@ -4,6 +4,7 @@ namespace Webauthn\Bundle\Security\Handler; +use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Webauthn\PublicKeyCredentialRequestOptions; use Webauthn\PublicKeyCredentialUserEntity; @@ -12,6 +13,7 @@ interface RequestOptionsHandler { public function onRequestOptions( PublicKeyCredentialRequestOptions $publicKeyCredentialRequestOptions, - ?PublicKeyCredentialUserEntity $userEntity + ?PublicKeyCredentialUserEntity $userEntity, + ?Request $request = null ): Response; } diff --git a/src/symfony/src/Security/Handler/SuccessHandler.php b/src/symfony/src/Security/Handler/SuccessHandler.php index ac3ef9a4..efcb21ea 100644 --- a/src/symfony/src/Security/Handler/SuccessHandler.php +++ b/src/symfony/src/Security/Handler/SuccessHandler.php @@ -6,8 +6,16 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; +use Webauthn\PublicKeyCredential; +use Webauthn\PublicKeyCredentialOptions; +use Webauthn\PublicKeyCredentialUserEntity; interface SuccessHandler { - public function onSuccess(Request $request): Response; + public function onSuccess( + Request $request, + ?PublicKeyCredential $publicKeyCredential = null, + ?PublicKeyCredentialOptions $publicKeyCredentialOptions = null, + ?PublicKeyCredentialUserEntity $userEntity = null + ): Response; } diff --git a/src/symfony/src/Service/DefaultSuccessHandler.php b/src/symfony/src/Service/DefaultSuccessHandler.php index 260a3604..a5c669cc 100644 --- a/src/symfony/src/Service/DefaultSuccessHandler.php +++ b/src/symfony/src/Service/DefaultSuccessHandler.php @@ -8,11 +8,18 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Webauthn\Bundle\Security\Handler\SuccessHandler; +use Webauthn\PublicKeyCredential; +use Webauthn\PublicKeyCredentialOptions; +use Webauthn\PublicKeyCredentialUserEntity; final class DefaultSuccessHandler implements SuccessHandler { - public function onSuccess(Request $request): Response - { + public function onSuccess( + Request $request, + ?PublicKeyCredential $publicKeyCredential = null, + ?PublicKeyCredentialOptions $publicKeyCredentialOptions = null, + ?PublicKeyCredentialUserEntity $userEntity = null + ): Response { $data = [ 'status' => 'ok', 'errorMessage' => '', diff --git a/tests/symfony/functional/SuccessHandler.php b/tests/symfony/functional/SuccessHandler.php index 026ddfd8..7d9bdb91 100644 --- a/tests/symfony/functional/SuccessHandler.php +++ b/tests/symfony/functional/SuccessHandler.php @@ -10,11 +10,18 @@ use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface; use Webauthn\Bundle\Security\Handler\SuccessHandler as SuccessHandlerInterface; +use Webauthn\PublicKeyCredential; +use Webauthn\PublicKeyCredentialOptions; +use Webauthn\PublicKeyCredentialUserEntity; final class SuccessHandler implements AuthenticationSuccessHandlerInterface, SuccessHandlerInterface { - public function onSuccess(Request $request): Response - { + public function onSuccess( + Request $request, + ?PublicKeyCredential $publicKeyCredential = null, + ?PublicKeyCredentialOptions $publicKeyCredentialOptions = null, + ?PublicKeyCredentialUserEntity $userEntity = null + ): Response { $data = [ 'status' => 'ok', 'errorMessage' => '',