/** * Copyright (c) Codice Foundation * <p> * This is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser * General Public License as published by the Free Software Foundation, either version 3 of the * License, or any later version. * <p> * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. A copy of the GNU Lesser General Public License * is distributed along with this program and can be found at * <http://www.gnu.org/licenses/lgpl.html>. */ package org.codice.ddf.itests.common.config; import java.io.IOException; import java.util.Dictionary; import java.util.Hashtable; import java.util.List; import org.codice.ddf.itests.common.AdminConfig; import org.osgi.service.cm.Configuration; public class ConfigureTestCommons { public static final String METACARD_VALIDATITY_FILTER_PLUGIN_SERVICE_PID = "ddf.catalog.metacard.validation.MetacardValidityFilterPlugin"; public static final String METACARD_VALIDATITY_MARKER_PLUGIN_SERVICE_PID = "ddf.catalog.metacard.validation.MetacardValidityMarkerPlugin"; public static final String CACHING_FEDERATION_STRATEGY_PID = "ddf.catalog.federation.impl.CachingFederationStrategy"; public static final String METACARD_ATTRIBUTE_SECURITY_POLICY_PLUGIN_PID = "org.codice.ddf.catalog.security.policy.metacard.MetacardAttributeSecurityPolicyPlugin"; public static final String AUTH_Z_REALM_PID = "ddf.security.pdp.realm.AuthzRealm"; public static void configureMetacardValidityFilterPlugin(List<String> securityAttributeMappings, AdminConfig configAdmin) throws IOException { Configuration config = configAdmin.getConfiguration( METACARD_VALIDATITY_FILTER_PLUGIN_SERVICE_PID, null); Dictionary properties = new Hashtable<>(); properties.put("attributeMap", securityAttributeMappings); config.update(properties); } public static void configureShowInvalidMetacards(String showErrors, String showWarnings, AdminConfig configAdmin) throws IOException { Configuration config = configAdmin.getConfiguration(CACHING_FEDERATION_STRATEGY_PID, null); Dictionary properties = new Hashtable<>(); properties.put("showErrors", showErrors); properties.put("showWarnings", showWarnings); config.update(properties); } public static void configureFilterInvalidMetacards(String filterErrors, String filterWarnings, AdminConfig configAdmin) throws IOException { Configuration config = configAdmin.getConfiguration( METACARD_VALIDATITY_FILTER_PLUGIN_SERVICE_PID, null); Dictionary properties = new Hashtable<>(); properties.put("filterErrors", filterErrors); properties.put("filterWarnings", filterWarnings); config.update(properties); } public static void configureEnforceValidityErrorsAndWarnings(String enforceErrors, String enforceWarnings, AdminConfig configAdmin) throws IOException { Configuration config = configAdmin.getConfiguration( METACARD_VALIDATITY_MARKER_PLUGIN_SERVICE_PID, null); Dictionary properties = new Hashtable<>(); properties.put("enforceErrors", enforceErrors); properties.put("enforceWarnings", enforceWarnings); config.update(properties); } public static void configureEnforcedMetacardValidators(List<String> enforcedValidators, AdminConfig configAdmin) throws IOException { // Update metacardMarkerPlugin config with no enforcedMetacardValidators Configuration config = configAdmin.getConfiguration( METACARD_VALIDATITY_MARKER_PLUGIN_SERVICE_PID, null); Dictionary<String, Object> properties = new Hashtable<>(); properties.put("enforcedMetacardValidators", enforcedValidators); config.update(properties); } public static Dictionary<String, Object> configureMetacardAttributeSecurityFiltering( List<String> intersectAttributes, List<String> unionAttributes, AdminConfig configAdmin) throws IOException { Dictionary properties = new Hashtable<>(); properties.put("intersectMetacardAttributes", intersectAttributes); properties.put("unionMetacardAttributes", unionAttributes); return configureMetacardAttributeSecurityFiltering(properties, configAdmin); } public static Dictionary<String, Object> configureMetacardAttributeSecurityFiltering( Dictionary<String, Object> properties, AdminConfig configAdmin) throws IOException { Configuration config = configAdmin.getConfiguration( METACARD_ATTRIBUTE_SECURITY_POLICY_PLUGIN_PID, null); Dictionary oldProperties = config.getProperties(); config.update(properties); return oldProperties; } public static Dictionary<String, Object> configureAuthZRealm(List<String> attributes, AdminConfig configAdmin) throws IOException { Dictionary properties = new Hashtable<>(); properties.put("matchOneMap", attributes); return configureAuthZRealm(properties, configAdmin); } public static Dictionary<String, Object> configureAuthZRealm( Dictionary<String, Object> properties, AdminConfig configAdmin) throws IOException { Configuration config = configAdmin.getConfiguration(AUTH_Z_REALM_PID, null); Dictionary oldProperties = config.getProperties(); config.update(properties); return oldProperties; } }