[Security] Remove useless attribute in basic authentication listener & test it
This commit is contained in:
parent
91e6dc9fef
commit
d51cbc09b4
@ -31,7 +31,6 @@ class BasicAuthenticationListener implements ListenerInterface
|
||||
private $providerKey;
|
||||
private $authenticationEntryPoint;
|
||||
private $logger;
|
||||
private $ignoreFailure;
|
||||
|
||||
public function __construct(SecurityContextInterface $securityContext, AuthenticationManagerInterface $authenticationManager, $providerKey, AuthenticationEntryPointInterface $authenticationEntryPoint, LoggerInterface $logger = null)
|
||||
{
|
||||
@ -44,7 +43,6 @@ class BasicAuthenticationListener implements ListenerInterface
|
||||
$this->providerKey = $providerKey;
|
||||
$this->authenticationEntryPoint = $authenticationEntryPoint;
|
||||
$this->logger = $logger;
|
||||
$this->ignoreFailure = false;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -80,10 +78,6 @@ class BasicAuthenticationListener implements ListenerInterface
|
||||
$this->logger->info(sprintf('Authentication request failed for user "%s": %s', $username, $failed->getMessage()));
|
||||
}
|
||||
|
||||
if ($this->ignoreFailure) {
|
||||
return;
|
||||
}
|
||||
|
||||
$event->setResponse($this->authenticationEntryPoint->start($request, $failed));
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,174 @@
|
||||
<?php
|
||||
|
||||
namespace Symfony\Tests\Component\Security\Http\Firewall;
|
||||
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Security\Http\Firewall\BasicAuthenticationListener;
|
||||
use Symfony\Component\Security\Core\Authentication\AuthenticationProviderManager;
|
||||
|
||||
class BasicAuthenticationListenerTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testHandleWithValidUsernameAndPasswordServerParameters()
|
||||
{
|
||||
$request = new Request(array(), array(), array(), array(), array(), array(
|
||||
'PHP_AUTH_USER' => 'TheUsername',
|
||||
'PHP_AUTH_PW' => 'ThePassword'
|
||||
));
|
||||
|
||||
$token = $this->getMock('Symfony\Component\Security\Core\Authentication\Token\TokenInterface');
|
||||
|
||||
$context = $this->getMock('Symfony\Component\Security\Core\SecurityContextInterface');
|
||||
$context
|
||||
->expects($this->any())
|
||||
->method('getToken')
|
||||
->will($this->returnValue(null))
|
||||
;
|
||||
$context
|
||||
->expects($this->once())
|
||||
->method('setToken')
|
||||
->with($this->equalTo($token))
|
||||
;
|
||||
|
||||
$authenticationManager = $this->getMock('Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface');
|
||||
$authenticationManager
|
||||
->expects($this->once())
|
||||
->method('authenticate')
|
||||
->with($this->isInstanceOf('Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken'))
|
||||
->will($this->returnValue($token))
|
||||
;
|
||||
|
||||
$listener = new BasicAuthenticationListener(
|
||||
$context,
|
||||
$authenticationManager,
|
||||
'TheProviderKey',
|
||||
$this->getMock('Symfony\Component\Security\Http\EntryPoint\AuthenticationEntryPointInterface')
|
||||
);
|
||||
|
||||
$event = $this->getMock('Symfony\Component\HttpKernel\Event\GetResponseEvent', array(), array(), '', false);
|
||||
$event
|
||||
->expects($this->any())
|
||||
->method('getRequest')
|
||||
->will($this->returnValue($request))
|
||||
;
|
||||
|
||||
$listener->handle($event);
|
||||
}
|
||||
|
||||
public function testHandleWhenAuthenticationFails()
|
||||
{
|
||||
$request = new Request(array(), array(), array(), array(), array(), array(
|
||||
'PHP_AUTH_USER' => 'TheUsername',
|
||||
'PHP_AUTH_PW' => 'ThePassword'
|
||||
));
|
||||
|
||||
$token = $this->getMock('Symfony\Component\Security\Core\Authentication\Token\TokenInterface');
|
||||
|
||||
$context = $this->getMock('Symfony\Component\Security\Core\SecurityContextInterface');
|
||||
$context
|
||||
->expects($this->any())
|
||||
->method('getToken')
|
||||
->will($this->returnValue(null))
|
||||
;
|
||||
$context
|
||||
->expects($this->once())
|
||||
->method('setToken')
|
||||
->with($this->equalTo(null))
|
||||
;
|
||||
|
||||
$response = new Response();
|
||||
|
||||
$authenticationEntryPoint = $this->getMock('Symfony\Component\Security\Http\EntryPoint\AuthenticationEntryPointInterface');
|
||||
$authenticationEntryPoint
|
||||
->expects($this->any())
|
||||
->method('start')
|
||||
->with($this->equalTo($request), $this->isInstanceOf('Symfony\Component\Security\Core\Exception\AuthenticationException'))
|
||||
->will($this->returnValue($response))
|
||||
;
|
||||
|
||||
$listener = new BasicAuthenticationListener(
|
||||
$context,
|
||||
new AuthenticationProviderManager(array($this->getMock('Symfony\Component\Security\Core\Authentication\Provider\AuthenticationProviderInterface'))),
|
||||
'TheProviderKey',
|
||||
$authenticationEntryPoint
|
||||
);
|
||||
|
||||
$event = $this->getMock('Symfony\Component\HttpKernel\Event\GetResponseEvent', array(), array(), '', false);
|
||||
$event
|
||||
->expects($this->any())
|
||||
->method('getRequest')
|
||||
->will($this->returnValue($request))
|
||||
;
|
||||
$event
|
||||
->expects($this->once())
|
||||
->method('setResponse')
|
||||
->with($this->equalTo($response))
|
||||
;
|
||||
|
||||
$listener->handle($event);
|
||||
}
|
||||
|
||||
public function testHandleWithNoUsernameServerParameter()
|
||||
{
|
||||
$request = new Request();
|
||||
|
||||
$context = $this->getMock('Symfony\Component\Security\Core\SecurityContextInterface');
|
||||
$context
|
||||
->expects($this->never())
|
||||
->method('getToken')
|
||||
;
|
||||
|
||||
$listener = new BasicAuthenticationListener(
|
||||
$context,
|
||||
$this->getMock('Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface'),
|
||||
'TheProviderKey',
|
||||
$this->getMock('Symfony\Component\Security\Http\EntryPoint\AuthenticationEntryPointInterface')
|
||||
);
|
||||
|
||||
$event = $this->getMock('Symfony\Component\HttpKernel\Event\GetResponseEvent', array(), array(), '', false);
|
||||
$event
|
||||
->expects($this->any())
|
||||
->method('getRequest')
|
||||
->will($this->returnValue($request))
|
||||
;
|
||||
|
||||
$listener->handle($event);
|
||||
}
|
||||
|
||||
public function textHandleWithASimilarAuthenticatedToken()
|
||||
{
|
||||
$request = new Request(array(), array(), array(), array(), array(), array('PHP_AUTH_USER' => 'TheUsername'));
|
||||
|
||||
$token = new UsernamePasswordToken('TheUsername', 'ThePassword', 'TheProviderKey', array('ROLE_FOO'));
|
||||
|
||||
$context = $this->getMock('Symfony\Component\Security\Core\SecurityContextInterface');
|
||||
$context
|
||||
->expects($this->any())
|
||||
->method('getToken')
|
||||
->will($this->returnValue($token))
|
||||
;
|
||||
|
||||
$authenticationManager = $this->getMock('Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface');
|
||||
$authenticationManager
|
||||
->expects($this->never())
|
||||
->method('authenticate')
|
||||
;
|
||||
|
||||
$listener = new BasicAuthenticationListener(
|
||||
$context,
|
||||
$authenticationManager,
|
||||
'TheProviderKey',
|
||||
$this->getMock('Symfony\Component\Security\Http\EntryPoint\AuthenticationEntryPointInterface')
|
||||
);
|
||||
|
||||
$event = $this->getMock('Symfony\Component\HttpKernel\Event\GetResponseEvent', array(), array(), '', false);
|
||||
$event
|
||||
->expects($this->any())
|
||||
->method('getRequest')
|
||||
->will($this->returnValue($request))
|
||||
;
|
||||
|
||||
$listener->handle($event);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user