public UserRepresentation getUserById(String realm, String id) { KeycloakSession session = server.getKeycloakSessionFactory().createSession(); try { return ModelToRepresentation.toRepresentation(session.getRealmByName(realm).getUserById(id)); } finally { session.close(); } }
@Test public void testMigrationModel() { KeycloakSession keycloakSession = keycloakRule.startSession(); Assert.assertEquals( keycloakSession.realms().getMigrationModel().getStoredVersion(), MigrationModel.LATEST_VERSION); keycloakSession.close(); }
public void run() { final ArrayList<LoginEvent> events = new ArrayList<LoginEvent>(TRANSACTION_SIZE + 1); while (run) { try { LoginEvent take = queue.poll(2, TimeUnit.SECONDS); if (take == null) { continue; } try { events.add(take); queue.drainTo(events, TRANSACTION_SIZE); for (LoginEvent event : events) { if (event instanceof FailedLogin) { logFailure(event); } else { logSuccess(event); } } Collections.sort( events); // we sort to avoid deadlock due to ordered updates. Maybe I'm overthinking // this. KeycloakSession session = factory.createSession(); try { for (LoginEvent event : events) { if (event instanceof FailedLogin) { failure(session, event); } } session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); throw e; } finally { for (LoginEvent event : events) { if (event instanceof FailedLogin) { ((FailedLogin) event).latch.countDown(); } } events.clear(); session.close(); } } catch (Exception e) { logger.error("Failed processing event", e); } } catch (InterruptedException e) { break; } finally { shutdownLatch.countDown(); } } }
protected void setupKeycloak() { KeycloakSession session = server.getKeycloakSessionFactory().createSession(); session.getTransaction().begin(); try { RealmManager manager = new RealmManager(session); RealmModel adminstrationRealm = manager.getRealm(Config.getAdminRealm()); configure(manager, adminstrationRealm); session.getTransaction().commit(); } finally { session.close(); } }