mirror of
https://github.com/keycloak/keycloak.git
synced 2026-01-06 06:49:53 -06:00
Refactor events to use event store instead of syslog (#36684)
Closes #35091 Signed-off-by: stianst <stianst@gmail.com>
This commit is contained in:
@@ -4,6 +4,7 @@ import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.keycloak.admin.client.Keycloak;
|
||||
import org.keycloak.events.admin.OperationType;
|
||||
import org.keycloak.representations.idm.AdminEventRepresentation;
|
||||
import org.keycloak.representations.idm.RealmRepresentation;
|
||||
import org.keycloak.representations.idm.UserRepresentation;
|
||||
import org.keycloak.testframework.annotations.InjectAdminClient;
|
||||
@@ -13,21 +14,28 @@ import org.keycloak.testframework.annotations.KeycloakIntegrationTest;
|
||||
import org.keycloak.testframework.events.AdminEvents;
|
||||
import org.keycloak.testframework.realm.ManagedRealm;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@KeycloakIntegrationTest
|
||||
public class AdminEventsTest {
|
||||
|
||||
@InjectAdminEvents
|
||||
private AdminEvents adminEvents;
|
||||
|
||||
@InjectAdminClient
|
||||
private Keycloak adminClient;
|
||||
|
||||
@InjectRealm
|
||||
private ManagedRealm realm;
|
||||
|
||||
@InjectAdminEvents
|
||||
private AdminEvents adminEvents;
|
||||
|
||||
@InjectRealm(ref = "master", attachTo = "master")
|
||||
private ManagedRealm master;
|
||||
|
||||
@InjectAdminEvents(ref = "master", realmRef = "master")
|
||||
private AdminEvents masterAdminEvents;
|
||||
|
||||
@InjectAdminClient
|
||||
private Keycloak adminClient;
|
||||
|
||||
@Test
|
||||
public void testAdminEventOnUserCreateAndDelete() {
|
||||
|
||||
String userName = "create_user";
|
||||
|
||||
UserRepresentation userRep = new UserRepresentation();
|
||||
@@ -47,21 +55,23 @@ public class AdminEventsTest {
|
||||
|
||||
@Test
|
||||
public void testAdminEventOnRealmCreateAndUpdate() {
|
||||
master.updateWithCleanup(r -> r.adminEventsEnabled(true));
|
||||
|
||||
String realmName = "create_realm";
|
||||
|
||||
RealmRepresentation realmRep = new RealmRepresentation();
|
||||
realmRep.setRealm(realmName);
|
||||
realmRep.setEnabled(true);
|
||||
realmRep.setAdminEventsEnabled(true);
|
||||
|
||||
adminClient.realms().create(realmRep);
|
||||
|
||||
Assertions.assertEquals(OperationType.CREATE, adminEvents.poll().getOperationType());
|
||||
Assertions.assertEquals(OperationType.CREATE, masterAdminEvents.poll().getOperationType());
|
||||
}
|
||||
|
||||
RealmRepresentation realmRep2 = adminClient.realms().realm(realmName).toRepresentation();
|
||||
realmRep2.setEnabled(false);
|
||||
|
||||
adminClient.realms().realm(realmName).update(realmRep2);
|
||||
@Test
|
||||
public void testAdminEventOnRealmUpdate() {
|
||||
realm.updateWithCleanup(r -> r.editUsernameAllowed(true));
|
||||
|
||||
Assertions.assertEquals(OperationType.UPDATE, adminEvents.poll().getOperationType());
|
||||
}
|
||||
|
||||
@@ -3,43 +3,57 @@ package org.keycloak.test.examples;
|
||||
import com.nimbusds.oauth2.sdk.GeneralException;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.keycloak.events.Event;
|
||||
import org.keycloak.events.EventType;
|
||||
import org.keycloak.testframework.annotations.InjectEvents;
|
||||
import org.keycloak.testframework.annotations.InjectRealm;
|
||||
import org.keycloak.testframework.annotations.KeycloakIntegrationTest;
|
||||
import org.keycloak.testframework.events.Events;
|
||||
import org.keycloak.testframework.oauth.nimbus.OAuthClient;
|
||||
import org.keycloak.testframework.oauth.nimbus.annotations.InjectOAuthClient;
|
||||
import org.keycloak.testframework.ui.annotations.InjectPage;
|
||||
import org.keycloak.testframework.ui.annotations.InjectWebDriver;
|
||||
import org.keycloak.testframework.ui.page.LoginPage;
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.keycloak.testframework.realm.ManagedRealm;
|
||||
import org.keycloak.testframework.remote.timeoffset.InjectTimeOffSet;
|
||||
import org.keycloak.testframework.remote.timeoffset.TimeOffSet;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
|
||||
@KeycloakIntegrationTest
|
||||
public class EventsTest {
|
||||
|
||||
@InjectRealm
|
||||
private ManagedRealm realm;
|
||||
|
||||
@InjectEvents
|
||||
private Events events;
|
||||
|
||||
@InjectOAuthClient
|
||||
private OAuthClient oAuthClient;
|
||||
|
||||
@InjectWebDriver
|
||||
private WebDriver webDriver;
|
||||
|
||||
@InjectPage
|
||||
private LoginPage loginPage;
|
||||
@InjectTimeOffSet
|
||||
TimeOffSet timeOffSet;
|
||||
|
||||
@Test
|
||||
public void testFailedLogin() throws GeneralException, IOException {
|
||||
URL authorizationRequestURL = oAuthClient.authorizationRequest();
|
||||
webDriver.navigate().to(authorizationRequestURL);
|
||||
loginPage.fillLogin("invalid", "invalid");
|
||||
loginPage.submit();
|
||||
public void testFailedLogin() {
|
||||
oAuthClient.resourceOwnerCredentialGrant("invalid", "invalid");
|
||||
|
||||
Assertions.assertEquals(EventType.LOGIN_ERROR, events.poll().getType());
|
||||
Event event = events.poll();
|
||||
Assertions.assertEquals(EventType.LOGIN_ERROR, event.getType());
|
||||
Assertions.assertEquals("invalid", event.getDetails().get("username"));
|
||||
|
||||
oAuthClient.resourceOwnerCredentialGrant("invalid2", "invalid");
|
||||
|
||||
event = events.poll();
|
||||
Assertions.assertEquals(EventType.LOGIN_ERROR, event.getType());
|
||||
Assertions.assertEquals("invalid2", event.getDetails().get("username"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTimeOffset() throws GeneralException, IOException {
|
||||
timeOffSet.set(60);
|
||||
|
||||
oAuthClient.clientCredentialGrant();
|
||||
|
||||
Assertions.assertEquals(EventType.CLIENT_LOGIN, events.poll().getType());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user