[Security] Added a missing field in SimpleAuthenticationHandler
This commit is contained in:
parent
8d85745430
commit
d553347549
@ -68,7 +68,7 @@ class SecureRandomTest extends \PHPUnit_Framework_TestCase
|
||||
$runs[$i] = 0;
|
||||
}
|
||||
|
||||
$addRun = function($run) use (&$runs) {
|
||||
$addRun = function ($run) use (&$runs) {
|
||||
if ($run > 6) {
|
||||
$run = 6;
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ class CsrfToken
|
||||
* @param string $id The token ID
|
||||
* @param string $value The actual token value
|
||||
*/
|
||||
public function __construct($id, $value)
|
||||
public function __construct($id, $value)
|
||||
{
|
||||
$this->id = (string) $id;
|
||||
$this->value = (string) $value;
|
||||
|
@ -32,6 +32,7 @@ class SimpleAuthenticationHandler implements AuthenticationFailureHandlerInterfa
|
||||
protected $successHandler;
|
||||
protected $failureHandler;
|
||||
protected $simpleAuthenticator;
|
||||
protected $logger;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
|
@ -0,0 +1,192 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Component\Security\Http\Tests;
|
||||
|
||||
use Symfony\Component\Security\Core\Authentication\SimpleAuthenticatorInterface;
|
||||
use Symfony\Component\Security\Http\Authentication\AuthenticationFailureHandlerInterface;
|
||||
use Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface;
|
||||
use Symfony\Component\Security\Http\Authentication\SimpleAuthenticationHandler;
|
||||
|
||||
class SimpleAuthenticationHandlerTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
private $successHandler;
|
||||
|
||||
private $failureHandler;
|
||||
|
||||
private $request;
|
||||
|
||||
private $token;
|
||||
|
||||
private $authenticationException;
|
||||
|
||||
private $response;
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
$this->successHandler = $this->getMock('Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface');
|
||||
$this->failureHandler = $this->getMock('Symfony\Component\Security\Http\Authentication\AuthenticationFailureHandlerInterface');
|
||||
|
||||
$this->request = $this->getMock('Symfony\Component\HttpFoundation\Request');
|
||||
$this->token = $this->getMock('Symfony\Component\Security\Core\Authentication\Token\TokenInterface');
|
||||
$this->authenticationException = $this->getMock('Symfony\Component\Security\Core\Exception\AuthenticationException');
|
||||
|
||||
$this->response = $this->getMock('Symfony\Component\HttpFoundation\Response');
|
||||
}
|
||||
|
||||
public function testOnAuthenticationSuccessFallsBackToDefaultHandlerIfSimpleIsNotASuccessHandler()
|
||||
{
|
||||
$authenticator = $this->getMock('Symfony\Component\Security\Core\Authentication\SimpleAuthenticatorInterface');
|
||||
|
||||
$this->successHandler->expects($this->once())
|
||||
->method('onAuthenticationSuccess')
|
||||
->with($this->request, $this->token)
|
||||
->will($this->returnValue($this->response));
|
||||
|
||||
$handler = new SimpleAuthenticationHandler($authenticator, $this->successHandler, $this->failureHandler);
|
||||
$result = $handler->onAuthenticationSuccess($this->request, $this->token);
|
||||
|
||||
$this->assertSame($this->response, $result);
|
||||
}
|
||||
|
||||
public function testOnAuthenticationSuccessCallsSimpleAuthenticator()
|
||||
{
|
||||
$this->successHandler->expects($this->never())
|
||||
->method('onAuthenticationSuccess');
|
||||
|
||||
$authenticator = $this->getMockForAbstractClass('Symfony\Component\Security\Http\Tests\TestSuccessHandlerInterface');
|
||||
$authenticator->expects($this->once())
|
||||
->method('onAuthenticationSuccess')
|
||||
->with($this->request, $this->token)
|
||||
->will($this->returnValue($this->response));
|
||||
|
||||
$handler = new SimpleAuthenticationHandler($authenticator, $this->successHandler, $this->failureHandler);
|
||||
$result = $handler->onAuthenticationSuccess($this->request, $this->token);
|
||||
|
||||
$this->assertSame($this->response, $result);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \UnexpectedValueException
|
||||
* @expectedExceptionMessage onAuthenticationSuccess method must return null to use the default success handler, or a Response object
|
||||
*/
|
||||
public function testOnAuthenticationSuccessThrowsAnExceptionIfNonResponseIsReturned()
|
||||
{
|
||||
$this->successHandler->expects($this->never())
|
||||
->method('onAuthenticationSuccess');
|
||||
|
||||
$authenticator = $this->getMockForAbstractClass('Symfony\Component\Security\Http\Tests\TestSuccessHandlerInterface');
|
||||
$authenticator->expects($this->once())
|
||||
->method('onAuthenticationSuccess')
|
||||
->with($this->request, $this->token)
|
||||
->will($this->returnValue(new \stdClass()));
|
||||
|
||||
$handler = new SimpleAuthenticationHandler($authenticator, $this->successHandler, $this->failureHandler);
|
||||
$handler->onAuthenticationSuccess($this->request, $this->token);
|
||||
}
|
||||
|
||||
public function testOnAuthenticationSuccessFallsBackToDefaultHandlerIfNullIsReturned()
|
||||
{
|
||||
$this->successHandler->expects($this->once())
|
||||
->method('onAuthenticationSuccess')
|
||||
->with($this->request, $this->token)
|
||||
->will($this->returnValue($this->response));
|
||||
|
||||
$authenticator = $this->getMockForAbstractClass('Symfony\Component\Security\Http\Tests\TestSuccessHandlerInterface');
|
||||
$authenticator->expects($this->once())
|
||||
->method('onAuthenticationSuccess')
|
||||
->with($this->request, $this->token)
|
||||
->will($this->returnValue(null));
|
||||
|
||||
$handler = new SimpleAuthenticationHandler($authenticator, $this->successHandler, $this->failureHandler);
|
||||
$result = $handler->onAuthenticationSuccess($this->request, $this->token);
|
||||
|
||||
$this->assertSame($this->response, $result);
|
||||
}
|
||||
|
||||
public function testOnAuthenticationFailureFallsBackToDefaultHandlerIfSimpleIsNotAFailureHandler()
|
||||
{
|
||||
$authenticator = $this->getMock('Symfony\Component\Security\Core\Authentication\SimpleAuthenticatorInterface');
|
||||
|
||||
$this->failureHandler->expects($this->once())
|
||||
->method('onAuthenticationFailure')
|
||||
->with($this->request, $this->authenticationException)
|
||||
->will($this->returnValue($this->response));
|
||||
|
||||
$handler = new SimpleAuthenticationHandler($authenticator, $this->successHandler, $this->failureHandler);
|
||||
$result = $handler->onAuthenticationFailure($this->request, $this->authenticationException);
|
||||
|
||||
$this->assertSame($this->response, $result);
|
||||
}
|
||||
|
||||
public function testOnAuthenticationFailureCallsSimpleAuthenticator()
|
||||
{
|
||||
$this->failureHandler->expects($this->never())
|
||||
->method('onAuthenticationFailure');
|
||||
|
||||
$authenticator = $this->getMockForAbstractClass('Symfony\Component\Security\Http\Tests\TestFailureHandlerInterface');
|
||||
$authenticator->expects($this->once())
|
||||
->method('onAuthenticationFailure')
|
||||
->with($this->request, $this->authenticationException)
|
||||
->will($this->returnValue($this->response));
|
||||
|
||||
$handler = new SimpleAuthenticationHandler($authenticator, $this->successHandler, $this->failureHandler);
|
||||
$result = $handler->onAuthenticationFailure($this->request, $this->authenticationException);
|
||||
|
||||
$this->assertSame($this->response, $result);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \UnexpectedValueException
|
||||
* @expectedExceptionMessage onAuthenticationFailure method must return null to use the default failure handler, or a Response object
|
||||
*/
|
||||
public function testOnAuthenticationFailureThrowsAnExceptionIfNonResponseIsReturned()
|
||||
{
|
||||
$this->failureHandler->expects($this->never())
|
||||
->method('onAuthenticationFailure');
|
||||
|
||||
$authenticator = $this->getMockForAbstractClass('Symfony\Component\Security\Http\Tests\TestFailureHandlerInterface');
|
||||
$authenticator->expects($this->once())
|
||||
->method('onAuthenticationFailure')
|
||||
->with($this->request, $this->authenticationException)
|
||||
->will($this->returnValue(new \stdClass()));
|
||||
|
||||
$handler = new SimpleAuthenticationHandler($authenticator, $this->successHandler, $this->failureHandler);
|
||||
$handler->onAuthenticationFailure($this->request, $this->authenticationException);
|
||||
}
|
||||
|
||||
public function testOnAuthenticationFailureFallsBackToDefaultHandlerIfNullIsReturned()
|
||||
{
|
||||
$this->failureHandler->expects($this->once())
|
||||
->method('onAuthenticationFailure')
|
||||
->with($this->request, $this->authenticationException)
|
||||
->will($this->returnValue($this->response));
|
||||
|
||||
$authenticator = $this->getMockForAbstractClass('Symfony\Component\Security\Http\Tests\TestFailureHandlerInterface');
|
||||
$authenticator->expects($this->once())
|
||||
->method('onAuthenticationFailure')
|
||||
->with($this->request, $this->authenticationException)
|
||||
->will($this->returnValue(null));
|
||||
|
||||
$handler = new SimpleAuthenticationHandler($authenticator, $this->successHandler, $this->failureHandler);
|
||||
$result = $handler->onAuthenticationFailure($this->request, $this->authenticationException);
|
||||
|
||||
$this->assertSame($this->response, $result);
|
||||
}
|
||||
}
|
||||
|
||||
interface TestSuccessHandlerInterface extends AuthenticationSuccessHandlerInterface, SimpleAuthenticatorInterface
|
||||
{
|
||||
}
|
||||
|
||||
interface TestFailureHandlerInterface extends AuthenticationFailureHandlerInterface, SimpleAuthenticatorInterface
|
||||
{
|
||||
}
|
Reference in New Issue
Block a user