gracefully handle missing event dispatchers

This commit is contained in:
Christian Flothmann 2019-12-06 14:04:56 +01:00
parent 56fac414ff
commit d4ae85fc72
12 changed files with 82 additions and 12 deletions

View File

@ -39,7 +39,13 @@ class SendMessageMiddleware implements MiddlewareInterface
public function __construct(SendersLocatorInterface $sendersLocator, EventDispatcherInterface $eventDispatcher = null) public function __construct(SendersLocatorInterface $sendersLocator, EventDispatcherInterface $eventDispatcher = null)
{ {
$this->sendersLocator = $sendersLocator; $this->sendersLocator = $sendersLocator;
$this->eventDispatcher = LegacyEventDispatcherProxy::decorate($eventDispatcher);
if (null !== $eventDispatcher && class_exists(LegacyEventDispatcherProxy::class)) {
$this->eventDispatcher = LegacyEventDispatcherProxy::decorate($eventDispatcher);
} else {
$this->eventDispatcher = $eventDispatcher;
}
$this->logger = new NullLogger(); $this->logger = new NullLogger();
} }

View File

@ -52,7 +52,13 @@ class Worker implements WorkerInterface
$this->receivers = $receivers; $this->receivers = $receivers;
$this->bus = $bus; $this->bus = $bus;
$this->retryStrategies = $retryStrategies; $this->retryStrategies = $retryStrategies;
$this->eventDispatcher = LegacyEventDispatcherProxy::decorate($eventDispatcher);
if (null !== $eventDispatcher && class_exists(LegacyEventDispatcherProxy::class)) {
$this->eventDispatcher = LegacyEventDispatcherProxy::decorate($eventDispatcher);
} else {
$this->eventDispatcher = $eventDispatcher;
}
$this->logger = $logger; $this->logger = $logger;
} }

View File

@ -31,7 +31,12 @@ class TraceableVoter implements VoterInterface
public function __construct(VoterInterface $voter, EventDispatcherInterface $eventDispatcher) public function __construct(VoterInterface $voter, EventDispatcherInterface $eventDispatcher)
{ {
$this->voter = $voter; $this->voter = $voter;
$this->eventDispatcher = LegacyEventDispatcherProxy::decorate($eventDispatcher);
if (class_exists(LegacyEventDispatcherProxy::class)) {
$this->eventDispatcher = LegacyEventDispatcherProxy::decorate($eventDispatcher);
} else {
$this->eventDispatcher = $eventDispatcher;
}
} }
public function vote(TokenInterface $token, $subject, array $attributes) public function vote(TokenInterface $token, $subject, array $attributes)

View File

@ -46,7 +46,13 @@ class GuardAuthenticatorHandler
public function __construct(TokenStorageInterface $tokenStorage, EventDispatcherInterface $eventDispatcher = null, array $statelessProviderKeys = []) public function __construct(TokenStorageInterface $tokenStorage, EventDispatcherInterface $eventDispatcher = null, array $statelessProviderKeys = [])
{ {
$this->tokenStorage = $tokenStorage; $this->tokenStorage = $tokenStorage;
$this->dispatcher = LegacyEventDispatcherProxy::decorate($eventDispatcher);
if (null !== $eventDispatcher && class_exists(LegacyEventDispatcherProxy::class)) {
$this->dispatcher = LegacyEventDispatcherProxy::decorate($eventDispatcher);
} else {
$this->dispatcher = $eventDispatcher;
}
$this->statelessProviderKeys = $statelessProviderKeys; $this->statelessProviderKeys = $statelessProviderKeys;
} }

View File

@ -93,7 +93,13 @@ abstract class AbstractAuthenticationListener implements ListenerInterface
'require_previous_session' => true, 'require_previous_session' => true,
], $options); ], $options);
$this->logger = $logger; $this->logger = $logger;
$this->dispatcher = LegacyEventDispatcherProxy::decorate($dispatcher);
if (null !== $dispatcher && class_exists(LegacyEventDispatcherProxy::class)) {
$this->dispatcher = LegacyEventDispatcherProxy::decorate($dispatcher);
} else {
$this->dispatcher = $dispatcher;
}
$this->httpUtils = $httpUtils; $this->httpUtils = $httpUtils;
} }

View File

@ -52,7 +52,12 @@ abstract class AbstractPreAuthenticatedListener implements ListenerInterface
$this->authenticationManager = $authenticationManager; $this->authenticationManager = $authenticationManager;
$this->providerKey = $providerKey; $this->providerKey = $providerKey;
$this->logger = $logger; $this->logger = $logger;
$this->dispatcher = LegacyEventDispatcherProxy::decorate($dispatcher);
if (null !== $dispatcher && class_exists(LegacyEventDispatcherProxy::class)) {
$this->dispatcher = LegacyEventDispatcherProxy::decorate($dispatcher);
} else {
$this->dispatcher = $dispatcher;
}
} }
/** /**

View File

@ -66,7 +66,13 @@ class ContextListener implements ListenerInterface
$this->userProviders = $userProviders; $this->userProviders = $userProviders;
$this->sessionKey = '_security_'.$contextKey; $this->sessionKey = '_security_'.$contextKey;
$this->logger = $logger; $this->logger = $logger;
$this->dispatcher = LegacyEventDispatcherProxy::decorate($dispatcher);
if (null !== $dispatcher && class_exists(LegacyEventDispatcherProxy::class)) {
$this->dispatcher = LegacyEventDispatcherProxy::decorate($dispatcher);
} else {
$this->dispatcher = $dispatcher;
}
$this->trustResolver = $trustResolver ?: new AuthenticationTrustResolver(AnonymousToken::class, RememberMeToken::class); $this->trustResolver = $trustResolver ?: new AuthenticationTrustResolver(AnonymousToken::class, RememberMeToken::class);
} }

View File

@ -49,7 +49,13 @@ class RememberMeListener implements ListenerInterface
$this->rememberMeServices = $rememberMeServices; $this->rememberMeServices = $rememberMeServices;
$this->authenticationManager = $authenticationManager; $this->authenticationManager = $authenticationManager;
$this->logger = $logger; $this->logger = $logger;
$this->dispatcher = LegacyEventDispatcherProxy::decorate($dispatcher);
if (null !== $dispatcher && class_exists(LegacyEventDispatcherProxy::class)) {
$this->dispatcher = LegacyEventDispatcherProxy::decorate($dispatcher);
} else {
$this->dispatcher = $dispatcher;
}
$this->catchExceptions = $catchExceptions; $this->catchExceptions = $catchExceptions;
$this->sessionStrategy = null === $sessionStrategy ? new SessionAuthenticationStrategy(SessionAuthenticationStrategy::MIGRATE) : $sessionStrategy; $this->sessionStrategy = null === $sessionStrategy ? new SessionAuthenticationStrategy(SessionAuthenticationStrategy::MIGRATE) : $sessionStrategy;
} }

View File

@ -65,7 +65,13 @@ class SimplePreAuthenticationListener implements ListenerInterface
$this->providerKey = $providerKey; $this->providerKey = $providerKey;
$this->simpleAuthenticator = $simpleAuthenticator; $this->simpleAuthenticator = $simpleAuthenticator;
$this->logger = $logger; $this->logger = $logger;
$this->dispatcher = LegacyEventDispatcherProxy::decorate($dispatcher);
if (null !== $dispatcher && class_exists(LegacyEventDispatcherProxy::class)) {
$this->dispatcher = LegacyEventDispatcherProxy::decorate($dispatcher);
} else {
$this->dispatcher = $dispatcher;
}
$this->trustResolver = $trustResolver ?: new AuthenticationTrustResolver(AnonymousToken::class, RememberMeToken::class); $this->trustResolver = $trustResolver ?: new AuthenticationTrustResolver(AnonymousToken::class, RememberMeToken::class);
} }

View File

@ -70,7 +70,13 @@ class SwitchUserListener implements ListenerInterface
$this->usernameParameter = $usernameParameter; $this->usernameParameter = $usernameParameter;
$this->role = $role; $this->role = $role;
$this->logger = $logger; $this->logger = $logger;
$this->dispatcher = LegacyEventDispatcherProxy::decorate($dispatcher);
if (null !== $dispatcher && class_exists(LegacyEventDispatcherProxy::class)) {
$this->dispatcher = LegacyEventDispatcherProxy::decorate($dispatcher);
} else {
$this->dispatcher = $dispatcher;
}
$this->stateless = $stateless; $this->stateless = $stateless;
} }

View File

@ -69,7 +69,13 @@ class UsernamePasswordJsonAuthenticationListener implements ListenerInterface
$this->successHandler = $successHandler; $this->successHandler = $successHandler;
$this->failureHandler = $failureHandler; $this->failureHandler = $failureHandler;
$this->logger = $logger; $this->logger = $logger;
$this->eventDispatcher = LegacyEventDispatcherProxy::decorate($eventDispatcher);
if (null !== $eventDispatcher && class_exists(LegacyEventDispatcherProxy::class)) {
$this->eventDispatcher = LegacyEventDispatcherProxy::decorate($eventDispatcher);
} else {
$this->eventDispatcher = $eventDispatcher;
}
$this->options = array_merge(['username_path' => 'username', 'password_path' => 'password'], $options); $this->options = array_merge(['username_path' => 'username', 'password_path' => 'password'], $options);
$this->propertyAccessor = $propertyAccessor ?: PropertyAccess::createPropertyAccessor(); $this->propertyAccessor = $propertyAccessor ?: PropertyAccess::createPropertyAccessor();
} }

View File

@ -43,7 +43,13 @@ class Workflow implements WorkflowInterface
{ {
$this->definition = $definition; $this->definition = $definition;
$this->markingStore = $markingStore ?: new MultipleStateMarkingStore(); $this->markingStore = $markingStore ?: new MultipleStateMarkingStore();
$this->dispatcher = null !== $dispatcher ? LegacyEventDispatcherProxy::decorate($dispatcher) : null;
if (null !== $dispatcher && class_exists(LegacyEventDispatcherProxy::class)) {
$this->dispatcher = LegacyEventDispatcherProxy::decorate($dispatcher);
} else {
$this->dispatcher = $dispatcher;
}
$this->name = $name; $this->name = $name;
} }