1515use Symfony \Component \HttpKernel \Event \GetResponseEvent ;
1616use Symfony \Component \HttpKernel \Event \FilterResponseEvent ;
1717use Symfony \Component \HttpKernel \KernelEvents ;
18+ use Symfony \Component \Security \Core \Authentication \AuthenticationTrustResolver ;
19+ use Symfony \Component \Security \Core \Authentication \AuthenticationTrustResolverInterface ;
1820use Symfony \Component \Security \Core \Authentication \Token \AnonymousToken ;
1921use Symfony \Component \Security \Core \Authentication \Token \Storage \TokenStorageInterface ;
2022use Symfony \Component \Security \Core \Authentication \Token \TokenInterface ;
@@ -39,8 +41,9 @@ class ContextListener implements ListenerInterface
3941 private $ userProviders ;
4042 private $ dispatcher ;
4143 private $ registered ;
44+ private $ trustResolver ;
4245
43- public function __construct (TokenStorageInterface $ tokenStorage , array $ userProviders , $ contextKey , LoggerInterface $ logger = null , EventDispatcherInterface $ dispatcher = null )
46+ public function __construct (TokenStorageInterface $ tokenStorage , array $ userProviders , $ contextKey , LoggerInterface $ logger = null , EventDispatcherInterface $ dispatcher = null , AuthenticationTrustResolverInterface $ trustResolver = null )
4447 {
4548 if (empty ($ contextKey )) {
4649 throw new \InvalidArgumentException ('$contextKey must not be empty. ' );
@@ -58,6 +61,7 @@ public function __construct(TokenStorageInterface $tokenStorage, array $userProv
5861 $ this ->sessionKey = '_security_ ' .$ contextKey ;
5962 $ this ->logger = $ logger ;
6063 $ this ->dispatcher = $ dispatcher ;
64+ $ this ->trustResolver = $ trustResolver ?: new AuthenticationTrustResolver ('Symfony\Component\Security\Core\Authentication\Token\AnonymousToken ' , 'Symfony\Component\Security\Core\Authentication\Token\RememberMeToken ' );
6165 }
6266
6367 /**
@@ -121,7 +125,7 @@ public function onKernelResponse(FilterResponseEvent $event)
121125 $ request = $ event ->getRequest ();
122126 $ session = $ request ->getSession ();
123127
124- if ((null === $ token = $ this ->tokenStorage ->getToken ()) || ($ token instanceof AnonymousToken )) {
128+ if ((null === $ token = $ this ->tokenStorage ->getToken ()) || ($ this -> trustResolver -> isAnonymous ( $ token) )) {
125129 if ($ request ->hasPreviousSession ()) {
126130 $ session ->remove ($ this ->sessionKey );
127131 }
0 commit comments