Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.imetrik.saas.server.services.insuranceWebUIBackend.dao.federation;
- import org.keycloak.Config;
- import org.keycloak.models.*;
- import org.skife.jdbi.v2.DBI;
- import java.util.Date;
- import java.util.HashSet;
- import java.util.Set;
- /**
- * User: Remi
- * Date: 2015-10-05
- * Time: 12:20 PM
- */
- public class JdbcUserFederationProviderFactory implements UserFederationProviderFactory {
- static final Set<String> configOptions = new HashSet<String>();
- static DBI dbi;
- static {
- configOptions.add("jdbcUrl");
- configOptions.add("jdbcUsername");
- configOptions.add("jdbcPassword");
- }
- @Override
- public UserFederationProvider getInstance(KeycloakSession session, UserFederationProviderModel model) {
- String jdbcURL = model.getConfig().get("jdbcUrl");
- if (jdbcURL == null) {
- throw new IllegalStateException("jdbcUrl attribute not configured for provider");
- }
- String jdbcUsername = model.getConfig().get("jdbcUsername");
- if (jdbcUsername == null) {
- throw new IllegalStateException("jdbcUsername attribute not configured for provider");
- }
- String jdbcPassword = model.getConfig().get("jdbcPassword");
- if (jdbcPassword == null) {
- throw new IllegalStateException("jdbcPassword attribute not configured for provider");
- }
- dbi = new DBI(jdbcURL, jdbcUsername, jdbcPassword);
- try {
- dbi.open().close();
- } catch (Exception x) {
- dbi = null;
- throw new IllegalStateException("Invalid configuration for provider", x);
- }
- return new JdbcUserFederationProvider(session, model, dbi);
- }
- @Override
- public Set<String> getConfigurationOptions() {
- return configOptions;
- }
- @Override
- public String getId() {
- return "jdbc-imetrik";
- }
- //Note : we don't synchronize this way
- @Override
- public UserFederationSyncResult syncAllUsers(KeycloakSessionFactory sessionFactory, String realmId, UserFederationProviderModel model) {
- return UserFederationSyncResult.empty();
- }
- @Override
- public UserFederationSyncResult syncChangedUsers(KeycloakSessionFactory sessionFactory, String realmId, UserFederationProviderModel model, Date lastSync) {
- return syncAllUsers(sessionFactory, realmId, model);
- }
- @Override
- public UserFederationProvider create(KeycloakSession session) {
- return null;
- }
- @Override
- public void init(Config.Scope config) {
- }
- @Override
- public void postInit(KeycloakSessionFactory factory) {
- }
- @Override
- public void close() {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment