Java Code Examples for org.keycloak.models.KeycloakSessionFactory#create()
The following examples show how to use
org.keycloak.models.KeycloakSessionFactory#create() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: KeycloakModelUtils.java From keycloak with Apache License 2.0 | 6 votes |
/** * Wrap given runnable job into KeycloakTransaction. * * @param factory * @param task */ public static void runJobInTransaction(KeycloakSessionFactory factory, KeycloakSessionTask task) { KeycloakSession session = factory.create(); KeycloakTransaction tx = session.getTransactionManager(); try { tx.begin(); task.run(session); if (tx.isActive()) { if (tx.getRollbackOnly()) { tx.rollback(); } else { tx.commit(); } } } catch (RuntimeException re) { if (tx.isActive()) { tx.rollback(); } throw re; } finally { session.close(); } }
Example 2
Source File: QuarkusFilter.java From keycloak with Apache License 2.0 | 6 votes |
@Override public void filter(ContainerRequestContext containerRequestContext) { KeycloakSessionFactory sessionFactory = keycloakApplication.getSessionFactory(); KeycloakSession session = sessionFactory.create(); Resteasy.pushContext(KeycloakSession.class, session); HttpServerRequest request = routingContext.request(); session.getContext().setConnection(createConnection(request)); Resteasy.pushContext(ClientConnection.class, session.getContext().getConnection()); KeycloakTransaction tx = session.getTransactionManager(); Resteasy.pushContext(KeycloakTransaction.class, tx); tx.begin(); }
Example 3
Source File: KeycloakApplication.java From keycloak with Apache License 2.0 | 5 votes |
public static void setupScheduledTasks(final KeycloakSessionFactory sessionFactory) { long interval = Config.scope("scheduled").getLong("interval", 900L) * 1000; KeycloakSession session = sessionFactory.create(); try { TimerProvider timer = session.getProvider(TimerProvider.class); timer.schedule(new ClusterAwareScheduledTaskRunner(sessionFactory, new ClearExpiredEvents(), interval), interval, "ClearExpiredEvents"); timer.schedule(new ClusterAwareScheduledTaskRunner(sessionFactory, new ClearExpiredClientInitialAccessTokens(), interval), interval, "ClearExpiredClientInitialAccessTokens"); timer.schedule(new ScheduledTaskRunner(sessionFactory, new ClearExpiredUserSessions()), interval, ClearExpiredUserSessions.TASK_NAME); new UserStorageSyncManager().bootstrapPeriodic(sessionFactory, timer); } finally { session.close(); } }
Example 4
Source File: QuarkusLifecycleObserver.java From keycloak with Apache License 2.0 | 5 votes |
private void createAdminUser() { String adminUserName = System.getenv(KEYCLOAK_ADMIN_ENV_VAR); String adminPassword = System.getenv(KEYCLOAK_ADMIN_PASSWORD_ENV_VAR); if ((adminUserName == null || adminUserName.trim().length() == 0) || (adminPassword == null || adminPassword.trim().length() == 0)) { return; } KeycloakSessionFactory sessionFactory = application.getSessionFactory(); KeycloakSession session = sessionFactory.create(); KeycloakTransactionManager transaction = session.getTransactionManager(); try { transaction.begin(); new ApplianceBootstrap(session).createMasterRealmUser(adminUserName, adminPassword); ServicesLogger.LOGGER.addUserSuccess(adminUserName, Config.getAdminRealm()); transaction.commit(); } catch (IllegalStateException e) { session.getTransactionManager().rollback(); ServicesLogger.LOGGER.addUserFailedUserExists(adminUserName, Config.getAdminRealm()); } catch (Throwable t) { session.getTransactionManager().rollback(); ServicesLogger.LOGGER.addUserFailed(t, adminUserName, Config.getAdminRealm()); } finally { session.close(); } }
Example 5
Source File: KeycloakSessionServletFilter.java From keycloak with Apache License 2.0 | 4 votes |
@Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { servletRequest.setCharacterEncoding("UTF-8"); final HttpServletRequest request = (HttpServletRequest)servletRequest; KeycloakSessionFactory sessionFactory = (KeycloakSessionFactory) servletRequest.getServletContext().getAttribute(KeycloakSessionFactory.class.getName()); KeycloakSession session = sessionFactory.create(); Resteasy.pushContext(KeycloakSession.class, session); ClientConnection connection = new ClientConnection() { @Override public String getRemoteAddr() { return request.getRemoteAddr(); } @Override public String getRemoteHost() { return request.getRemoteHost(); } @Override public int getRemotePort() { return request.getRemotePort(); } @Override public String getLocalAddr() { return request.getLocalAddr(); } @Override public int getLocalPort() { return request.getLocalPort(); } }; session.getContext().setConnection(connection); Resteasy.pushContext(ClientConnection.class, connection); KeycloakTransaction tx = session.getTransactionManager(); Resteasy.pushContext(KeycloakTransaction.class, tx); tx.begin(); try { filterChain.doFilter(servletRequest, servletResponse); } finally { if (servletRequest.isAsyncStarted()) { servletRequest.getAsyncContext().addListener(createAsyncLifeCycleListener(session)); } else { closeSession(session); } } }
Example 6
Source File: KeycloakSessionServletFilter.java From keycloak with Apache License 2.0 | 4 votes |
@Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { servletRequest.setCharacterEncoding("UTF-8"); final HttpServletRequest request = (HttpServletRequest)servletRequest; KeycloakSessionFactory sessionFactory = (KeycloakSessionFactory) servletRequest.getServletContext().getAttribute(KeycloakSessionFactory.class.getName()); KeycloakSession session = sessionFactory.create(); Resteasy.pushContext(KeycloakSession.class, session); ClientConnection connection = new ClientConnection() { @Override public String getRemoteAddr() { return request.getRemoteAddr(); } @Override public String getRemoteHost() { return request.getRemoteHost(); } @Override public int getRemotePort() { return request.getRemotePort(); } @Override public String getLocalAddr() { return request.getLocalAddr(); } @Override public int getLocalPort() { return request.getLocalPort(); } }; session.getContext().setConnection(connection); Resteasy.pushContext(ClientConnection.class, connection); KeycloakTransaction tx = session.getTransactionManager(); Resteasy.pushContext(KeycloakTransaction.class, tx); tx.begin(); try { filterChain.doFilter(servletRequest, servletResponse); } finally { if (servletRequest.isAsyncStarted()) { servletRequest.getAsyncContext().addListener(createAsyncLifeCycleListener(session)); } else { closeSession(session); } } }