Skip to content

Commit bdf8257

Browse files
committed
Disable CSRF on the /incidents/create route
1 parent dad5001 commit bdf8257

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

src/Application.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
namespace App;
2020

21+
use App\Middleware\CsrfProtectionMiddleware;
2122
use App\Middleware\HostHeaderMiddleware;
2223
use Cake\Core\Configure;
2324
use Cake\Core\ContainerInterface;
@@ -26,7 +27,6 @@
2627
use Cake\Event\EventManagerInterface;
2728
use Cake\Http\BaseApplication;
2829
use Cake\Http\Middleware\BodyParserMiddleware;
29-
use Cake\Http\Middleware\CsrfProtectionMiddleware;
3030
use Cake\Http\MiddlewareQueue;
3131
use Cake\ORM\Locator\TableLocator;
3232
use Cake\Routing\Middleware\AssetMiddleware;
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace App\Middleware;
6+
7+
use Cake\Http\Middleware\CsrfProtectionMiddleware as CakeCsrfProtectionMiddleware;
8+
use Psr\Http\Message\ResponseInterface;
9+
use Psr\Http\Message\ServerRequestInterface;
10+
use Psr\Http\Server\RequestHandlerInterface;
11+
12+
/**
13+
* @see https://stackoverflow.com/a/79890247/5155484
14+
*/
15+
class CsrfProtectionMiddleware extends CakeCsrfProtectionMiddleware
16+
{
17+
/**
18+
* Process the request and validate the Host header.
19+
*
20+
* @param ServerRequestInterface $request The request.
21+
* @param RequestHandlerInterface $handler The request handler.
22+
* @return ResponseInterface A response.
23+
*/
24+
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
25+
{
26+
$requestRoute = $request->getUri()->getPath();
27+
if ($requestRoute === '/incidents/create') {
28+
return $handler->handle($request);
29+
}
30+
31+
return parent::process(
32+
request: $request,
33+
handler: $handler
34+
);
35+
}
36+
}

0 commit comments

Comments
 (0)