feat(firewall): validate rules and add typed configuration
Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
This commit is contained in:
@@ -11,11 +11,13 @@ class TenantConfiguration extends JsonSerializableObject
|
||||
{
|
||||
protected TenantAuthentication $authentication;
|
||||
protected TenantSecurity $security;
|
||||
protected TenantFirewall $firewall;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->authentication = new TenantAuthentication();
|
||||
$this->security = new TenantSecurity();
|
||||
$this->firewall = new TenantFirewall();
|
||||
}
|
||||
|
||||
public function authentication(): TenantAuthentication {
|
||||
@@ -26,4 +28,8 @@ class TenantConfiguration extends JsonSerializableObject
|
||||
return $this->security;
|
||||
}
|
||||
|
||||
public function firewall(): TenantFirewall {
|
||||
return $this->firewall;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace KTXC\Models\Tenant;
|
||||
|
||||
use KTXF\Json\JsonSerializableObject;
|
||||
|
||||
class TenantFirewall extends JsonSerializableObject
|
||||
{
|
||||
protected bool $enabled = true;
|
||||
protected int $maxAuthFailures = 5;
|
||||
protected int $authFailureWindow = 300;
|
||||
protected int $autoBlockDuration = 3600;
|
||||
|
||||
public function enabled(): bool
|
||||
{
|
||||
return $this->enabled;
|
||||
}
|
||||
|
||||
public function maxAuthFailures(): int
|
||||
{
|
||||
return $this->maxAuthFailures;
|
||||
}
|
||||
|
||||
public function authFailureWindow(): int
|
||||
{
|
||||
return $this->authFailureWindow;
|
||||
}
|
||||
|
||||
public function autoBlockDuration(): int
|
||||
{
|
||||
return $this->autoBlockDuration;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user