middleware-pipeline.global.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. declare(strict_types=1);
  3. namespace Shlinkio\Shlink;
  4. use Laminas\Stratigility\Middleware\ErrorHandler;
  5. use Mezzio\ProblemDetails;
  6. use Mezzio\Router;
  7. use PhpMiddleware\RequestId\RequestIdMiddleware;
  8. use RKA\Middleware\IpAddress;
  9. use Shlinkio\Shlink\Common\Middleware\ContentLengthMiddleware;
  10. return [
  11. 'middleware_pipeline' => [
  12. 'error-handler' => [
  13. 'middleware' => [
  14. ContentLengthMiddleware::class,
  15. ErrorHandler::class,
  16. ],
  17. ],
  18. 'error-handler-rest' => [
  19. 'path' => '/rest',
  20. 'middleware' => [
  21. Rest\Middleware\CrossDomainMiddleware::class,
  22. RequestIdMiddleware::class,
  23. ProblemDetails\ProblemDetailsMiddleware::class,
  24. ],
  25. ],
  26. 'pre-routing' => [
  27. 'middleware' => [
  28. Common\Middleware\CloseDbConnectionMiddleware::class,
  29. ],
  30. ],
  31. 'routing' => [
  32. 'middleware' => [
  33. Router\Middleware\RouteMiddleware::class,
  34. Router\Middleware\ImplicitHeadMiddleware::class,
  35. ],
  36. ],
  37. 'rest' => [
  38. 'path' => '/rest',
  39. 'middleware' => [
  40. Router\Middleware\ImplicitOptionsMiddleware::class,
  41. Rest\Middleware\BodyParserMiddleware::class,
  42. Rest\Middleware\AuthenticationMiddleware::class,
  43. ],
  44. ],
  45. 'dispatch' => [
  46. 'middleware' => [
  47. Router\Middleware\DispatchMiddleware::class,
  48. ],
  49. ],
  50. 'not-found-rest' => [
  51. 'path' => '/rest',
  52. 'middleware' => [
  53. ProblemDetails\ProblemDetailsNotFoundHandler::class,
  54. ],
  55. ],
  56. 'not-found' => [
  57. 'middleware' => [
  58. // This middleware is in front of tracking actions explicitly. Putting here for orphan visits tracking
  59. IpAddress::class,
  60. Core\ErrorHandler\NotFoundTypeResolverMiddleware::class,
  61. Core\ErrorHandler\NotFoundTrackerMiddleware::class,
  62. Core\ErrorHandler\NotFoundRedirectHandler::class,
  63. Core\ErrorHandler\NotFoundTemplateHandler::class,
  64. ],
  65. ],
  66. ],
  67. ];