if (!
class_exists(RateLimiterFactory::
class)) { throw new \
LogicException('Login throttling requires the Rate Limiter component. Try running "composer require symfony/rate-limiter".'
);
} if (!
isset($config['limiter'
])) { $limiterOptions =
[ 'policy' => 'fixed_window',
'limit' =>
$config['max_attempts'
],
'interval' =>
$config['interval'
],
'lock_factory' =>
$config['lock_factory'
],
];
$this->
registerRateLimiter($container,
$localId = '_login_local_'.
$firewallName,
$limiterOptions);
$limiterOptions['limit'
] = 5 *
$config['max_attempts'
];
$this->
registerRateLimiter($container,
$globalId = '_login_global_'.
$firewallName,
$limiterOptions);
$container->
register($config['limiter'
] = 'security.login_throttling.'.
$firewallName.'.limiter', DefaultLoginRateLimiter::
class) ->
addArgument(new Reference('limiter.'.
$globalId)) ->
addArgument(new Reference('limiter.'.
$localId)) ->
addArgument('%kernel.secret%'
) ;
}