'limit' => 3,
'interval' => '1 minute',
],
new InMemoryStorage());
$globalLimiter =
new RateLimiterFactory([ 'id' => 'login',
'policy' => 'fixed_window',
'limit' => 6,
'interval' => '1 minute',
],
new InMemoryStorage());
$limiter =
new DefaultLoginRateLimiter($globalLimiter,
$localLimiter, '$3cre7'
);
$this->listener =
new LoginThrottlingListener($this->requestStack,
$limiter);
} public function testPreventsLoginWhenOverLocalThreshold() { $request =
$this->
createRequest();
$passport =
$this->
createPassport('wouter'
);
$this->requestStack->
push($request);
for ($i = 0;
$i < 3; ++
$i) { $this->listener->
checkPassport($this->
createCheckPassportEvent($passport));