use Psr\Http\Server\RequestHandlerInterface as RequestHandler;
use Slim\Exception\HttpMethodNotAllowedException;
use Slim\Exception\HttpNotFoundException;
+use Slim\Routing\RouteContext;
use Slim\Routing\RouteParser;
use Slim\Views\Twig;
$exclusions = $c->get('CsrfExclusions');
$guard->setFailureHandler(function (ServerRequestInterface $request, RequestHandler $handler) use ($exclusions) {
$response = $handler->handle($request);
+ $routeContext = RouteContext::fromRequest($request);
+ $route = $routeContext->getRoute();
foreach ($exclusions as $exclusion) {
- if (preg_match($exclusion, $request->getAttribute('route')->getname())) {
+ if (preg_match($exclusion, $route->getname())) {
//route is excluded form CSRF checks
return $response;
}
*/
public function __invoke(Request $request, RequestHandler $handler): Response
{
- $response = $handler->handle($request);
+ $response = new \Slim\Psr7\Response();
if (!$this->login || !$this->login->isLogged()) {
if ($request->getMethod() === 'GET') {
);
$this->flash->addMessage('error_detected', _T("Login required"));
return $response
- ->withHeader('Location', $this->routeparser->urlFor('slash'));
+ ->withHeader(
+ 'Location',
+ $this->routeparser->urlFor('slash')
+ )->withStatus(302);
} else {
//check for ACLs
$routeContext = RouteContext::fromRequest($request);
_T("You do not have permission for requested URL.")
);
return $response
- ->withHeader('Location', $this->routeparser->urlFor('slash'));
+ ->withHeader('Location', $this->routeparser->urlFor('slash'))
+ ->withStatus(302);;
}
}
- return $response;
+ return $handler->handle($request);;
}
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Server\RequestHandlerInterface as RequestHandler;
use DI\Container;
+use Slim\Routing\RouteContext;
use Slim\Routing\RouteParser;
/**
$get = $request->getQueryParams();
if (isset($get['ui_pref_lang'])) {
- $route = $request->getAttribute('route');
+ $routeContext = RouteContext::fromRequest($request);
+ $route = $routeContext->getRoute();
$route_name = $route->getName();
$arguments = $route->getArguments();
$this->i18n->changeLanguage($get['ui_pref_lang']);
$this->session->i18n = $this->i18n;
- return $response->withRedirect(
- $this->routeparser->urlFor(
- $route_name,
- $arguments
- ),
- 301
- );
+ $response = new \Slim\Psr7\Response();
+ return $response
+ ->withHeader(
+ 'Location',
+ $this->routeparser->urlFor(
+ $route_name,
+ $arguments
+ )
+ )
+ ->withStatus(301);
}
return $response;
}