Explorar o código

[Security] fixes #1329

Johannes Schmitt %!s(int64=14) %!d(string=hai) anos
pai
achega
b7c4806a5a

+ 1 - 1
src/Symfony/Component/Security/Http/RememberMe/AbstractRememberMeServices.php

@@ -285,7 +285,7 @@ abstract class AbstractRememberMeServices implements RememberMeServicesInterface
             return true;
         }
 
-        $parameter = $request->request->get($this->options['remember_me_parameter']);
+        $parameter = $request->request->get($this->options['remember_me_parameter'], null, true);
 
         if ($parameter === null && null !== $this->logger) {
             $this->logger->debug(sprintf('Did not send remember-me cookie (remember-me parameter "%s" was not sent).', $this->options['remember_me_parameter']));

+ 27 - 0
tests/Symfony/Tests/Component/Security/Http/RememberMe/AbstractRememberMeServicesTest.php

@@ -172,6 +172,33 @@ class AbstractRememberMeServicesTest extends \PHPUnit_Framework_TestCase
         $service->loginSuccess($request, $response, $token);
     }
 
+    /**
+     * @dataProvider getPositiveRememberMeParameterValues
+     */
+    public function testLoginSuccessWhenRememberMeParameterWithPathIsPositive($value)
+    {
+        $service = $this->getService(null, array('name' => 'foo', 'always_remember_me' => false, 'remember_me_parameter' => 'foo[bar]'));
+
+        $request = new Request;
+        $request->request->set('foo', array('bar' => $value));
+        $response = new Response;
+        $account = $this->getMock('Symfony\Component\Security\Core\User\UserInterface');
+        $token = $this->getMock('Symfony\Component\Security\Core\Authentication\Token\TokenInterface');
+        $token
+            ->expects($this->once())
+            ->method('getUser')
+            ->will($this->returnValue($account))
+        ;
+
+        $service
+            ->expects($this->once())
+            ->method('onLoginSuccess')
+            ->will($this->returnValue(true))
+        ;
+
+        $service->loginSuccess($request, $response, $token);
+    }
+
     /**
      * @dataProvider getPositiveRememberMeParameterValues
      */