Guest User

JdbcUserFederationProviderFactory

a guest
Oct 5th, 2015
268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.71 KB | None | 0 0
  1. package com.imetrik.saas.server.services.insuranceWebUIBackend.dao.federation;
  2.  
  3. import org.keycloak.Config;
  4. import org.keycloak.models.*;
  5. import org.skife.jdbi.v2.DBI;
  6.  
  7. import java.util.Date;
  8. import java.util.HashSet;
  9. import java.util.Set;
  10.  
  11. /**
  12.  * User: Remi
  13.  * Date: 2015-10-05
  14.  * Time: 12:20 PM
  15.  */
  16. public class JdbcUserFederationProviderFactory implements UserFederationProviderFactory {
  17.     static final Set<String> configOptions = new HashSet<String>();
  18.     static DBI dbi;
  19.  
  20.     static {
  21.         configOptions.add("jdbcUrl");
  22.         configOptions.add("jdbcUsername");
  23.         configOptions.add("jdbcPassword");
  24.     }
  25.  
  26.     @Override
  27.     public UserFederationProvider getInstance(KeycloakSession session, UserFederationProviderModel model) {
  28.         String jdbcURL = model.getConfig().get("jdbcUrl");
  29.         if (jdbcURL == null) {
  30.             throw new IllegalStateException("jdbcUrl attribute not configured for provider");
  31.         }
  32.         String jdbcUsername = model.getConfig().get("jdbcUsername");
  33.         if (jdbcUsername == null) {
  34.             throw new IllegalStateException("jdbcUsername attribute not configured for provider");
  35.         }
  36.         String jdbcPassword = model.getConfig().get("jdbcPassword");
  37.         if (jdbcPassword == null) {
  38.             throw new IllegalStateException("jdbcPassword attribute not configured for provider");
  39.         }
  40.         dbi = new DBI(jdbcURL, jdbcUsername, jdbcPassword);
  41.         try {
  42.             dbi.open().close();
  43.         } catch (Exception x) {
  44.             dbi = null;
  45.             throw new IllegalStateException("Invalid configuration for provider", x);
  46.         }
  47.         return new JdbcUserFederationProvider(session, model, dbi);
  48.     }
  49.  
  50.     @Override
  51.     public Set<String> getConfigurationOptions() {
  52.         return configOptions;
  53.     }
  54.  
  55.     @Override
  56.     public String getId() {
  57.         return "jdbc-imetrik";
  58.     }
  59.  
  60.     //Note : we don't synchronize this way
  61.     @Override
  62.     public UserFederationSyncResult syncAllUsers(KeycloakSessionFactory sessionFactory, String realmId, UserFederationProviderModel model) {
  63.         return UserFederationSyncResult.empty();
  64.     }
  65.  
  66.     @Override
  67.     public UserFederationSyncResult syncChangedUsers(KeycloakSessionFactory sessionFactory, String realmId, UserFederationProviderModel model, Date lastSync) {
  68.         return syncAllUsers(sessionFactory, realmId, model);
  69.     }
  70.  
  71.     @Override
  72.     public UserFederationProvider create(KeycloakSession session) {
  73.         return null;
  74.     }
  75.  
  76.     @Override
  77.     public void init(Config.Scope config) {
  78.  
  79.     }
  80.  
  81.     @Override
  82.     public void postInit(KeycloakSessionFactory factory) {
  83.  
  84.     }
  85.  
  86.     @Override
  87.     public void close() {
  88.  
  89.     }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment