Skip to content

Fix security context missing in Doctrine entity listeners after kernel reboot#236

Open
TavoNiievez wants to merge 1 commit into
Codeception:mainfrom
TavoNiievez:fix/doctrine-listener-security-context
Open

Fix security context missing in Doctrine entity listeners after kernel reboot#236
TavoNiievez wants to merge 1 commit into
Codeception:mainfrom
TavoNiievez:fix/doctrine-listener-security-context

Conversation

@TavoNiievez

Copy link
Copy Markdown
Member

Fixes #34

@TavoNiievez TavoNiievez force-pushed the fix/doctrine-listener-security-context branch from 02e8c6b to aeb6265 Compare June 22, 2026 04:43
…l reboot

_getEntityManager() persisted the EntityManager as a permanent service, so it
was carried across kernel reboots and re-injected into the freshly booted
container. An EntityManager cannot survive a reboot: its ListenersInvoker is
bound (readonly) to the container it was built in, so lazy entity listeners
resolve dependencies like security.token_storage from that now-stale
container. The logged-in user was therefore invisible inside the listener
while visible in the controller. In pure Symfony (WebTestCase) there is no
reboot, one container, so listener and controller share the same context.

Fix: resolve the EntityManager fresh from the current container on every call
instead of caching it as a permanent service. Only doctrine.dbal.default_connection
stays persistent, which is what keeps the open test transaction alive across
reboots; the freshly rebuilt EntityManager runs on top of it, with every
dependency (security included) wired to the current request. This also keeps
the module's Doctrine helpers and the application on a single identity map,
matching pure Symfony.

Fixes #34
@TavoNiievez TavoNiievez force-pushed the fix/doctrine-listener-security-context branch from aeb6265 to d72a2d3 Compare June 22, 2026 05:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

User from Security service is not available in Doctrine Listeners

1 participant