mirror of
https://github.com/nextcloud/server.git
synced 2026-04-24 15:53:36 -04:00
feat(admin_audit): write admin audit log for AnyLoginFailedEvent
Signed-off-by: Luka Trovic <luka@nextcloud.com>
This commit is contained in:
parent
0f96d72e14
commit
57971afad5
3 changed files with 27 additions and 1 deletions
|
|
@ -34,6 +34,7 @@ use OCP\AppFramework\App;
|
|||
use OCP\AppFramework\Bootstrap\IBootContext;
|
||||
use OCP\AppFramework\Bootstrap\IBootstrap;
|
||||
use OCP\AppFramework\Bootstrap\IRegistrationContext;
|
||||
use OCP\Authentication\Events\AnyLoginFailedEvent;
|
||||
use OCP\Authentication\TwoFactorAuth\TwoFactorProviderChallengeFailed;
|
||||
use OCP\Authentication\TwoFactorAuth\TwoFactorProviderChallengePassed;
|
||||
use OCP\Console\ConsoleEvent;
|
||||
|
|
@ -105,6 +106,7 @@ class Application extends App implements IBootstrap {
|
|||
$context->registerEventListener(UserLoggedInWithCookieEvent::class, AuthEventListener::class);
|
||||
$context->registerEventListener(UserLoggedInEvent::class, AuthEventListener::class);
|
||||
$context->registerEventListener(BeforeUserLoggedOutEvent::class, AuthEventListener::class);
|
||||
$context->registerEventListener(AnyLoginFailedEvent::class, AuthEventListener::class);
|
||||
|
||||
// File events
|
||||
$context->registerEventListener(BeforePreviewFetchedEvent::class, FileEventListener::class);
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ declare(strict_types=1);
|
|||
namespace OCA\AdminAudit\Listener;
|
||||
|
||||
use OCA\AdminAudit\Actions\Action;
|
||||
use OCP\Authentication\Events\AnyLoginFailedEvent;
|
||||
use OCP\EventDispatcher\Event;
|
||||
use OCP\EventDispatcher\IEventListener;
|
||||
use OCP\User\Events\BeforeUserLoggedInEvent;
|
||||
|
|
@ -18,7 +19,7 @@ use OCP\User\Events\UserLoggedInEvent;
|
|||
use OCP\User\Events\UserLoggedInWithCookieEvent;
|
||||
|
||||
/**
|
||||
* @template-implements IEventListener<BeforeUserLoggedInEvent|UserLoggedInWithCookieEvent|UserLoggedInEvent|BeforeUserLoggedOutEvent>
|
||||
* @template-implements IEventListener<BeforeUserLoggedInEvent|UserLoggedInWithCookieEvent|UserLoggedInEvent|BeforeUserLoggedOutEvent|AnyLoginFailedEvent>
|
||||
*/
|
||||
class AuthEventListener extends Action implements IEventListener {
|
||||
public function handle(Event $event): void {
|
||||
|
|
@ -28,6 +29,8 @@ class AuthEventListener extends Action implements IEventListener {
|
|||
$this->userLoggedIn($event);
|
||||
} elseif ($event instanceof BeforeUserLoggedOutEvent) {
|
||||
$this->beforeUserLogout($event);
|
||||
} elseif ($event instanceof AnyLoginFailedEvent) {
|
||||
$this->anyLoginFailed($event);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -64,4 +67,17 @@ class AuthEventListener extends Action implements IEventListener {
|
|||
[]
|
||||
);
|
||||
}
|
||||
|
||||
private function anyLoginFailed(AnyLoginFailedEvent $event): void {
|
||||
$this->log(
|
||||
'Login failed: "%s"',
|
||||
[
|
||||
'loginName' => $event->getLoginName()
|
||||
],
|
||||
[
|
||||
'loginName',
|
||||
],
|
||||
true
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,11 +31,19 @@ class AnyLoginFailedEvent extends Event {
|
|||
|
||||
/**
|
||||
* @since 26.0.0
|
||||
* @deprecated 31.0.0 Use getLoginName() instead
|
||||
*/
|
||||
public function geLoginName(): string {
|
||||
return $this->loginName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 31.0.0
|
||||
*/
|
||||
public function getLoginName(): string {
|
||||
return $this->loginName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 26.0.0
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in a new issue