/** * Removes a user group service configuration. * * @param config The user group service configuration. */ public void removeUserGroupService(SecurityUserGroupServiceConfig config) throws IOException, SecurityConfigException { SecurityConfigValidator validator = SecurityConfigValidator.getConfigurationValiator( GeoServerUserGroupService.class, config.getClassName()); validator.validateRemoveUserGroupService(config); userGroupServices.remove(config.getName()); userGroupServiceHelper.removeConfig(config.getName()); }
/** * Additional Validation. Removing this configuration may also remove the file where the users * and groups are contained. (the file may be stored within the configuration sub directory). * The design insists on an empty user/group file. */ @Override public void validateRemoveUserGroupService(SecurityUserGroupServiceConfig config) throws SecurityConfigException { XMLUserGroupServiceConfig xmlConfig = (XMLUserGroupServiceConfig) config; File file = new File(xmlConfig.getFileName()); // check if if file name is absolute and not in standard role directory try { if (file.isAbsolute() && !file.getCanonicalPath() .startsWith( manager.userGroup() .get(config.getName()) .file() .getCanonicalPath() + File.separator)) return; // file in security sub dir, check if roles exists GeoServerUserGroupService service = manager.loadUserGroupService(config.getName()); if (service.getGroupCount() > 0 || service.getUserCount() > 0) { throw createSecurityException(USERGROUP_SERVICE_NOT_EMPTY_$1, config.getName()); } } catch (IOException e) { throw new RuntimeException(); } super.validateRemoveUserGroupService(config); }
@Override protected void validateRemoveConfig(SecurityUserGroupServiceConfig config) throws SecurityConfigException { SecurityConfigValidator.getConfigurationValiator( GeoServerUserGroupService.class, config.getClassName()) .validateRemoveUserGroupService(config); }
@Override protected void validateRemoveConfig(SecurityUserGroupServiceConfig config) throws SecurityConfigException { SecurityConfigValidator.getConfigurationValiator(GeoServerUserGroupService.class, config.getClassName()).validateRemoveUserGroupService(config); }
@Override protected void validateRemoveConfig(SecurityUserGroupServiceConfig config) throws SecurityConfigException { SecurityConfigValidator.getConfigurationValiator(GeoServerUserGroupService.class, config.getClassName()).validateRemoveUserGroupService(config); }
validator.validateRemoveUserGroupService(config); fail("no name should fail"); getSecurityManager().removeUserGroupService(config); validator.validateRemoveUserGroupService(config); fail("active user group service should fail");