app->singleton('cipher', 'App\Services\Cipher\\'.config('secure.cipher')); $this->app->singleton(Services\Option::class); $this->app->alias(Services\Option::class, 'options'); } public function boot(Request $request) { Paginator::useBootstrap(); $this->configureUrlGenerator($request); } /** * Control the URL generated by url() function. * * @codeCoverageIgnore */ protected function configureUrlGenerator(Request $request): void { if (!option('auto_detect_asset_url')) { $rootUrl = option('site_url'); // Replace HTTP_HOST with site_url set in options, // to prevent CDN source problems. if (URL::isValidUrl($rootUrl)) { URL::forceRootUrl($rootUrl); } } /** * Check whether the request is secure or not. * True is always returned when "X-Forwarded-Proto" header is set. * * We define this function because Symfony's "Request::isSecure()" method * needs "setTrustedProxies()" which sucks when load balancer is enabled. */ $isRequestSecure = $request->server('HTTPS') === 'on' || $request->server('HTTP_X_FORWARDED_PROTO') === 'https' || $request->server('HTTP_X_FORWARDED_SSL') === 'on'; if (option('force_ssl') || $isRequestSecure) { URL::forceScheme('https'); } } }