public static void install(SecurityConfiguration config, Map<String, ClientSecurityConfiguration> clientSecurityConfigurationMap) throws Exception { SecurityUtils.install(config); // install dynamic JAAS entries for (SecurityModuleFactory factory : config.getSecurityModuleFactories()) { if (factory instanceof JaasModuleFactory) { DynamicConfiguration jaasConf = (DynamicConfiguration) javax.security.auth.login.Configuration.getConfiguration(); for (Map.Entry<String, ClientSecurityConfiguration> e : clientSecurityConfigurationMap.entrySet()) { AppConfigurationEntry entry = KerberosUtils.keytabEntry( e.getValue().getKeytab(), e.getValue().getPrincipal()); jaasConf.addAppConfigurationEntry(e.getKey(), entry); } break; } } }
@Override public void install(SecurityUtils.SecurityConfiguration securityConfig) throws SecurityInstallException { // ensure that a config file is always defined, for compatibility with // ZK and Kafka which check for the system property and existence of the file priorConfigFile = System.getProperty(JAVA_SECURITY_AUTH_LOGIN_CONFIG, null); if (priorConfigFile == null) { File configFile = generateDefaultConfigFile(); System.setProperty(JAVA_SECURITY_AUTH_LOGIN_CONFIG, configFile.getAbsolutePath()); } // read the JAAS configuration file priorConfig = javax.security.auth.login.Configuration.getConfiguration(); // construct a dynamic JAAS configuration currentConfig = new DynamicConfiguration(priorConfig); // wire up the configured JAAS login contexts to use the krb5 entries AppConfigurationEntry[] krb5Entries = getAppConfigurationEntries(securityConfig); if(krb5Entries != null) { for (String app : securityConfig.getLoginContextNames()) { currentConfig.addAppConfigurationEntry(app, krb5Entries); } } javax.security.auth.login.Configuration.setConfiguration(currentConfig); }
/** * Add entries for the given application name. */ public void addAppConfigurationEntry(String name, AppConfigurationEntry... entry) { final AppConfigurationEntry[] existing = dynamicEntries.get(name); final AppConfigurationEntry[] updated; if (existing == null) { updated = Arrays.copyOf(entry, entry.length); } else { updated = merge(existing, entry); } dynamicEntries.put(name, updated); }
@Override public void install() throws SecurityInstallException { // ensure that a config file is always defined, for compatibility with // ZK and Kafka which check for the system property and existence of the file priorConfigFile = System.getProperty(JAVA_SECURITY_AUTH_LOGIN_CONFIG, null); if (priorConfigFile == null) { File configFile = generateDefaultConfigFile(); System.setProperty(JAVA_SECURITY_AUTH_LOGIN_CONFIG, configFile.getAbsolutePath()); } // read the JAAS configuration file priorConfig = javax.security.auth.login.Configuration.getConfiguration(); // construct a dynamic JAAS configuration currentConfig = new DynamicConfiguration(priorConfig); // wire up the configured JAAS login contexts to use the krb5 entries AppConfigurationEntry[] krb5Entries = getAppConfigurationEntries(securityConfig); if (krb5Entries != null) { for (String app : securityConfig.getLoginContextNames()) { currentConfig.addAppConfigurationEntry(app, krb5Entries); } } javax.security.auth.login.Configuration.setConfiguration(currentConfig); }
/** * Add entries for the given application name. */ public void addAppConfigurationEntry(String name, AppConfigurationEntry... entry) { final AppConfigurationEntry[] existing = dynamicEntries.get(name); final AppConfigurationEntry[] updated; if(existing == null) { updated = Arrays.copyOf(entry, entry.length); } else { updated = merge(existing, entry); } dynamicEntries.put(name, updated); }
@Override public void install() throws SecurityInstallException { // ensure that a config file is always defined, for compatibility with // ZK and Kafka which check for the system property and existence of the file priorConfigFile = System.getProperty(JAVA_SECURITY_AUTH_LOGIN_CONFIG, null); if (priorConfigFile == null) { File configFile = generateDefaultConfigFile(); System.setProperty(JAVA_SECURITY_AUTH_LOGIN_CONFIG, configFile.getAbsolutePath()); } // read the JAAS configuration file priorConfig = javax.security.auth.login.Configuration.getConfiguration(); // construct a dynamic JAAS configuration currentConfig = new DynamicConfiguration(priorConfig); // wire up the configured JAAS login contexts to use the krb5 entries AppConfigurationEntry[] krb5Entries = getAppConfigurationEntries(securityConfig); if (krb5Entries != null) { for (String app : securityConfig.getLoginContextNames()) { currentConfig.addAppConfigurationEntry(app, krb5Entries); } } javax.security.auth.login.Configuration.setConfiguration(currentConfig); }
public static void install(SecurityUtils.SecurityConfiguration config, Map<String, ClientSecurityConfiguration> clientSecurityConfigurationMap) throws Exception { SecurityUtils.install(config); // install dynamic JAAS entries checkArgument(config.getSecurityModules().contains(JaasModule.class)); DynamicConfiguration jaasConf = (DynamicConfiguration) javax.security.auth.login.Configuration.getConfiguration(); for(Map.Entry<String,ClientSecurityConfiguration> e : clientSecurityConfigurationMap.entrySet()) { AppConfigurationEntry entry = KerberosUtils.keytabEntry(e.getValue().getKeytab(), e.getValue().getPrincipal()); jaasConf.addAppConfigurationEntry(e.getKey(), entry); } }
/** * Add entries for the given application name. */ public void addAppConfigurationEntry(String name, AppConfigurationEntry... entry) { final AppConfigurationEntry[] existing = dynamicEntries.get(name); final AppConfigurationEntry[] updated; if (existing == null) { updated = Arrays.copyOf(entry, entry.length); } else { updated = merge(existing, entry); } dynamicEntries.put(name, updated); }
@Override public void install() throws SecurityInstallException { // ensure that a config file is always defined, for compatibility with // ZK and Kafka which check for the system property and existence of the file priorConfigFile = System.getProperty(JAVA_SECURITY_AUTH_LOGIN_CONFIG, null); if (priorConfigFile == null) { File configFile = generateDefaultConfigFile(); System.setProperty(JAVA_SECURITY_AUTH_LOGIN_CONFIG, configFile.getAbsolutePath()); } // read the JAAS configuration file priorConfig = javax.security.auth.login.Configuration.getConfiguration(); // construct a dynamic JAAS configuration currentConfig = new DynamicConfiguration(priorConfig); // wire up the configured JAAS login contexts to use the krb5 entries AppConfigurationEntry[] krb5Entries = getAppConfigurationEntries(securityConfig); if (krb5Entries != null) { for (String app : securityConfig.getLoginContextNames()) { currentConfig.addAppConfigurationEntry(app, krb5Entries); } } javax.security.auth.login.Configuration.setConfiguration(currentConfig); }
public static void install(SecurityConfiguration config, Map<String, ClientSecurityConfiguration> clientSecurityConfigurationMap) throws Exception { SecurityUtils.install(config); // install dynamic JAAS entries for (SecurityModuleFactory factory : config.getSecurityModuleFactories()) { if (factory instanceof JaasModuleFactory) { DynamicConfiguration jaasConf = (DynamicConfiguration) javax.security.auth.login.Configuration.getConfiguration(); for (Map.Entry<String, ClientSecurityConfiguration> e : clientSecurityConfigurationMap.entrySet()) { AppConfigurationEntry entry = KerberosUtils.keytabEntry( e.getValue().getKeytab(), e.getValue().getPrincipal()); jaasConf.addAppConfigurationEntry(e.getKey(), entry); } break; } } }
/** * Add entries for the given application name. */ public void addAppConfigurationEntry(String name, AppConfigurationEntry... entry) { final AppConfigurationEntry[] existing = dynamicEntries.get(name); final AppConfigurationEntry[] updated; if (existing == null) { updated = Arrays.copyOf(entry, entry.length); } else { updated = merge(existing, entry); } dynamicEntries.put(name, updated); }
public static void install(SecurityConfiguration config, Map<String, ClientSecurityConfiguration> clientSecurityConfigurationMap) throws Exception { SecurityUtils.install(config); // install dynamic JAAS entries for (SecurityModuleFactory factory : config.getSecurityModuleFactories()) { if (factory instanceof JaasModuleFactory) { DynamicConfiguration jaasConf = (DynamicConfiguration) javax.security.auth.login.Configuration.getConfiguration(); for (Map.Entry<String, ClientSecurityConfiguration> e : clientSecurityConfigurationMap.entrySet()) { AppConfigurationEntry entry = KerberosUtils.keytabEntry( e.getValue().getKeytab(), e.getValue().getPrincipal()); jaasConf.addAppConfigurationEntry(e.getKey(), entry); } break; } } }
/** * Retrieve the AppConfigurationEntries for the specified <i>name</i> * from this Configuration. * * @param name the name used to index the Configuration. * * @return an array of AppConfigurationEntries for the specified <i>name</i> * from this Configuration, or null if there are no entries * for the specified <i>name</i> */ @Override public AppConfigurationEntry[] getAppConfigurationEntry(String name) { AppConfigurationEntry[] entry = null; if (delegate != null) { entry = delegate.getAppConfigurationEntry(name); } final AppConfigurationEntry[] existing = dynamicEntries.get(name); if (existing != null) { if (entry != null) { entry = merge(entry, existing); } else { entry = Arrays.copyOf(existing, existing.length); } } return entry; }
public static void install(SecurityConfiguration config, Map<String, ClientSecurityConfiguration> clientSecurityConfigurationMap) throws Exception { SecurityUtils.install(config); // install dynamic JAAS entries for (SecurityModuleFactory factory : config.getSecurityModuleFactories()) { if (factory instanceof JaasModuleFactory) { DynamicConfiguration jaasConf = (DynamicConfiguration) javax.security.auth.login.Configuration.getConfiguration(); for (Map.Entry<String, ClientSecurityConfiguration> e : clientSecurityConfigurationMap.entrySet()) { AppConfigurationEntry entry = KerberosUtils.keytabEntry( e.getValue().getKeytab(), e.getValue().getPrincipal()); jaasConf.addAppConfigurationEntry(e.getKey(), entry); } break; } } }
/** * Retrieve the AppConfigurationEntries for the specified <i>name</i> * from this Configuration. * * @param name the name used to index the Configuration. * * @return an array of AppConfigurationEntries for the specified <i>name</i> * from this Configuration, or null if there are no entries * for the specified <i>name</i> */ @Override public AppConfigurationEntry[] getAppConfigurationEntry(String name) { AppConfigurationEntry[] entry = null; if (delegate != null) { entry = delegate.getAppConfigurationEntry(name); } final AppConfigurationEntry[] existing = dynamicEntries.get(name); if (existing != null) { if (entry != null) { entry = merge(entry, existing); } else { entry = Arrays.copyOf(existing, existing.length); } } return entry; }
/** * Retrieve the AppConfigurationEntries for the specified <i>name</i> * from this Configuration. * * @param name the name used to index the Configuration. * * @return an array of AppConfigurationEntries for the specified <i>name</i> * from this Configuration, or null if there are no entries * for the specified <i>name</i> */ @Override public AppConfigurationEntry[] getAppConfigurationEntry(String name) { AppConfigurationEntry[] entry = null; if (delegate != null) { entry = delegate.getAppConfigurationEntry(name); } final AppConfigurationEntry[] existing = dynamicEntries.get(name); if (existing != null) { if (entry != null) { entry = merge(entry, existing); } else { entry = Arrays.copyOf(existing, existing.length); } } return entry; }
/** * Retrieve the AppConfigurationEntries for the specified <i>name</i> * from this Configuration. * * <p> * * @param name the name used to index the Configuration. * * @return an array of AppConfigurationEntries for the specified <i>name</i> * from this Configuration, or null if there are no entries * for the specified <i>name</i> */ @Override public AppConfigurationEntry[] getAppConfigurationEntry(String name) { AppConfigurationEntry[] entry = null; if(delegate != null) { entry = delegate.getAppConfigurationEntry(name); } final AppConfigurationEntry[] existing = dynamicEntries.get(name); if(existing != null) { if(entry != null) { entry = merge(entry, existing); } else { entry = Arrays.copyOf(existing, existing.length); } } return entry; }