*/ class LexikJWTAuthenticationBundle extends Bundle { /** * {@inheritdoc} */ public function build(ContainerBuilder $container): void { parent::build($container); $container->addCompilerPass(new WireGenerateTokenCommandPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION, 0); $container->addCompilerPass(new DeprecateLegacyGuardAuthenticatorPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION, 0); $container->addCompilerPass(new ApiPlatformOpenApiPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION, 0); /** @var SecurityExtension $extension */ $extension = $container->getExtension('security'); $extension->addUserProviderFactory(new JWTUserFactory()); // Authenticator factory for Symfony 5.4 and later if (method_exists($extension, 'addAuthenticatorFactory')) { $extension->addAuthenticatorFactory(new JWTAuthenticatorFactory()); return; } // Security listener factory for Symfony 5.3 and earlier if (method_exists($extension, 'addSecurityListenerFactory')) { $extension->addSecurityListenerFactory(new JWTAuthenticatorFactory()); return; } // Security listener factory for Symfony 4.4 if (method_exists($extension, 'addSecurityListenerFactory')) { $extension->addSecurityListenerFactory(new JWTFactory(false)); // BC 1.x, to be removed in 3.0 } } }