| ⇢ | C | MfaConfigurationController added | |
| ⇢ | B | RecoveryCodesProvider added | |
| ⇢ | A | TotpProvider added | |
| ⇢ | A | MfaInfoElement added | |
| ⇢ | A | MfaProviderRegistry added | |
| ⇢ | A | MfaStatusViewHelper added | |
| ⇢ | A | AbstractMfaController added | |
| ⇢ | A | MfaController added | |
| ⇢ | A | MfaProviderPropertyManager added | |
| ⇢ | A | MfaAjaxController added | |
| ⋮ | view more | ||
| ⇢ | F | MfaInfoElement::render() added | |
| ⇢ | B | TotpProvider::activate() added | |
| ⇢ | B | RecoveryCodesProvider::handleRequest() added | |
| ⇢ | B | MfaProviderPass::process() added | |
| ⇢ | B | MfaAjaxController::deactivateAction() added | |
| ⇢ | B | AbstractMfaController::initializeMfaConfiguration(... added | |
| ⇢ | B | MfaConfigurationController::activateAction() added | |
| ⇢ | A | RecoveryCodesProvider::unlock() added | |
| ⇢ | A | MfaAjaxController::isAllowedToPerformAction() added | |
| ⇢ | A | RecoveryCodes::generatePlainRecoveryCodes() added | |
| ⋮ | view more | ||
| A | ↘ | B | BackendUserAuthenticator::process() got worse |
| A | ↘ | B | AbstractUserAuthentication::start() got worse |