Description
Looks like some Services are using the default Doctrine connection regardless of the specified SiteAccess (and the connection it should be using).
Steps to reproduce:
1. In config/packages/doctrine.yaml define a new database connection and break the default one:
doctrine: dbal: default_connection: default connections: default: url: 'mysql://INVALID:INVALID@127.0.0.1/INVALID' second_connection: url: '%env(resolve:DATABASE_URL)%'
2. In config/packages/ezplatform.yaml define a new repository:
repositories: default: storage: null search: engine: '%search_engine%' connection: default new_repository: storage: engine: legacy connection: second_connection config: { } search: connection: second_connection (...)
3. And (in the same file) configure SiteAccess site and SiteAccess group admin_group to use it:
site: (...) repository: new_repository admin_group: (...) repository: new_repository
4. Open your site in the browser (frontend or admin panel)
Expected:
Site opens correctly
Actual:
Something tries to use the default Doctrine connection.
An exception occurred in driver: SQLSTATE[HY000] [1045] Access denied for user 'INVALID'@'localhost' (using password: YES)
Stacktrace:
Doctrine\DBAL\Exception\ConnectionException: An exception occurred in driver: SQLSTATE[HY000] [1045] Access denied for user 'INVALID'@'localhost' (using password: YES) at vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:112 at Doctrine\DBAL\Driver\AbstractMySQLDriver->convertException('An exception occurred in driver: SQLSTATE[HY000] [1045] Access denied for user \'INVALID\'@\'localhost\' (using password: YES)', object(Exception)) (vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:182) at Doctrine\DBAL\DBALException::wrapException(object(Driver), object(Exception), 'An exception occurred in driver: SQLSTATE[HY000] [1045] Access denied for user \'INVALID\'@\'localhost\' (using password: YES)') (vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:169) at Doctrine\DBAL\DBALException::driverException(object(Driver), object(Exception)) (vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php:30) at Doctrine\DBAL\Driver\PDOMySql\Driver->connect(array('url' => 'mysql://INVALID:INVALID@127.0.0.1/INVALID', 'host' => '127.0.0.1', 'port' => null, 'user' => 'INVALID', 'password' => 'INVALID', 'driver' => 'pdo_mysql', 'driverOptions' => array(), 'defaultTableOptions' => array('collate' => 'utf8mb4_unicode_ci'), 'dbname' => 'INVALID', 'charset' => 'utf8mb4'), 'INVALID', 'INVALID', array()) (vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:362) at Doctrine\DBAL\Connection->connect() (vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:427) at Doctrine\DBAL\Connection->getDatabasePlatformVersion() (vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:387) at Doctrine\DBAL\Connection->detectDatabasePlatform() (vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:330) at Doctrine\DBAL\Connection->getDatabasePlatform() (vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:800) at Doctrine\ORM\Mapping\ClassMetadataFactory->getTargetPlatform() (vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:643) at Doctrine\ORM\Mapping\ClassMetadataFactory->completeIdGeneratorMapping(object(ClassMetadata)) (vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:165) at Doctrine\ORM\Mapping\ClassMetadataFactory->doLoadMetadata(object(ClassMetadata), null, false, array()) (vendor/doctrine/persistence/lib/Doctrine/Persistence/Mapping/AbstractClassMetadataFactory.php:306) at Doctrine\Persistence\Mapping\AbstractClassMetadataFactory->loadMetadata('Silversolutions\\Bundle\\EshopBundle\\Entity\\ErpLog') (vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:81) at Doctrine\ORM\Mapping\ClassMetadataFactory->loadMetadata('Silversolutions\\Bundle\\EshopBundle\\Entity\\ErpLog') (vendor/doctrine/persistence/lib/Doctrine/Persistence/Mapping/AbstractClassMetadataFactory.php:184) at Doctrine\Persistence\Mapping\AbstractClassMetadataFactory->getMetadataFor('SilversolutionsEshopBundle:ErpLog') (vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php:288) at Doctrine\ORM\EntityManager->getClassMetadata('SilversolutionsEshopBundle:ErpLog') (vendor/doctrine/doctrine-bundle/Repository/ContainerRepositoryFactory.php:37) at Doctrine\Bundle\DoctrineBundle\Repository\ContainerRepositoryFactory->getRepository(object(EntityManager), 'SilversolutionsEshopBundle:ErpLog') (vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php:747) at Doctrine\ORM\EntityManager->getRepository('SilversolutionsEshopBundle:ErpLog') (var/cache/dev/Container9hBkcZc/EntityManager_9a5be93.php:220) at Container9hBkcZc\EntityManager_9a5be93->getRepository('SilversolutionsEshopBundle:ErpLog') (var/cache/dev/Container9hBkcZc/App_KernelDevDebugContainer.php:16631) at Container9hBkcZc\App_KernelDevDebugContainer->getSisoErp_LoggerService() (var/cache/dev/Container9hBkcZc/App_KernelDevDebugContainer.php:7267) at Container9hBkcZc\App_KernelDevDebugContainer->getSilverErp_MessageTransportService() (var/cache/dev/Container9hBkcZc/App_KernelDevDebugContainer.php:7253) at Container9hBkcZc\App_KernelDevDebugContainer->getSilverErp_FacadeService() (var/cache/dev/Container9hBkcZc/App_KernelDevDebugContainer.php:7090) at Container9hBkcZc\App_KernelDevDebugContainer->getSes_CustomerProfileData_EzErpService() (var/cache/dev/Container9hBkcZc/App_KernelDevDebugContainer.php:16445) at Container9hBkcZc\App_KernelDevDebugContainer->getSilverCommon_Twig_SilverExtensionService() (var/cache/dev/Container9hBkcZc/App_KernelDevDebugContainer.php:3216) at Container9hBkcZc\App_KernelDevDebugContainer->get_Container_Private_TwigService() (var/cache/dev/Container9hBkcZc/App_KernelDevDebugContainer.php:7821) at Container9hBkcZc\App_KernelDevDebugContainer->getBlockServiceService() (var/cache/dev/Container9hBkcZc/App_KernelDevDebugContainer.php:3781) at Container9hBkcZc\App_KernelDevDebugContainer->getType3Service() (var/cache/dev/Container9hBkcZc/App_KernelDevDebugContainer.php:9755) at Container9hBkcZc\App_KernelDevDebugContainer->getFieldTypeRegistryService() (var/cache/dev/Container9hBkcZc/App_KernelDevDebugContainer.php:10994) at Container9hBkcZc\App_KernelDevDebugContainer->getEzpublish_Api_InnerRepositoryService() (var/cache/dev/Container9hBkcZc/App_KernelDevDebugContainer.php:9608) at Container9hBkcZc\App_KernelDevDebugContainer->getRepositoryService() (var/cache/dev/Container9hBkcZc/App_KernelDevDebugContainer.php:6185) at Container9hBkcZc\App_KernelDevDebugContainer->getEzpublish_Api_RepositoryService() (var/cache/dev/Container9hBkcZc/App_KernelDevDebugContainer.php:14658) at Container9hBkcZc\App_KernelDevDebugContainer->getEzpublish_UrlaliasGeneratorService() (var/cache/dev/Container9hBkcZc/App_KernelDevDebugContainer.php:14683) at Container9hBkcZc\App_KernelDevDebugContainer->getEzpublish_UrlaliasRouterService() (var/cache/dev/Container9hBkcZc/App_KernelDevDebugContainer.php:7046) at Container9hBkcZc\App_KernelDevDebugContainer->getRouterService() (var/cache/dev/Container9hBkcZc/App_KernelDevDebugContainer.php:9518) at Container9hBkcZc\App_KernelDevDebugContainer->getLocaleListenerService() (var/cache/dev/Container9hBkcZc/App_KernelDevDebugContainer.php:5167) at Container9hBkcZc\App_KernelDevDebugContainer->Container9hBkcZc\{closure}() (vendor/symfony/event-dispatcher/EventDispatcher.php:245) at Symfony\Component\EventDispatcher\EventDispatcher->sortListeners('kernel.request') (vendor/symfony/event-dispatcher/EventDispatcher.php:76) at Symfony\Component\EventDispatcher\EventDispatcher->getListeners('kernel.request') (vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:290) at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->preProcess('kernel.request') (vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:145) at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch(object(RequestEvent), 'kernel.request') (vendor/symfony/http-kernel/HttpKernel.php:133) at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1) (vendor/symfony/http-kernel/HttpKernel.php:79) at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true) (vendor/symfony/http-kernel/Kernel.php:195) at Symfony\Component\HttpKernel\Kernel->handle(object(Request)) (public/index.php:20)