mirror of
https://github.com/coollabsio/coolify.git
synced 2026-11-14 00:33:44 -04:00
TrustHosts skipped its check while the cache key instance_settings_fqdn_host
was empty, and only the skipped check filled that key. So since e1fe58639
(October 2025) no release restricted the Host header. Turning it on now would
lock out users who reach Coolify by server IP or another name when the domain
or proxy is broken.
Links in emails and notifications do not use the Host header: base_url()
uses the configured FQDN or the server IP (see ResetPasswordUrlTest). So
remove the middleware, its cache key and its tests. TrustProxies is unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
120 lines
4.4 KiB
PHP
120 lines
4.4 KiB
PHP
<?php
|
|
|
|
namespace App\Http;
|
|
|
|
use App\Http\Middleware\AddServerTimingHeaders;
|
|
use App\Http\Middleware\ApiAbility;
|
|
use App\Http\Middleware\ApiSensitiveData;
|
|
use App\Http\Middleware\Authenticate;
|
|
use App\Http\Middleware\CanAccessTerminal;
|
|
use App\Http\Middleware\CanCreateResources;
|
|
use App\Http\Middleware\CanUpdateResource;
|
|
use App\Http\Middleware\CheckForcePasswordReset;
|
|
use App\Http\Middleware\DecideWhatToDoWithUser;
|
|
use App\Http\Middleware\EncryptCookies;
|
|
use App\Http\Middleware\EnsureMcpEnabled;
|
|
use App\Http\Middleware\EnsureTeamMcpEnabled;
|
|
use App\Http\Middleware\EnsureTokenBelongsToCurrentTeamMember;
|
|
use App\Http\Middleware\PreventRequestsDuringMaintenance;
|
|
use App\Http\Middleware\RedirectIfAuthenticated;
|
|
use App\Http\Middleware\TrimStrings;
|
|
use App\Http\Middleware\TrustProxies;
|
|
use App\Http\Middleware\ValidateSignature;
|
|
use App\Http\Middleware\VerifyCsrfToken;
|
|
use Illuminate\Auth\Middleware\AuthenticateWithBasicAuth;
|
|
use Illuminate\Auth\Middleware\Authorize;
|
|
use Illuminate\Auth\Middleware\EnsureEmailIsVerified;
|
|
use Illuminate\Auth\Middleware\RequirePassword;
|
|
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
|
|
use Illuminate\Foundation\Http\Kernel as HttpKernel;
|
|
use Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull;
|
|
use Illuminate\Foundation\Http\Middleware\InvokeDeferredCallbacks;
|
|
use Illuminate\Foundation\Http\Middleware\ValidatePostSize;
|
|
use Illuminate\Http\Middleware\HandleCors;
|
|
use Illuminate\Http\Middleware\SetCacheHeaders;
|
|
use Illuminate\Routing\Middleware\SubstituteBindings;
|
|
use Illuminate\Routing\Middleware\ThrottleRequests;
|
|
use Illuminate\Session\Middleware\AuthenticateSession;
|
|
use Illuminate\Session\Middleware\StartSession;
|
|
use Illuminate\View\Middleware\ShareErrorsFromSession;
|
|
use Laravel\Sanctum\Http\Middleware\CheckAbilities;
|
|
use Laravel\Sanctum\Http\Middleware\CheckForAnyAbility;
|
|
|
|
class Kernel extends HttpKernel
|
|
{
|
|
/**
|
|
* The application's global HTTP middleware stack.
|
|
*
|
|
* These middleware are run during every request to your application.
|
|
*
|
|
* @var array<int, class-string|string>
|
|
*/
|
|
protected $middleware = [
|
|
// Outermost so Server-Timing includes the full middleware + app cost.
|
|
AddServerTimingHeaders::class,
|
|
TrustProxies::class,
|
|
HandleCors::class,
|
|
PreventRequestsDuringMaintenance::class,
|
|
ValidatePostSize::class,
|
|
TrimStrings::class,
|
|
ConvertEmptyStringsToNull::class,
|
|
InvokeDeferredCallbacks::class,
|
|
|
|
];
|
|
|
|
/**
|
|
* The application's route middleware groups.
|
|
*
|
|
* @var array<string, array<int, class-string|string>>
|
|
*/
|
|
protected $middlewareGroups = [
|
|
'web' => [
|
|
EncryptCookies::class,
|
|
AddQueuedCookiesToResponse::class,
|
|
StartSession::class,
|
|
ShareErrorsFromSession::class,
|
|
VerifyCsrfToken::class,
|
|
SubstituteBindings::class,
|
|
CheckForcePasswordReset::class,
|
|
DecideWhatToDoWithUser::class,
|
|
|
|
],
|
|
|
|
'api' => [
|
|
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
|
|
ThrottleRequests::class.':api',
|
|
SubstituteBindings::class,
|
|
],
|
|
];
|
|
|
|
/**
|
|
* The application's middleware aliases.
|
|
*
|
|
* Aliases may be used to conveniently assign middleware to routes and groups.
|
|
*
|
|
* @var array<string, class-string|string>
|
|
*/
|
|
protected $middlewareAliases = [
|
|
'auth' => Authenticate::class,
|
|
'auth.basic' => AuthenticateWithBasicAuth::class,
|
|
'auth.session' => AuthenticateSession::class,
|
|
'cache.headers' => SetCacheHeaders::class,
|
|
'can' => Authorize::class,
|
|
'guest' => RedirectIfAuthenticated::class,
|
|
'password.confirm' => RequirePassword::class,
|
|
'signed' => ValidateSignature::class,
|
|
'throttle' => ThrottleRequests::class,
|
|
'verified' => EnsureEmailIsVerified::class,
|
|
'abilities' => CheckAbilities::class,
|
|
'ability' => CheckForAnyAbility::class,
|
|
'api.ability' => ApiAbility::class,
|
|
'api.sensitive' => ApiSensitiveData::class,
|
|
'api.token.team' => EnsureTokenBelongsToCurrentTeamMember::class,
|
|
'can.create.resources' => CanCreateResources::class,
|
|
'can.update.resource' => CanUpdateResource::class,
|
|
'can.access.terminal' => CanAccessTerminal::class,
|
|
'mcp.enabled' => EnsureMcpEnabled::class,
|
|
'mcp.team.enabled' => EnsureTeamMcpEnabled::class,
|
|
];
|
|
}
|