*/ class SecurityEventListener extends Action implements IEventListener { public function handle(Event $event): void { if ($event instanceof TwoFactorProviderChallengePassed) { $this->twoFactorProviderChallengePassed($event); } elseif ($event instanceof TwoFactorProviderChallengeFailed) { $this->twoFactorProviderChallengeFailed($event); } } private function twoFactorProviderChallengePassed(TwoFactorProviderChallengePassed $event): void { $this->log( 'Successful two factor attempt by user %s (%s) with provider %s', [ 'uid' => $event->getUser()->getUID(), 'displayName' => $event->getUser()->getDisplayName(), 'provider' => $event->getProvider()->getDisplayName() ], [ 'displayName', 'uid', 'provider', ] ); } private function twoFactorProviderChallengeFailed(TwoFactorProviderChallengeFailed $event): void { $this->log( 'Failed two factor attempt by user %s (%s) with provider %s', [ 'uid' => $event->getUser()->getUID(), 'displayName' => $event->getUser()->getDisplayName(), 'provider' => $event->getProvider()->getDisplayName() ], [ 'displayName', 'uid', 'provider', ] ); } }