public function process(ContainerBuilder $container)
{
if (!($container->hasDefinition('security.authentication.provider.dao') && $container->hasDefinition('security.authentication.provider.anonymous'))) {
return;
}
$configResolverRef = new Reference('ezpublish.config.resolver');
$repositoryReference = new Reference('ezpublish.api.repository');
// Inject the Repository in the authentication provider.
// We need it for checking user credentials
$daoAuthenticationProviderDef = $container->findDefinition('security.authentication.provider.dao');
$daoAuthenticationProviderDef->addMethodCall('setRepository', array($repositoryReference));
$anonymousAuthenticationProviderDef = $container->findDefinition('security.authentication.provider.anonymous');
$anonymousAuthenticationProviderDef->addMethodCall('setRepository', array($repositoryReference));
$anonymousAuthenticationProviderDef->addMethodCall('setConfigResolver', array($configResolverRef));
if (!$container->hasDefinition('security.http_utils')) {
return;
}
$httpUtilsDef = $container->findDefinition('security.http_utils');
$httpUtilsDef->addMethodCall('setSiteAccess', array(new Reference('ezpublish.siteaccess')));
if (!$container->hasDefinition('security.authentication.success_handler')) {
return;
}
$successHandlerDef = $container->getDefinition('security.authentication.success_handler');
$successHandlerDef->addMethodCall('setConfigResolver', array($configResolverRef));
}