Fix CookieClearingLogoutListener DI configuration
This commit is contained in:
parent
8bb0897a6d
commit
47869887c0
@ -54,7 +54,7 @@
|
|||||||
|
|
||||||
<service id="security.logout.listener.session" class="Symfony\Component\Security\Http\EventListener\SessionLogoutListener" abstract="true" />
|
<service id="security.logout.listener.session" class="Symfony\Component\Security\Http\EventListener\SessionLogoutListener" abstract="true" />
|
||||||
|
|
||||||
<service id="security.logout.listener.cookie_clearing" class="Symfony\Component\Security\Http\Logout\CookieClearingLogoutHandler" abstract="true" />
|
<service id="security.logout.listener.cookie_clearing" class="Symfony\Component\Security\Http\EventListener\CookieClearingLogoutListener" abstract="true" />
|
||||||
|
|
||||||
<service id="security.logout.listener.default" class="Symfony\Component\Security\Http\EventListener\DefaultLogoutListener" abstract="true">
|
<service id="security.logout.listener.default" class="Symfony\Component\Security\Http\EventListener\DefaultLogoutListener" abstract="true">
|
||||||
<argument type="service" id="security.http_utils" />
|
<argument type="service" id="security.http_utils" />
|
||||||
|
@ -11,6 +11,8 @@
|
|||||||
|
|
||||||
namespace Symfony\Bundle\SecurityBundle\Tests\Functional;
|
namespace Symfony\Bundle\SecurityBundle\Tests\Functional;
|
||||||
|
|
||||||
|
use Symfony\Component\BrowserKit\Cookie;
|
||||||
|
|
||||||
class LogoutTest extends AbstractWebTestCase
|
class LogoutTest extends AbstractWebTestCase
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
@ -62,11 +64,25 @@ class LogoutTest extends AbstractWebTestCase
|
|||||||
*/
|
*/
|
||||||
public function testAccessControlDoesNotApplyOnLogout(array $options)
|
public function testAccessControlDoesNotApplyOnLogout(array $options)
|
||||||
{
|
{
|
||||||
$client = $this->createClient($options + ['test_case' => 'LogoutAccess', 'root_config' => 'config.yml']);
|
$client = $this->createClient($options + ['test_case' => 'Logout', 'root_config' => 'config_access.yml']);
|
||||||
|
|
||||||
$client->request('POST', '/login', ['_username' => 'johannes', '_password' => 'test']);
|
$client->request('POST', '/login', ['_username' => 'johannes', '_password' => 'test']);
|
||||||
$client->request('GET', '/logout');
|
$client->request('GET', '/logout');
|
||||||
|
|
||||||
$this->assertRedirect($client->getResponse(), '/');
|
$this->assertRedirect($client->getResponse(), '/');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testCookieClearingOnLogout()
|
||||||
|
{
|
||||||
|
$client = $this->createClient(['test_case' => 'Logout', 'root_config' => 'config_cookie_clearing.yml']);
|
||||||
|
|
||||||
|
$cookieJar = $client->getCookieJar();
|
||||||
|
$cookieJar->set(new Cookie('flavor', 'chocolate', strtotime('+1 day'), null, 'somedomain'));
|
||||||
|
|
||||||
|
$client->request('POST', '/login', ['_username' => 'johannes', '_password' => 'test']);
|
||||||
|
$client->request('GET', '/logout');
|
||||||
|
|
||||||
|
$this->assertRedirect($client->getResponse(), '/');
|
||||||
|
$this->assertNull($cookieJar->get('flavor'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,27 @@
|
|||||||
|
imports:
|
||||||
|
- { resource: ./../config/framework.yml }
|
||||||
|
|
||||||
|
security:
|
||||||
|
encoders:
|
||||||
|
Symfony\Component\Security\Core\User\User: plaintext
|
||||||
|
|
||||||
|
providers:
|
||||||
|
in_memory:
|
||||||
|
memory:
|
||||||
|
users:
|
||||||
|
johannes: { password: test, roles: [ROLE_USER] }
|
||||||
|
|
||||||
|
firewalls:
|
||||||
|
default:
|
||||||
|
form_login:
|
||||||
|
check_path: login
|
||||||
|
remember_me: true
|
||||||
|
require_previous_session: false
|
||||||
|
logout:
|
||||||
|
delete_cookies:
|
||||||
|
flavor: { path: null, domain: somedomain }
|
||||||
|
stateless: true
|
||||||
|
|
||||||
|
access_control:
|
||||||
|
- { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||||
|
- { path: .*, roles: IS_AUTHENTICATED_FULLY }
|
Reference in New Issue
Block a user