/** * Returns the current security configuration. * * <p>In order to make changes to the security configuration client code may make changes to * this object directly, but must call {@link #saveSecurityConfig(SecurityManagerConfig)} in * order to persist changes. */ public SecurityManagerConfig getSecurityConfig() { return new SecurityManagerConfig(this.securityConfig); }
this.securityConfig = new SecurityManagerConfig(config); this.initialized = true;
public synchronized void saveSecurityConfig(SecurityManagerConfig config) throws Exception { SecurityManagerConfig oldConfig = new SecurityManagerConfig(this.securityConfig); SecurityConfigValidator validator = new SecurityConfigValidator(this); validator.validateManagerConfig( (SecurityManagerConfig) config.clone(true), (SecurityManagerConfig) oldConfig.clone(true)); // save the current config to fall back to // The whole try block should run as a transaction, unfortunately // this is not possible with files. try { // set the new configuration init(config); if (config.getConfigPasswordEncrypterName() .equals(oldConfig.getConfigPasswordEncrypterName()) == false) { updateConfigurationFilesWithEncryptedFields(); } // save out new configuration xStreamPersist(security().get(CONFIG_FILENAME), config, globalPersister()); } catch (IOException e) { // exception, revert back to known working config LOGGER.log(Level.SEVERE, "Error saving security config, reverting back to previous", e); init(oldConfig); return; } fireChanged(); }
SecurityManagerConfig config = new SecurityManagerConfig(); config.setRoleServiceName(roleService.getName()); config.getAuthProviderNames().add(authProvider.getName());
@Test public void testMasterConfigValidation() throws Exception { SecurityManagerConfig config = new SecurityManagerConfig(); config.setRoleServiceName(XMLRoleService.DEFAULT_NAME); config.setConfigPasswordEncrypterName(getPBEPasswordEncoder().getName()); validator.validateManagerConfig(config, new SecurityManagerConfig()); validator.validateManagerConfig(config, new SecurityManagerConfig()); fail("invalid password encoder should fail"); } catch (SecurityConfigException ex) { validator.validateManagerConfig(config, new SecurityManagerConfig()); fail("no password encoder should fail"); } catch (SecurityConfigException ex) { config.setConfigPasswordEncrypterName(getStrongPBEPasswordEncoder().getName()); try { validator.validateManagerConfig(config, new SecurityManagerConfig()); fail("invalid strong password encoder should fail"); } catch (SecurityConfigException ex) { validator.validateManagerConfig(config, new SecurityManagerConfig()); fail("unknown role service should fail"); } catch (SecurityConfigException ex) { validator.validateManagerConfig(config, new SecurityManagerConfig()); fail("null role service should fail"); } catch (SecurityConfigException ex) {