public function onBootstrap(EventInterface $event) { /*$eventManager = $e->getApplication()->getEventManager(); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager);*/ $application = $event->getTarget(); $serviceManager = $application->getServiceManager(); $translator = $serviceManager->get('translator'); $translator->setLocale(\Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']))->setFallbackLocale('en_US'); $application->getEventManager()->attach(MvcEvent::EVENT_DISPATCH, function (MvcEvent $event) use($serviceManager) { $request = $event->getRequest(); $response = $event->getResponse(); if (!($request instanceof HttpRequest && $response instanceof HttpResponse)) { return; // CLI application maybe? } $authAdapter = $serviceManager->get('AuthenticationAdapter'); $authAdapter->setRequest($request); $authAdapter->setResponse($response); $result = $authAdapter->authenticate(); if ($result->isValid()) { return; // OK } $response->setContent('Access denied'); $response->setStatusCode(HttpResponse::STATUS_CODE_401); $event->setResult($response); // to end return false; // event propagation stop }); }