Central Security Centre

* 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
This commit is contained in:
Mark Gregory
2026-07-24 12:30:40 +01:00
parent 86f2bc75aa
commit 7fb71c4d24
21 changed files with 270 additions and 3 deletions
@@ -0,0 +1,29 @@
<?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);
}
}