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(); }
+ GeoServerPasswordEncoder.PREFIX_DELIMTER; getSecurityManager().saveSecurityConfig(config); getSecurityManager().updateConfigurationFilesWithEncryptedFields();
config.setConfigPasswordEncrypterName(getPBEPasswordEncoder().getName()); getSecurityManager().saveSecurityConfig(config); getSecurityManager().updateConfigurationFilesWithEncryptedFields();
getSecurityManager().updateConfigurationFilesWithEncryptedFields();