Raydium Framework

Tenant
in package

Resolves tenant information from HTTP requests.

Table of Contents

MAX_TENANT_ID_LENGTH  = 63
MIN_TENANT_ID_LENGTH  = 1
TENANT_ID_PATTERN  = '/^[a-z0-9]([a-z0-9\\-]{0,61}[a-z0-9])?$/'
$allowedTenantIds  : array<string|int, string>
$logger  : LoggerInterface
$reservedSubdomains  : array<string|int, string>
$trustedHosts  : array<string|int, string>
__construct()  : mixed
resolveTenantFromRequest()  : null|TenantInfo
Resolves tenant information from the request.
containsSuspiciousPatterns()  : bool
Checks for suspicious patterns in the host.
extractAndValidateHost()  : string
Extracts and validates the host from the request.
extractTenantIdFromHost()  : null|string
Extracts tenant ID from host.
getClientIp()  : string
Extracts client IP for logging purposes.
isHostTrusted()  : bool
Checks if host is in the trusted hosts list.
isValidHostFormat()  : bool
Validates host format according to RFC standards.
isValidTenantId()  : bool
Validates if a tenant ID is valid and allowed.
logSecurityEvent()  : void
Logs security-related events.

Constants

MAX_TENANT_ID_LENGTH

private mixed MAX_TENANT_ID_LENGTH = 63

MIN_TENANT_ID_LENGTH

private mixed MIN_TENANT_ID_LENGTH = 1

TENANT_ID_PATTERN

private mixed TENANT_ID_PATTERN = '/^[a-z0-9]([a-z0-9\\-]{0,61}[a-z0-9])?$/'

Properties

$allowedTenantIds

private array<string|int, string> $allowedTenantIds

$logger

private LoggerInterface $logger

$reservedSubdomains

private array<string|int, string> $reservedSubdomains

$trustedHosts

private array<string|int, string> $trustedHosts

Methods

__construct()

public __construct([array<string|int, string> $allowedTenantIds = [] ][, array<string|int, string> $reservedSubdomains = ['www', 'api', 'admin', 'app', 'mail', 'ftp', 'blog'] ][, array<string|int, string> $trustedHosts = [] ][, null|LoggerInterface $logger = null ]) : mixed
Parameters
$allowedTenantIds : array<string|int, string> = []

List of valid tenant IDs

$reservedSubdomains : array<string|int, string> = ['www', 'api', 'admin', 'app', 'mail', 'ftp', 'blog']

Subdomains that cannot be used as tenant IDs

$trustedHosts : array<string|int, string> = []

List of trusted host patterns

$logger : null|LoggerInterface = null

Logger for security events

Return values
mixed

resolveTenantFromRequest()

Resolves tenant information from the request.

public resolveTenantFromRequest(ServerRequestInterface $request) : null|TenantInfo
Parameters
$request : ServerRequestInterface

The HTTP request

Tags
throws
RuntimeException

If the request is malformed or suspicious

Return values
null|TenantInfo

Tenant information or null if not found/invalid

containsSuspiciousPatterns()

Checks for suspicious patterns in the host.

private containsSuspiciousPatterns(string $host) : bool
Parameters
$host : string

The host to check

Return values
bool

True if suspicious patterns detected

extractAndValidateHost()

Extracts and validates the host from the request.

private extractAndValidateHost(ServerRequestInterface $request) : string
Parameters
$request : ServerRequestInterface
Tags
throws
InvalidArgumentException

If host is invalid or suspicious

Return values
string

The validated host

extractTenantIdFromHost()

Extracts tenant ID from host.

private extractTenantIdFromHost(string $host) : null|string
Parameters
$host : string

The validated host

Return values
null|string

The tenant ID or null if not a tenant subdomain

getClientIp()

Extracts client IP for logging purposes.

private getClientIp(ServerRequestInterface $request) : string
Parameters
$request : ServerRequestInterface
Return values
string

The client IP address

isHostTrusted()

Checks if host is in the trusted hosts list.

private isHostTrusted(string $host) : bool
Parameters
$host : string

The host to check

Return values
bool

True if trusted

isValidHostFormat()

Validates host format according to RFC standards.

private isValidHostFormat(string $host) : bool
Parameters
$host : string

The host to validate

Return values
bool

True if valid format

isValidTenantId()

Validates if a tenant ID is valid and allowed.

private isValidTenantId(string $tenantId) : bool
Parameters
$tenantId : string

The tenant ID to validate

Return values
bool

True if valid and allowed

logSecurityEvent()

Logs security-related events.

private logSecurityEvent(string $message[, array<string|int, mixed> $context = [] ]) : void
Parameters
$message : string

The log message

$context : array<string|int, mixed> = []

Additional context

Return values
void

Search results