* Security policy management * Minimum password-length policy * Mixed-case, number, and symbol requirements * Password expiry and history settings * MFA requirement policy * Failed-login and lockout settings * Session idle-time policy * Single-session policy * Automatic successful-login recording * Automatic failed-login recording * Automatic logout recording * Authentication history * IP allow and deny rules * IPv4 CIDR support * Administration and login rule scopes * Trusted-device storage and revocation * Security middleware registration * Administration navigation * Security permissions * Module registration and tests
30 lines
1.2 KiB
PHP
30 lines
1.2 KiB
PHP
<?php
|
|
namespace Modules\Security\Providers;
|
|
use Illuminate\Auth\Events\Failed;
|
|
use Illuminate\Auth\Events\Login;
|
|
use Illuminate\Auth\Events\Logout;
|
|
use Illuminate\Routing\Router;
|
|
use Illuminate\Support\Facades\Event;
|
|
use Illuminate\Support\ServiceProvider;
|
|
use Modules\Security\Http\Middleware\EnforceIpRestrictions;
|
|
use Modules\Security\Listeners\RecordFailedLogin;
|
|
use Modules\Security\Listeners\RecordLogin;
|
|
use Modules\Security\Listeners\RecordLogout;
|
|
final class SecurityServiceProvider extends ServiceProvider
|
|
{
|
|
public function register(): void
|
|
{
|
|
$this->app->register(RouteServiceProvider::class);
|
|
$this->mergeConfigFrom(module_path('Security', 'Config/config.php'), 'security');
|
|
}
|
|
public function boot(Router $router): void
|
|
{
|
|
$this->loadMigrationsFrom(module_path('Security', 'Database/Migrations'));
|
|
$this->loadViewsFrom(module_path('Security', 'Resources/views'), 'security');
|
|
$router->aliasMiddleware('security.ip', EnforceIpRestrictions::class);
|
|
Event::listen(Login::class, RecordLogin::class);
|
|
Event::listen(Failed::class, RecordFailedLogin::class);
|
|
Event::listen(Logout::class, RecordLogout::class);
|
|
}
|
|
}
|