mirror of
https://github.com/skipperbent/simple-php-router.git
synced 2026-06-17 00:37:52 +00:00
Merge branch 'v4-development' into v4-feature-ip
This commit is contained in:
@@ -12,7 +12,17 @@ class BaseCsrfVerifier implements IMiddleware
|
||||
public const POST_KEY = 'csrf_token';
|
||||
public const HEADER_KEY = 'X-CSRF-TOKEN';
|
||||
|
||||
/**
|
||||
* Urls to ignore. You can use * to exclude all sub-urls on a given path.
|
||||
* For example: /admin/*
|
||||
* @var array|null
|
||||
*/
|
||||
protected $except;
|
||||
/**
|
||||
* Urls to include. Can be used to include urls from a certain path.
|
||||
* @var array|null
|
||||
*/
|
||||
protected $include;
|
||||
protected $tokenProvider;
|
||||
|
||||
/**
|
||||
@@ -34,11 +44,7 @@ class BaseCsrfVerifier implements IMiddleware
|
||||
return false;
|
||||
}
|
||||
|
||||
$max = count($this->except) - 1;
|
||||
|
||||
for ($i = $max; $i >= 0; $i--) {
|
||||
$url = $this->except[$i];
|
||||
|
||||
foreach($this->except as $url) {
|
||||
$url = rtrim($url, '/');
|
||||
if ($url[strlen($url) - 1] === '*') {
|
||||
$url = rtrim($url, '*');
|
||||
@@ -48,6 +54,24 @@ class BaseCsrfVerifier implements IMiddleware
|
||||
}
|
||||
|
||||
if ($skip === true) {
|
||||
|
||||
if($this->include !== null && count($this->include) > 0) {
|
||||
foreach($this->include as $includeUrl) {
|
||||
$includeUrl = rtrim($includeUrl, '/');
|
||||
if ($includeUrl[strlen($includeUrl) - 1] === '*') {
|
||||
$includeUrl = rtrim($includeUrl, '*');
|
||||
$skip = !$request->getUrl()->contains($includeUrl);
|
||||
break;
|
||||
}
|
||||
|
||||
$skip = !($includeUrl === $request->getUrl()->getOriginalUrl());
|
||||
}
|
||||
}
|
||||
|
||||
if($skip === false) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -391,6 +391,10 @@ class Request
|
||||
if ($this->url->getHost() === null) {
|
||||
$this->url->setHost((string)$this->getHost());
|
||||
}
|
||||
|
||||
if($this->isSecure() === true) {
|
||||
$this->url->setScheme('https');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
<?php
|
||||
/**
|
||||
* @deprecated This class is deprecated and will be removed in future versions.
|
||||
* @see \Pecee\SimpleRouter\Route\RouteGroup
|
||||
*/
|
||||
namespace Pecee\SimpleRouter\Route;
|
||||
|
||||
class RoutePartialGroup extends RouteGroup implements IPartialGroupRoute
|
||||
|
||||
@@ -161,6 +161,7 @@ class Router
|
||||
{
|
||||
$this->fireEvents(EventHandler::EVENT_ADD_ROUTE, [
|
||||
'route' => $route,
|
||||
'isSubRoute' => $this->isProcessingRoute,
|
||||
]);
|
||||
|
||||
/*
|
||||
@@ -184,7 +185,6 @@ class Router
|
||||
*/
|
||||
protected function renderAndProcess(IRoute $route): void
|
||||
{
|
||||
|
||||
$this->isProcessingRoute = true;
|
||||
$route->renderRoute($this->request, $this);
|
||||
$this->isProcessingRoute = false;
|
||||
|
||||
Reference in New Issue
Block a user