Skip to content

Commit c7d22aa

Browse files
authored
IBX-5705: Used SecurityPass to define Guard authentication provider (#265)
For more details see https://issues.ibexa.co/browse/IBX-5705 and #265
1 parent 3e143a0 commit c7d22aa

File tree

3 files changed

+15
-5
lines changed

3 files changed

+15
-5
lines changed

src/bundle/Core/DependencyInjection/Compiler/SecurityPass.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use Ibexa\Contracts\Core\Repository\UserService;
1111
use Ibexa\Core\MVC\Symfony\Security\Authentication\AnonymousAuthenticationProvider;
1212
use Ibexa\Core\MVC\Symfony\Security\Authentication\DefaultAuthenticationSuccessHandler;
13+
use Ibexa\Core\MVC\Symfony\Security\Authentication\GuardRepositoryAuthenticationProvider;
1314
use Ibexa\Core\MVC\Symfony\Security\Authentication\RememberMeRepositoryAuthenticationProvider;
1415
use Ibexa\Core\MVC\Symfony\Security\Authentication\RepositoryAuthenticationProvider;
1516
use Ibexa\Core\MVC\Symfony\Security\HttpUtils;
@@ -32,6 +33,7 @@ public function process(ContainerBuilder $container)
3233
{
3334
if (!($container->hasDefinition('security.authentication.provider.dao') &&
3435
$container->hasDefinition('security.authentication.provider.rememberme') &&
36+
$container->hasDefinition('security.authentication.provider.guard') &&
3537
$container->hasDefinition('security.authentication.provider.anonymous'))) {
3638
return;
3739
}
@@ -73,6 +75,13 @@ public function process(ContainerBuilder $container)
7375
[$permissionResolverRef]
7476
);
7577

78+
$guardAuthenticationProviderDef = $container->findDefinition('security.authentication.provider.guard');
79+
$guardAuthenticationProviderDef->setClass(GuardRepositoryAuthenticationProvider::class);
80+
$guardAuthenticationProviderDef->addMethodCall(
81+
'setPermissionResolver',
82+
[$permissionResolverRef]
83+
);
84+
7685
$anonymousAuthenticationProviderDef = $container->findDefinition('security.authentication.provider.anonymous');
7786
$anonymousAuthenticationProviderDef->setClass(AnonymousAuthenticationProvider::class);
7887
$anonymousAuthenticationProviderDef->addMethodCall(

src/bundle/Core/Resources/config/security.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,6 @@ services:
5353
tags:
5454
- { name: kernel.event_subscriber }
5555

56-
Ibexa\Core\MVC\Symfony\Security\Authentication\GuardRepositoryAuthenticationProvider:
57-
decorates: security.authentication.provider.guard
58-
calls:
59-
- ['setPermissionResolver', ['@Ibexa\Contracts\Core\Repository\PermissionResolver']]
60-
6156
ibexa.security.user_provider: '@Ibexa\Core\MVC\Symfony\Security\User\UsernameProvider'
6257
ibexa.security.user_provider.username: '@Ibexa\Core\MVC\Symfony\Security\User\UsernameProvider'
6358
ibexa.security.user_provider.email: '@Ibexa\Core\MVC\Symfony\Security\User\EmailProvider'

tests/bundle/Core/DependencyInjection/Compiler/SecurityPassTest.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ protected function setUp(): void
2222
parent::setUp();
2323
$this->setDefinition('security.authentication.provider.dao', new Definition());
2424
$this->setDefinition('security.authentication.provider.rememberme', new Definition());
25+
$this->setDefinition('security.authentication.provider.guard', new Definition());
2526
$this->setDefinition('security.authentication.provider.anonymous', new Definition());
2627
$this->setDefinition('security.http_utils', new Definition());
2728
$this->setDefinition('security.authentication.success_handler', new Definition());
@@ -54,6 +55,11 @@ public function testAlteredDaoAuthenticationProvider()
5455
'setPermissionResolver',
5556
[new Reference(PermissionResolver::class)]
5657
);
58+
$this->assertContainerBuilderHasServiceDefinitionWithMethodCall(
59+
'security.authentication.provider.guard',
60+
'setPermissionResolver',
61+
[new Reference(PermissionResolver::class)]
62+
);
5763
$this->assertContainerBuilderHasServiceDefinitionWithMethodCall(
5864
'security.authentication.provider.anonymous',
5965
'setPermissionResolver',

0 commit comments

Comments
 (0)