Skip to content

Commit ccfebd4

Browse files
authored
fix(security): post validation in Operation #4392 (#4607)
1 parent 4ec5158 commit ccfebd4

File tree

8 files changed

+57
-2
lines changed

8 files changed

+57
-2
lines changed

src/Metadata/Delete.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ public function __construct(
7676
?string $securityMessage = null,
7777
?string $securityPostDenormalize = null,
7878
?string $securityPostDenormalizeMessage = null,
79+
?string $securityPostValidation = null,
80+
?string $securityPostValidationMessage = null,
7981
?bool $compositeIdentifier = null,
8082
?array $exceptionToStatus = null,
8183
?bool $queryParameterValidationEnabled = null,

src/Metadata/Get.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ public function __construct(
7676
?string $securityMessage = null,
7777
?string $securityPostDenormalize = null,
7878
?string $securityPostDenormalizeMessage = null,
79+
?string $securityPostValidation = null,
80+
?string $securityPostValidationMessage = null,
7981
?bool $compositeIdentifier = null,
8082
?array $exceptionToStatus = null,
8183
?bool $queryParameterValidationEnabled = null,

src/Metadata/GetCollection.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ public function __construct(
7676
?string $securityMessage = null,
7777
?string $securityPostDenormalize = null,
7878
?string $securityPostDenormalizeMessage = null,
79+
?string $securityPostValidation = null,
80+
?string $securityPostValidationMessage = null,
7981
?bool $compositeIdentifier = null,
8082
?array $exceptionToStatus = null,
8183
?bool $queryParameterValidationEnabled = null,

src/Metadata/Operation.php

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ class Operation
108108
protected $securityMessage;
109109
protected $securityPostDenormalize;
110110
protected $securityPostDenormalizeMessage;
111+
protected $securityPostValidation;
112+
protected $securityPostValidationMessage;
111113
protected $compositeIdentifier;
112114
protected $exceptionToStatus;
113115
protected $queryParameterValidationEnabled;
@@ -224,6 +226,8 @@ public function __construct(
224226
?string $securityMessage = null,
225227
?string $securityPostDenormalize = null,
226228
?string $securityPostDenormalizeMessage = null,
229+
?string $securityPostValidation = null,
230+
?string $securityPostValidationMessage = null,
227231
?bool $compositeIdentifier = null,
228232
?array $exceptionToStatus = null,
229233
?bool $queryParameterValidationEnabled = null,
@@ -295,6 +299,8 @@ public function __construct(
295299
$this->securityMessage = $securityMessage;
296300
$this->securityPostDenormalize = $securityPostDenormalize;
297301
$this->securityPostDenormalizeMessage = $securityPostDenormalizeMessage;
302+
$this->securityPostValidation = $securityPostValidation;
303+
$this->securityPostValidationMessage = $securityPostValidationMessage;
298304
$this->compositeIdentifier = $compositeIdentifier;
299305
$this->exceptionToStatus = $exceptionToStatus;
300306
$this->queryParameterValidationEnabled = $queryParameterValidationEnabled;
@@ -1103,6 +1109,32 @@ public function withSecurityPostDenormalizeMessage(string $securityPostDenormali
11031109
return $self;
11041110
}
11051111

1112+
public function getSecurityPostValidation(): ?string
1113+
{
1114+
return $this->securityPostValidation;
1115+
}
1116+
1117+
public function withSecurityPostValidation(?string $securityPostValidation = null): self
1118+
{
1119+
$self = clone $this;
1120+
$self->securityPostValidation = $securityPostValidation;
1121+
1122+
return $self;
1123+
}
1124+
1125+
public function getSecurityPostValidationMessage(): ?string
1126+
{
1127+
return $this->securityPostValidationMessage;
1128+
}
1129+
1130+
public function withSecurityPostValidationMessage(?string $securityPostValidationMessage = null): self
1131+
{
1132+
$self = clone $this;
1133+
$self->securityPostValidationMessage = $securityPostValidationMessage;
1134+
1135+
return $self;
1136+
}
1137+
11061138
public function getCompositeIdentifier(): ?bool
11071139
{
11081140
return $this->compositeIdentifier;

src/Metadata/Patch.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ public function __construct(
7676
?string $securityMessage = null,
7777
?string $securityPostDenormalize = null,
7878
?string $securityPostDenormalizeMessage = null,
79+
?string $securityPostValidation = null,
80+
?string $securityPostValidationMessage = null,
7981
?bool $compositeIdentifier = null,
8082
?array $exceptionToStatus = null,
8183
?bool $queryParameterValidationEnabled = null,

src/Metadata/Post.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ public function __construct(
7676
?string $securityMessage = null,
7777
?string $securityPostDenormalize = null,
7878
?string $securityPostDenormalizeMessage = null,
79+
?string $securityPostValidation = null,
80+
?string $securityPostValidationMessage = null,
7981
?bool $compositeIdentifier = null,
8082
?array $exceptionToStatus = null,
8183
?bool $queryParameterValidationEnabled = null,

src/Metadata/Put.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ public function __construct(
7676
?string $securityMessage = null,
7777
?string $securityPostDenormalize = null,
7878
?string $securityPostDenormalizeMessage = null,
79+
?string $securityPostValidation = null,
80+
?string $securityPostValidationMessage = null,
7981
?bool $compositeIdentifier = null,
8082
?array $exceptionToStatus = null,
8183
?bool $queryParameterValidationEnabled = null,

src/Symfony/EventListener/DenyAccessListener.php

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,19 @@ private function checkSecurity(Request $request, string $attribute, bool $backwa
126126
return;
127127
}
128128

129-
$isGranted = 'security' === $attribute ? $operation->getSecurity() : $operation->getSecurityPostDenormalize();
130-
$message = 'security' === $attribute ? $operation->getSecurityMessage() : $operation->getSecurityPostDenormalize();
129+
switch ($attribute) {
130+
case 'security_post_denormalize':
131+
$isGranted = $operation->getSecurityPostDenormalize();
132+
$message = $operation->getSecurityPostDenormalizeMessage();
133+
break;
134+
case 'security_post_validation':
135+
$isGranted = $operation->getSecurityPostValidation();
136+
$message = $operation->getSecurityPostValidationMessage();
137+
break;
138+
default:
139+
$isGranted = $operation->getSecurity();
140+
$message = $operation->getSecurityMessage();
141+
}
131142
}
132143

133144
if (null === $isGranted) {

0 commit comments

Comments
 (0)