| ⇢ | A | CachingFrameworkStorage added | |
| ⇢ | A | RateLimiterFactory added |
| ⇢ | A | BackendUserAuthenticator::ensureLoginRateLimit() added | |
| ⇢ | A | FrontendUserAuthenticator::ensureLoginRateLimit() added | |
| ⇢ | A | RateLimiterFactory::createLoginRateLimiter() added | |
| ⇢ | A | CachingFrameworkStorage::save() added | |
| ⇢ | A | CachingFrameworkStorage::delete() added | |
| ⇢ | A | CachingFrameworkStorage::__construct() added | |
| ⇢ | A | CachingFrameworkStorage::fetch() added | |
| ⇢ | A | RateLimiterFactory::isIpExcluded() added | |
| ⇢ | A | AbstractUserAuthentication::isActiveLogin() added | |
| A | ↘ | B | FrontendUserAuthenticator::process() got worse |