File tree Expand file tree Collapse file tree 2 files changed +14
-1
lines changed
Expand file tree Collapse file tree 2 files changed +14
-1
lines changed Original file line number Diff line number Diff line change 1616use Symfony \Component \HttpKernel \Event \FinishRequestEvent ;
1717use Symfony \Component \HttpKernel \Event \GetResponseEvent ;
1818use Symfony \Component \HttpKernel \KernelEvents ;
19+ use Symfony \Component \Security \Http \Firewall \AccessListener ;
1920
2021/**
2122 * Firewall uses a FirewallMap to register security listeners for the given
@@ -58,8 +59,16 @@ public function onKernelRequest(GetResponseEvent $event)
5859 $ exceptionListener ->register ($ this ->dispatcher );
5960 }
6061
62+ $ accessListener = null ;
63+
6164 // initiate the listener chain
6265 foreach ($ authenticationListeners as $ listener ) {
66+ if ($ listener instanceof AccessListener) {
67+ $ accessListener = $ listener ;
68+
69+ continue ;
70+ }
71+
6372 $ listener ->handle ($ event );
6473
6574 if ($ event ->hasResponse ()) {
@@ -70,6 +79,10 @@ public function onKernelRequest(GetResponseEvent $event)
7079 if (null !== $ logoutListener ) {
7180 $ logoutListener ->handle ($ event );
7281 }
82+
83+ if (!$ event ->hasResponse () && null !== $ accessListener ) {
84+ $ accessListener ->handle ($ event );
85+ }
7386 }
7487
7588 public function onKernelFinishRequest (FinishRequestEvent $ event )
Original file line number Diff line number Diff line change @@ -79,7 +79,7 @@ public function testOnKernelRequestStopsWhenThereIsAResponse()
7979 ->getMock ()
8080 ;
8181 $ event
82- ->expects ($ this ->once ( ))
82+ ->expects ($ this ->at ( 0 ))
8383 ->method ('hasResponse ' )
8484 ->will ($ this ->returnValue (true ))
8585 ;
You can’t perform that action at this time.
0 commit comments