phpmyadmin/libraries/classes/Middleware/TokenMismatchChecking.php
Maurício Meneghini Fauth 923dfb3709
Create the TokenMismatchChecking middleware
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2023-08-16 20:51:27 -03:00

38 lines
1.1 KiB
PHP

<?php
declare(strict_types=1);
namespace PhpMyAdmin\Middleware;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface;
use function __;
use function assert;
final class TokenMismatchChecking implements MiddlewareInterface
{
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
assert($request instanceof ServerRequest);
/**
* There is no point in even attempting to process
* an ajax request if there is a token mismatch
*/
if ($request->isAjax() && $request->isPost() && $GLOBALS['token_mismatch']) {
$responseRenderer = ResponseRenderer::getInstance();
$responseRenderer->setRequestStatus(false);
$responseRenderer->addJSON('message', Message::error(__('Error: Token mismatch')));
return $responseRenderer->response();
}
return $handler->handle($request);
}
}