* @license https://www.gnu.org/licenses/agpl-3.0.en.html/ GNU Affero General Public License v3.0 */ namespace App\Http; use App\Enums\GlobalRateLimit; use App\Enums\MiddlewareGroup; use Illuminate\Foundation\Http\Kernel as HttpKernel; class Kernel extends HttpKernel { /** * The application's global HTTP middleware stack. * * These middleware are run during every request to your application. * * @var array */ protected $middleware = [ // Default Laravel \Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance::class, \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, \Illuminate\Foundation\Http\Middleware\TrimStrings::class, \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, //\App\Http\Middleware\TrustProxies::class, \Illuminate\Http\Middleware\HandleCors::class, Middleware\BlockIpAddress::class, ]; /** * The application's route middleware groups. * * @var array> */ protected $middlewareGroups = [ MiddlewareGroup::WEB->value => [ \Illuminate\Cookie\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\Session\Middleware\AuthenticateSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, \Illuminate\Foundation\Http\Middleware\VerifyCsrfToken::class, Middleware\UpdateLastAction::class, \HDVinnie\SecureHeaders\SecureHeadersMiddleware::class, 'throttle:'.GlobalRateLimit::WEB->value, ], MiddlewareGroup::CHAT->value => [ \Illuminate\Cookie\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\Session\Middleware\AuthenticateSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, \Illuminate\Foundation\Http\Middleware\VerifyCsrfToken::class, Middleware\UpdateLastAction::class, \HDVinnie\SecureHeaders\SecureHeadersMiddleware::class, 'throttle:'.GlobalRateLimit::CHAT->value, ], MiddlewareGroup::API->value => [ 'throttle:'.GlobalRateLimit::API->value, ], MiddlewareGroup::ANNOUNCE->value => [ 'throttle:'.GlobalRateLimit::ANNOUNCE->value, ], MiddlewareGroup::RSS->value => [ 'throttle:'.GlobalRateLimit::RSS->value, ], ]; /** * The application's route middleware. * * These middleware may be assigned to groups or used individually. * * @var array */ protected $middlewareAliases = [ 'admin' => Middleware\CheckForAdmin::class, 'auth' => \Illuminate\Auth\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'banned' => Middleware\CheckIfBanned::class, 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, 'can' => \Illuminate\Auth\Middleware\Authorize::class, 'csrf' => \Illuminate\Foundation\Http\Middleware\VerifyCsrfToken::class, 'guest' => \Illuminate\Auth\Middleware\RedirectIfAuthenticated::class, 'language' => Middleware\SetLanguage::class, 'modo' => Middleware\CheckForModo::class, 'owner' => Middleware\CheckForOwner::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequestsWithRedis::class, 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class, 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class ]; }