summaryrefslogtreecommitdiff
path: root/modules_v4
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@webtrees.net>2019-04-02 12:49:16 +0100
committerGreg Roach <fisharebest@webtrees.net>2019-04-10 10:46:01 +0100
commit6ccdf4f0fd1b65a5d54259c969912382ce49629d (patch)
tree05b5413ec6c06cec5ba59c24fd73dd2034ff1b74 /modules_v4
parente2e7f6bfc3bed346c21ad436fd1055ed03e163c3 (diff)
downloadwebtrees-6ccdf4f0fd1b65a5d54259c969912382ce49629d.tar.gz
webtrees-6ccdf4f0fd1b65a5d54259c969912382ce49629d.tar.bz2
webtrees-6ccdf4f0fd1b65a5d54259c969912382ce49629d.zip
Convert requests, middleware and reponses to use PSR-7, PSR-15 and PSR-17
Diffstat (limited to 'modules_v4')
-rw-r--r--modules_v4/example-middleware.disable/module.php37
1 files changed, 24 insertions, 13 deletions
diff --git a/modules_v4/example-middleware.disable/module.php b/modules_v4/example-middleware.disable/module.php
index 418c82aab5..3ba98afdf7 100644
--- a/modules_v4/example-middleware.disable/module.php
+++ b/modules_v4/example-middleware.disable/module.php
@@ -2,18 +2,21 @@
namespace MyCustomNamespace;
-use Closure;
-use Fisharebest\Webtrees\Http\Middleware\MiddlewareInterface;
use Fisharebest\Webtrees\Module\AbstractModule;
use Fisharebest\Webtrees\Module\ModuleCustomInterface;
use Fisharebest\Webtrees\Module\ModuleCustomTrait;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
+use Psr\Http\Message\ResponseInterface;
+use Psr\Http\Message\ServerRequestInterface;
+use Psr\Http\Server\MiddlewareInterface;
+use Psr\Http\Server\RequestHandlerInterface;
+use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
+use function in_array;
/**
* An example module to demonstrate middleware.
*/
-return new class extends AbstractModule implements ModuleCustomInterface, MiddlewareInterface {
+return new class extends AbstractModule implements ModuleCustomInterface, MiddlewareInterface
+{
use ModuleCustomTrait;
/**
@@ -33,7 +36,7 @@ return new class extends AbstractModule implements ModuleCustomInterface, Middle
*/
public function description(): string
{
- return 'This adds a custom HTTP headers to all responses';
+ return 'This is an example of middleware';
}
/**
@@ -41,21 +44,29 @@ return new class extends AbstractModule implements ModuleCustomInterface, Middle
*
* @see https://symfony.com/doc/current/components/http_foundation.html
*
- * @param Request $request
- * @param Closure $next
+ * @param ServerRequestInterface $request
+ * @param RequestHandlerInterface $handler
*
- * @return Response
+ * @return ResponseInterface
*/
- public function handle(Request $request, Closure $next): Response
+ public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
// Code here is executed before we process the request/response.
// We can prevent the request being executed by throwing an exception.
- // Generate the response from the request.
- $response = $next($request);
+ $blacklist = [];
+ $ip_address = $request->getServerParams()['REMOTE_ADDR'] ?? '127.0.0.1';
+
+ if (in_array($ip_address, $blacklist, true)) {
+ throw new AccessDeniedHttpException();
+ }
+
+ // Generate the response from the next middleware handler.
+ $response = $handler->handle($request);
// Code here is executed after we process the request/response.
- $response->headers->set('X-Powered-By', 'Fish');
+ // We can modify the response.
+ $response = $response->withHeader('X-Powered-By', 'Fish');
return $response;
}