Exemplo n.º 1
0
 /**
  * @test
  */
 public function willClassifyAuthenticationExceptionAsWarningsAndReturn401Status()
 {
     $error = new HttpError(new Request(), new AuthenticationException(), $this->logRefBuilder);
     $this->assertSame($error->getSeverity(), LogLevel::WARNING);
     $this->assertSame($error->getStatusCode(), 401);
     $this->assertStringStartsWith('Unauthorized', $error->getMessage());
 }
 /**
  * @param HttpError $error
  *
  * @return Response
  */
 public function create(HttpError $error) : Response
 {
     $data = ['message' => $error->getMessage(), 'logref' => $error->getLogRef()];
     $exception = $error->getException();
     if ($exception instanceof ValidationException) {
         $data['errors'] = [];
         foreach ($exception->getValidationErrors() as $path => $errorMessage) {
             $data['errors'][$path === '' ? '*root*' : $path] = $errorMessage;
         }
     }
     return new JsonResponse($data, $error->getStatusCode());
 }
 /**
  * @param GetResponseForExceptionEvent $event
  */
 public function onKernelException(GetResponseForExceptionEvent $event)
 {
     $error = new HttpError($event->getRequest(), $event->getException(), $this->logRefBuilder);
     $this->logger->log($error->getSeverity(), "{$error->getMessage()} [logref {$error->getLogRef()}]: {$event->getException()}");
     $event->setResponse($this->errorResponseFactory->create($error));
 }