|
18 | 18 | use Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface;
|
19 | 19 | use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
|
20 | 20 | use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
| 21 | +use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken; |
21 | 22 | use Symfony\Component\Security\Core\Authorization\AccessDecisionManagerInterface;
|
22 | 23 | use Symfony\Component\Security\Core\Exception\AccessDeniedException;
|
| 24 | +use Symfony\Component\Security\Core\User\User; |
23 | 25 | use Symfony\Component\Security\Http\AccessMapInterface;
|
24 | 26 | use Symfony\Component\Security\Http\Event\LazyResponseEvent;
|
25 | 27 | use Symfony\Component\Security\Http\Firewall\AccessListener;
|
@@ -279,6 +281,33 @@ public function testHandleWhenPublicAccessIsAllowedAndExceptionOnTokenIsFalse()
|
279 | 281 | $this->expectNotToPerformAssertions();
|
280 | 282 | }
|
281 | 283 |
|
| 284 | + public function testHandleWhenPublicAccessWhileAuthenticated() |
| 285 | + { |
| 286 | + $token = new UsernamePasswordToken(new User('Wouter', null, ['ROLE_USER']), null, 'main', ['ROLE_USER']); |
| 287 | + $tokenStorage = new TokenStorage(); |
| 288 | + $tokenStorage->setToken($token); |
| 289 | + $request = new Request(); |
| 290 | + |
| 291 | + $accessMap = $this->createMock(AccessMapInterface::class); |
| 292 | + $accessMap->expects($this->any()) |
| 293 | + ->method('getPatterns') |
| 294 | + ->with($this->equalTo($request)) |
| 295 | + ->willReturn([[AccessListener::PUBLIC_ACCESS], null]) |
| 296 | + ; |
| 297 | + |
| 298 | + $listener = new AccessListener( |
| 299 | + $tokenStorage, |
| 300 | + $this->getMockBuilder('Symfony\Component\Security\Core\Authorization\AccessDecisionManagerInterface')->getMock(), |
| 301 | + $accessMap, |
| 302 | + $this->getMockBuilder('Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface')->getMock(), |
| 303 | + false |
| 304 | + ); |
| 305 | + |
| 306 | + $listener(new RequestEvent($this->createMock(HttpKernelInterface::class), $request, HttpKernelInterface::MASTER_REQUEST)); |
| 307 | + |
| 308 | + $this->expectNotToPerformAssertions(); |
| 309 | + } |
| 310 | + |
282 | 311 | public function testHandleMWithultipleAttributesShouldBeHandledAsAnd()
|
283 | 312 | {
|
284 | 313 | $request = new Request();
|
|
0 commit comments