use of org.keycloak.models.UserLoginFailureModel in project keycloak by keycloak.
the class UserSessionProviderTest method loginFailures.
@Test
public void loginFailures() {
testingClient.server().run((KeycloakSession kcSession) -> {
RealmModel realm = kcSession.realms().getRealmByName("test");
UserLoginFailureModel failure1 = kcSession.loginFailures().addUserLoginFailure(realm, "user1");
failure1.incrementFailures();
UserLoginFailureModel failure2 = kcSession.loginFailures().addUserLoginFailure(realm, "user2");
failure2.incrementFailures();
failure2.incrementFailures();
});
testingClient.server().run((KeycloakSession kcSession) -> {
RealmModel realm = kcSession.realms().getRealmByName("test");
UserLoginFailureModel failure1 = kcSession.loginFailures().getUserLoginFailure(realm, "user1");
assertEquals(1, failure1.getNumFailures());
UserLoginFailureModel failure2 = kcSession.loginFailures().getUserLoginFailure(realm, "user2");
assertEquals(2, failure2.getNumFailures());
// Add the failure, which already exists
failure1.incrementFailures();
assertEquals(2, failure1.getNumFailures());
failure1 = kcSession.loginFailures().getUserLoginFailure(realm, "user1");
failure1.clearFailures();
failure1 = kcSession.loginFailures().getUserLoginFailure(realm, "user1");
assertEquals(0, failure1.getNumFailures());
});
testingClient.server().run((KeycloakSession kcSession) -> {
RealmModel realm = kcSession.realms().getRealmByName("test");
kcSession.loginFailures().removeUserLoginFailure(realm, "user1");
});
testingClient.server().run((KeycloakSession kcSession) -> {
RealmModel realm = kcSession.realms().getRealmByName("test");
assertNull(kcSession.loginFailures().getUserLoginFailure(realm, "user1"));
kcSession.loginFailures().removeAllUserLoginFailures(realm);
});
testingClient.server().run((KeycloakSession kcSession) -> {
RealmModel realm = kcSession.realms().getRealmByName("test");
assertNull(kcSession.loginFailures().getUserLoginFailure(realm, "user1"));
assertNull(kcSession.loginFailures().getUserLoginFailure(realm, "user2"));
});
}
use of org.keycloak.models.UserLoginFailureModel in project keycloak by keycloak.
the class DefaultBruteForceProtector method success.
private void success(KeycloakSession session, LoginEvent event) {
String userId = event.userId;
UserLoginFailureModel user = getUserModel(session, event);
if (user == null)
return;
if (logger.isDebugEnabled()) {
UserModel model = session.users().getUserById(getRealmModel(session, event), userId);
logger.debugv("user {0} successfully logged in, clearing all failures", model.getUsername());
}
user.clearFailures();
}
use of org.keycloak.models.UserLoginFailureModel in project keycloak by keycloak.
the class DefaultBruteForceProtector method getUserModel.
protected UserLoginFailureModel getUserModel(KeycloakSession session, LoginEvent event) {
RealmModel realm = getRealmModel(session, event);
if (realm == null)
return null;
UserLoginFailureModel user = session.loginFailures().getUserLoginFailure(realm, event.userId);
if (user == null)
return null;
return user;
}
use of org.keycloak.models.UserLoginFailureModel in project keycloak by keycloak.
the class BruteForceCrossDCTest method addUserLoginFailure.
// resolution on Wildfly: make deployment available on both dc0_1 and dc1_1, see @Deployment methods
private void addUserLoginFailure(KeycloakTestingClient testingClient) throws URISyntaxException, IOException {
testingClient.server().run(session -> {
RealmModel realm = session.realms().getRealmByName(REALM_NAME);
UserLoginFailureModel loginFailure = session.loginFailures().addUserLoginFailure(realm, "login-test-1");
loginFailure.incrementFailures();
});
}
Aggregations