Skip to content

Commit

Permalink
[Form] CsrfValidationListener marks the token as invalid if it is not…
Browse files Browse the repository at this point in the history
… a string
  • Loading branch information
umpirsky authored and nicolas-grekas committed Feb 7, 2019
1 parent afb7bb5 commit deb8e95
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
Expand Up @@ -59,7 +59,7 @@ public function preSubmit(FormEvent $event)
if ($form->isRoot() && $form->getConfig()->getOption('compound') && !$postRequestSizeExceeded) {
$data = $event->getData();

if (!isset($data[$this->fieldName]) || !$this->tokenManager->isTokenValid(new CsrfToken($this->tokenId, $data[$this->fieldName]))) {
if (!isset($data[$this->fieldName]) || !\is_string($data[$this->fieldName]) || !$this->tokenManager->isTokenValid(new CsrfToken($this->tokenId, $data[$this->fieldName]))) {
$errorMessage = $this->errorMessage;

if (null !== $this->translator) {
Expand Down
Expand Up @@ -64,6 +64,16 @@ public function testStringFormData()
$this->assertSame($data, $event->getData());
}

public function testArrayCsrfToken()
{
$event = new FormEvent($this->form, ['csrf' => []]);

$validation = new CsrfValidationListener('csrf', $this->tokenManager, 'unknown', 'Invalid.');
$validation->preSubmit($event);

$this->assertNotEmpty($this->form->getErrors());
}

public function testMaxPostSizeExceeded()
{
$serverParams = $this
Expand Down

0 comments on commit deb8e95

Please sign in to comment.