Пример #1
0
 /**
  * @dataProvider ipsProvider
  */
 public function testIps(array $headers, array $CLIENT_IPS, $CLIENT_IP)
 {
     $response = $this->execute([Middleware::ClientIp(), function ($request, $response, $next) {
         $response->getBody()->write(json_encode(['CLIENT_IPS' => $request->getAttribute('CLIENT_IPS'), 'CLIENT_IP' => $request->getAttribute('CLIENT_IP')]));
         return $response;
     }], '', $headers);
     $body = json_decode((string) $response->getBody(), true);
     $this->assertEquals($body['CLIENT_IPS'], $CLIENT_IPS);
     $this->assertEquals($body['CLIENT_IP'], $CLIENT_IP);
 }
Пример #2
0
 /**
  * @dataProvider ipsProvider
  */
 public function testFirewall(array $headers, array $trusted, array $untrusted, $status)
 {
     $response = $this->execute([Middleware::ClientIp(), Middleware::Firewall()->trusted($trusted)->untrusted($untrusted)], '', $headers);
     $this->assertEquals($status, $response->getStatusCode());
 }
Пример #3
0
use Psr\Http\Message\RequestInterface;
use Psr\Http\Message\ResponseInterface;
use Psr7Middlewares\Middleware;
use League\Flysystem\Adapter\Local;
use League\Flysystem\Filesystem;
use Cache\Adapter\Filesystem\FilesystemCachePool;
$app = AppFactory::create();
$errorLog = new Logger('error');
$errorLog->pushHandler(new StreamHandler('log/error.log', Logger::DEBUG));
ErrorHandler::register($errorLog);
$accessLog = new Logger('error');
$accessLog->pushHandler(new StreamHandler('log/access.log', Logger::DEBUG));
$filesystemAdapter = new Local('cache/');
$filesystem = new Filesystem($filesystemAdapter);
$pool = new FilesystemCachePool($filesystem);
$app->pipe(Middleware::ClientIp()->remote(false));
// required for AccessLog, Geolocate
$app->pipe(Middleware::AccessLog($accessLog)->combined(true));
$app->pipe(Middleware::TrailingSlash(false)->redirect(301));
$app->pipe(Middleware::FormatNegotiator());
// required for Expires, Minify
//$app->pipe(Middleware::Expires());
//$app->pipe(Middleware::Minify());
$app->pipe(Middleware::BlockSpam());
//$app->pipe(Middleware::PhpSession()->name('DetectorSessionId'));
//$app->pipe(Middleware::Geolocate()->saveInSession(true));
//$app->pipe(Middleware::Cache($pool));
$app->pipe(Middleware::responseTime());
$app->pipeRoutingMiddleware();
$app->pipeDispatchMiddleware();
$cache = new File(array(File::DIR => 'cache/'));