/** * Run the request filter. * * @param Request $request * @param \Closure $next * @param string $context * * @return mixed */ public function handle(Request $request, \Closure $next, $context) { list($context, $privacy) = $this->parseContext($context); $this->securityContext->bindContext($context, $request); try { $this->applySecurity($context, $privacy, $request); $response = $next($request); } catch (Unauthenticated $e) { $response = $this->redirector->guest($this->getLoginUrl($context)); } $this->garbageCollect($this->securityContext->getSecurity($context), $this->securityContext->getConfigurationFor($context)); return $response; }