Skip to content

Commit ffedd7d

Browse files
authored
feat: add nullable request parameter to creation and request options handlers (#770)
1 parent 699233d commit ffedd7d

File tree

9 files changed

+204
-11
lines changed

9 files changed

+204
-11
lines changed

.ci-tools/phpstan-baseline.neon

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1767,6 +1767,30 @@ parameters:
17671767
count: 1
17681768
path: ../src/symfony/src/Security/Authorization/Voter/IsUserVerifiedVoter.php
17691769

1770+
-
1771+
rawMessage: 'Method Webauthn\Bundle\Security\Handler\CreationOptionsHandler::onCreationOptions() has parameter $request with a nullable type declaration.'
1772+
identifier: ergebnis.noParameterWithNullableTypeDeclaration
1773+
count: 1
1774+
path: ../src/symfony/src/Security/Handler/CreationOptionsHandler.php
1775+
1776+
-
1777+
rawMessage: 'Method Webauthn\Bundle\Security\Handler\CreationOptionsHandler::onCreationOptions() has parameter $request with null as default value.'
1778+
identifier: ergebnis.noParameterWithNullDefaultValue
1779+
count: 1
1780+
path: ../src/symfony/src/Security/Handler/CreationOptionsHandler.php
1781+
1782+
-
1783+
rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultCreationOptionsHandler::onCreationOptions() has parameter $request with a nullable type declaration.'
1784+
identifier: ergebnis.noParameterWithNullableTypeDeclaration
1785+
count: 1
1786+
path: ../src/symfony/src/Security/Handler/DefaultCreationOptionsHandler.php
1787+
1788+
-
1789+
rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultCreationOptionsHandler::onCreationOptions() has parameter $request with null as default value.'
1790+
identifier: ergebnis.noParameterWithNullDefaultValue
1791+
count: 1
1792+
path: ../src/symfony/src/Security/Handler/DefaultCreationOptionsHandler.php
1793+
17701794
-
17711795
rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultFailureHandler::onFailure() has parameter $exception with a nullable type declaration.'
17721796
identifier: ergebnis.noParameterWithNullableTypeDeclaration
@@ -1779,12 +1803,60 @@ parameters:
17791803
count: 1
17801804
path: ../src/symfony/src/Security/Handler/DefaultFailureHandler.php
17811805

1806+
-
1807+
rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultRequestOptionsHandler::onRequestOptions() has parameter $request with a nullable type declaration.'
1808+
identifier: ergebnis.noParameterWithNullableTypeDeclaration
1809+
count: 1
1810+
path: ../src/symfony/src/Security/Handler/DefaultRequestOptionsHandler.php
1811+
1812+
-
1813+
rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultRequestOptionsHandler::onRequestOptions() has parameter $request with null as default value.'
1814+
identifier: ergebnis.noParameterWithNullDefaultValue
1815+
count: 1
1816+
path: ../src/symfony/src/Security/Handler/DefaultRequestOptionsHandler.php
1817+
17821818
-
17831819
rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultRequestOptionsHandler::onRequestOptions() has parameter $userEntity with a nullable type declaration.'
17841820
identifier: ergebnis.noParameterWithNullableTypeDeclaration
17851821
count: 1
17861822
path: ../src/symfony/src/Security/Handler/DefaultRequestOptionsHandler.php
17871823

1824+
-
1825+
rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultSuccessHandler::onSuccess() has parameter $publicKeyCredential with a nullable type declaration.'
1826+
identifier: ergebnis.noParameterWithNullableTypeDeclaration
1827+
count: 1
1828+
path: ../src/symfony/src/Security/Handler/DefaultSuccessHandler.php
1829+
1830+
-
1831+
rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultSuccessHandler::onSuccess() has parameter $publicKeyCredential with null as default value.'
1832+
identifier: ergebnis.noParameterWithNullDefaultValue
1833+
count: 1
1834+
path: ../src/symfony/src/Security/Handler/DefaultSuccessHandler.php
1835+
1836+
-
1837+
rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultSuccessHandler::onSuccess() has parameter $publicKeyCredentialOptions with a nullable type declaration.'
1838+
identifier: ergebnis.noParameterWithNullableTypeDeclaration
1839+
count: 1
1840+
path: ../src/symfony/src/Security/Handler/DefaultSuccessHandler.php
1841+
1842+
-
1843+
rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultSuccessHandler::onSuccess() has parameter $publicKeyCredentialOptions with null as default value.'
1844+
identifier: ergebnis.noParameterWithNullDefaultValue
1845+
count: 1
1846+
path: ../src/symfony/src/Security/Handler/DefaultSuccessHandler.php
1847+
1848+
-
1849+
rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultSuccessHandler::onSuccess() has parameter $userEntity with a nullable type declaration.'
1850+
identifier: ergebnis.noParameterWithNullableTypeDeclaration
1851+
count: 1
1852+
path: ../src/symfony/src/Security/Handler/DefaultSuccessHandler.php
1853+
1854+
-
1855+
rawMessage: 'Method Webauthn\Bundle\Security\Handler\DefaultSuccessHandler::onSuccess() has parameter $userEntity with null as default value.'
1856+
identifier: ergebnis.noParameterWithNullDefaultValue
1857+
count: 1
1858+
path: ../src/symfony/src/Security/Handler/DefaultSuccessHandler.php
1859+
17881860
-
17891861
rawMessage: 'Method Webauthn\Bundle\Security\Handler\FailureHandler::onFailure() has parameter $exception with a nullable type declaration.'
17901862
identifier: ergebnis.noParameterWithNullableTypeDeclaration
@@ -1797,12 +1869,60 @@ parameters:
17971869
count: 1
17981870
path: ../src/symfony/src/Security/Handler/FailureHandler.php
17991871

1872+
-
1873+
rawMessage: 'Method Webauthn\Bundle\Security\Handler\RequestOptionsHandler::onRequestOptions() has parameter $request with a nullable type declaration.'
1874+
identifier: ergebnis.noParameterWithNullableTypeDeclaration
1875+
count: 1
1876+
path: ../src/symfony/src/Security/Handler/RequestOptionsHandler.php
1877+
1878+
-
1879+
rawMessage: 'Method Webauthn\Bundle\Security\Handler\RequestOptionsHandler::onRequestOptions() has parameter $request with null as default value.'
1880+
identifier: ergebnis.noParameterWithNullDefaultValue
1881+
count: 1
1882+
path: ../src/symfony/src/Security/Handler/RequestOptionsHandler.php
1883+
18001884
-
18011885
rawMessage: 'Method Webauthn\Bundle\Security\Handler\RequestOptionsHandler::onRequestOptions() has parameter $userEntity with a nullable type declaration.'
18021886
identifier: ergebnis.noParameterWithNullableTypeDeclaration
18031887
count: 1
18041888
path: ../src/symfony/src/Security/Handler/RequestOptionsHandler.php
18051889

1890+
-
1891+
rawMessage: 'Method Webauthn\Bundle\Security\Handler\SuccessHandler::onSuccess() has parameter $publicKeyCredential with a nullable type declaration.'
1892+
identifier: ergebnis.noParameterWithNullableTypeDeclaration
1893+
count: 1
1894+
path: ../src/symfony/src/Security/Handler/SuccessHandler.php
1895+
1896+
-
1897+
rawMessage: 'Method Webauthn\Bundle\Security\Handler\SuccessHandler::onSuccess() has parameter $publicKeyCredential with null as default value.'
1898+
identifier: ergebnis.noParameterWithNullDefaultValue
1899+
count: 1
1900+
path: ../src/symfony/src/Security/Handler/SuccessHandler.php
1901+
1902+
-
1903+
rawMessage: 'Method Webauthn\Bundle\Security\Handler\SuccessHandler::onSuccess() has parameter $publicKeyCredentialOptions with a nullable type declaration.'
1904+
identifier: ergebnis.noParameterWithNullableTypeDeclaration
1905+
count: 1
1906+
path: ../src/symfony/src/Security/Handler/SuccessHandler.php
1907+
1908+
-
1909+
rawMessage: 'Method Webauthn\Bundle\Security\Handler\SuccessHandler::onSuccess() has parameter $publicKeyCredentialOptions with null as default value.'
1910+
identifier: ergebnis.noParameterWithNullDefaultValue
1911+
count: 1
1912+
path: ../src/symfony/src/Security/Handler/SuccessHandler.php
1913+
1914+
-
1915+
rawMessage: 'Method Webauthn\Bundle\Security\Handler\SuccessHandler::onSuccess() has parameter $userEntity with a nullable type declaration.'
1916+
identifier: ergebnis.noParameterWithNullableTypeDeclaration
1917+
count: 1
1918+
path: ../src/symfony/src/Security/Handler/SuccessHandler.php
1919+
1920+
-
1921+
rawMessage: 'Method Webauthn\Bundle\Security\Handler\SuccessHandler::onSuccess() has parameter $userEntity with null as default value.'
1922+
identifier: ergebnis.noParameterWithNullDefaultValue
1923+
count: 1
1924+
path: ../src/symfony/src/Security/Handler/SuccessHandler.php
1925+
18061926
-
18071927
rawMessage: Class Webauthn\Bundle\Security\Http\Authenticator\Passport\Credentials\WebauthnCredentials is neither abstract nor final.
18081928
identifier: ergebnis.final
@@ -2082,6 +2202,42 @@ parameters:
20822202
count: 1
20832203
path: ../src/symfony/src/Service/DefaultFailureHandler.php
20842204

2205+
-
2206+
rawMessage: 'Method Webauthn\Bundle\Service\DefaultSuccessHandler::onSuccess() has parameter $publicKeyCredential with a nullable type declaration.'
2207+
identifier: ergebnis.noParameterWithNullableTypeDeclaration
2208+
count: 1
2209+
path: ../src/symfony/src/Service/DefaultSuccessHandler.php
2210+
2211+
-
2212+
rawMessage: 'Method Webauthn\Bundle\Service\DefaultSuccessHandler::onSuccess() has parameter $publicKeyCredential with null as default value.'
2213+
identifier: ergebnis.noParameterWithNullDefaultValue
2214+
count: 1
2215+
path: ../src/symfony/src/Service/DefaultSuccessHandler.php
2216+
2217+
-
2218+
rawMessage: 'Method Webauthn\Bundle\Service\DefaultSuccessHandler::onSuccess() has parameter $publicKeyCredentialOptions with a nullable type declaration.'
2219+
identifier: ergebnis.noParameterWithNullableTypeDeclaration
2220+
count: 1
2221+
path: ../src/symfony/src/Service/DefaultSuccessHandler.php
2222+
2223+
-
2224+
rawMessage: 'Method Webauthn\Bundle\Service\DefaultSuccessHandler::onSuccess() has parameter $publicKeyCredentialOptions with null as default value.'
2225+
identifier: ergebnis.noParameterWithNullDefaultValue
2226+
count: 1
2227+
path: ../src/symfony/src/Service/DefaultSuccessHandler.php
2228+
2229+
-
2230+
rawMessage: 'Method Webauthn\Bundle\Service\DefaultSuccessHandler::onSuccess() has parameter $userEntity with a nullable type declaration.'
2231+
identifier: ergebnis.noParameterWithNullableTypeDeclaration
2232+
count: 1
2233+
path: ../src/symfony/src/Service/DefaultSuccessHandler.php
2234+
2235+
-
2236+
rawMessage: 'Method Webauthn\Bundle\Service\DefaultSuccessHandler::onSuccess() has parameter $userEntity with null as default value.'
2237+
identifier: ergebnis.noParameterWithNullDefaultValue
2238+
count: 1
2239+
path: ../src/symfony/src/Service/DefaultSuccessHandler.php
2240+
20852241
-
20862242
rawMessage: Cannot access offset 'attestation_conveyance' on mixed.
20872243
identifier: offsetAccess.nonOffsetAccessible

src/symfony/src/Security/Handler/CreationOptionsHandler.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
namespace Webauthn\Bundle\Security\Handler;
66

7+
use Symfony\Component\HttpFoundation\Request;
78
use Symfony\Component\HttpFoundation\Response;
89
use Webauthn\PublicKeyCredentialCreationOptions;
910
use Webauthn\PublicKeyCredentialUserEntity;
@@ -12,6 +13,7 @@ interface CreationOptionsHandler
1213
{
1314
public function onCreationOptions(
1415
PublicKeyCredentialCreationOptions $publicKeyCredentialCreationOptions,
15-
PublicKeyCredentialUserEntity $userEntity
16+
PublicKeyCredentialUserEntity $userEntity,
17+
?Request $request = null,
1618
): Response;
1719
}

src/symfony/src/Security/Handler/DefaultCreationOptionsHandler.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
use RuntimeException;
88
use Symfony\Component\HttpFoundation\JsonResponse;
9+
use Symfony\Component\HttpFoundation\Request;
910
use Symfony\Component\HttpFoundation\Response;
1011
use Symfony\Component\Serializer\Encoder\JsonEncoder;
1112
use Symfony\Component\Serializer\Normalizer\AbstractObjectNormalizer;
@@ -23,7 +24,8 @@ public function __construct(
2324

2425
public function onCreationOptions(
2526
PublicKeyCredentialCreationOptions $publicKeyCredentialCreationOptions,
26-
PublicKeyCredentialUserEntity $userEntity
27+
PublicKeyCredentialUserEntity $userEntity,
28+
?Request $request = null,
2729
): Response {
2830
$data = $this->normalizer->normalize($publicKeyCredentialCreationOptions, JsonEncoder::FORMAT, [
2931
AbstractObjectNormalizer::SKIP_NULL_VALUES => true,

src/symfony/src/Security/Handler/DefaultRequestOptionsHandler.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
use RuntimeException;
88
use Symfony\Component\HttpFoundation\JsonResponse;
9+
use Symfony\Component\HttpFoundation\Request;
910
use Symfony\Component\HttpFoundation\Response;
1011
use Symfony\Component\Serializer\Encoder\JsonEncoder;
1112
use Symfony\Component\Serializer\Normalizer\AbstractObjectNormalizer;
@@ -23,7 +24,8 @@ public function __construct(
2324

2425
public function onRequestOptions(
2526
PublicKeyCredentialRequestOptions $publicKeyCredentialRequestOptions,
26-
?PublicKeyCredentialUserEntity $userEntity
27+
?PublicKeyCredentialUserEntity $userEntity,
28+
?Request $request = null
2729
): Response {
2830
$data = $this->normalizer->normalize($publicKeyCredentialRequestOptions, JsonEncoder::FORMAT, [
2931
AbstractObjectNormalizer::SKIP_NULL_VALUES => true,

src/symfony/src/Security/Handler/DefaultSuccessHandler.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,18 @@
99
use Symfony\Component\HttpFoundation\Response;
1010
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
1111
use Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface;
12+
use Webauthn\PublicKeyCredential;
13+
use Webauthn\PublicKeyCredentialOptions;
14+
use Webauthn\PublicKeyCredentialUserEntity;
1215

1316
final class DefaultSuccessHandler implements SuccessHandler, AuthenticationSuccessHandlerInterface
1417
{
15-
public function onSuccess(Request $request): Response
16-
{
18+
public function onSuccess(
19+
Request $request,
20+
?PublicKeyCredential $publicKeyCredential = null,
21+
?PublicKeyCredentialOptions $publicKeyCredentialOptions = null,
22+
?PublicKeyCredentialUserEntity $userEntity = null
23+
): Response {
1724
$data = [
1825
'status' => 'ok',
1926
'errorMessage' => '',

src/symfony/src/Security/Handler/RequestOptionsHandler.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
namespace Webauthn\Bundle\Security\Handler;
66

7+
use Symfony\Component\HttpFoundation\Request;
78
use Symfony\Component\HttpFoundation\Response;
89
use Webauthn\PublicKeyCredentialRequestOptions;
910
use Webauthn\PublicKeyCredentialUserEntity;
@@ -12,6 +13,7 @@ interface RequestOptionsHandler
1213
{
1314
public function onRequestOptions(
1415
PublicKeyCredentialRequestOptions $publicKeyCredentialRequestOptions,
15-
?PublicKeyCredentialUserEntity $userEntity
16+
?PublicKeyCredentialUserEntity $userEntity,
17+
?Request $request = null
1618
): Response;
1719
}

src/symfony/src/Security/Handler/SuccessHandler.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,16 @@
66

77
use Symfony\Component\HttpFoundation\Request;
88
use Symfony\Component\HttpFoundation\Response;
9+
use Webauthn\PublicKeyCredential;
10+
use Webauthn\PublicKeyCredentialOptions;
11+
use Webauthn\PublicKeyCredentialUserEntity;
912

1013
interface SuccessHandler
1114
{
12-
public function onSuccess(Request $request): Response;
15+
public function onSuccess(
16+
Request $request,
17+
?PublicKeyCredential $publicKeyCredential = null,
18+
?PublicKeyCredentialOptions $publicKeyCredentialOptions = null,
19+
?PublicKeyCredentialUserEntity $userEntity = null
20+
): Response;
1321
}

src/symfony/src/Service/DefaultSuccessHandler.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,18 @@
88
use Symfony\Component\HttpFoundation\Request;
99
use Symfony\Component\HttpFoundation\Response;
1010
use Webauthn\Bundle\Security\Handler\SuccessHandler;
11+
use Webauthn\PublicKeyCredential;
12+
use Webauthn\PublicKeyCredentialOptions;
13+
use Webauthn\PublicKeyCredentialUserEntity;
1114

1215
final class DefaultSuccessHandler implements SuccessHandler
1316
{
14-
public function onSuccess(Request $request): Response
15-
{
17+
public function onSuccess(
18+
Request $request,
19+
?PublicKeyCredential $publicKeyCredential = null,
20+
?PublicKeyCredentialOptions $publicKeyCredentialOptions = null,
21+
?PublicKeyCredentialUserEntity $userEntity = null
22+
): Response {
1623
$data = [
1724
'status' => 'ok',
1825
'errorMessage' => '',

tests/symfony/functional/SuccessHandler.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,18 @@
1010
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
1111
use Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface;
1212
use Webauthn\Bundle\Security\Handler\SuccessHandler as SuccessHandlerInterface;
13+
use Webauthn\PublicKeyCredential;
14+
use Webauthn\PublicKeyCredentialOptions;
15+
use Webauthn\PublicKeyCredentialUserEntity;
1316

1417
final class SuccessHandler implements AuthenticationSuccessHandlerInterface, SuccessHandlerInterface
1518
{
16-
public function onSuccess(Request $request): Response
17-
{
19+
public function onSuccess(
20+
Request $request,
21+
?PublicKeyCredential $publicKeyCredential = null,
22+
?PublicKeyCredentialOptions $publicKeyCredentialOptions = null,
23+
?PublicKeyCredentialUserEntity $userEntity = null
24+
): Response {
1825
$data = [
1926
'status' => 'ok',
2027
'errorMessage' => '',

0 commit comments

Comments
 (0)