@Test public void shouldSetConfigAttributesForNonSecureProperty() { ConfigurationProperty configurationProperty = new ConfigurationProperty(); HashMap attributes = new HashMap(); HashMap keyMap = new HashMap(); keyMap.put("name", "fooKey"); attributes.put(ConfigurationProperty.CONFIGURATION_KEY, keyMap); HashMap valueMap = new HashMap(); valueMap.put("value", "fooValue"); attributes.put(ConfigurationProperty.CONFIGURATION_VALUE, valueMap); PackageConfigurations metadata = new PackageConfigurations(); metadata.addConfiguration(new PackageConfiguration("fooKey", null)); attributes.put(Configuration.METADATA, metadata); configurationProperty.setConfigAttributes(attributes,null); assertThat(configurationProperty.getConfigurationKey().getName(), is("fooKey")); assertThat(configurationProperty.getConfigurationValue().getValue(), is("fooValue")); }
@Test public void shouldOnlyDisplayFieldsWhichAreNonSecureAndPartOfIdentityInGetConfigForDisplayWhenPluginExists() throws Exception { PackageConfigurations repositoryConfiguration = new PackageConfigurations(); repositoryConfiguration.addConfiguration(new PackageConfiguration("key1").with(PART_OF_IDENTITY, true).with(SECURE, false)); repositoryConfiguration.addConfiguration(new PackageConfiguration("key2").with(PART_OF_IDENTITY, false).with(SECURE, false)); repositoryConfiguration.addConfiguration(new PackageConfiguration("key3").with(PART_OF_IDENTITY, true).with(SECURE, true)); repositoryConfiguration.addConfiguration(new PackageConfiguration("key4").with(PART_OF_IDENTITY, false).with(SECURE, true)); repositoryConfiguration.addConfiguration(new PackageConfiguration("key5").with(PART_OF_IDENTITY, true).with(SECURE, false)); RepositoryMetadataStore.getInstance().addMetadataFor("plugin1", repositoryConfiguration); Configuration configuration = new Configuration(create("key1", false, "value1"), create("key2", false, "value2"), create("key3", true, "value3"), create("key4", true, "value4"), create("key5", false, "value5")); PackageRepository repository = PackageRepositoryMother.create("repo1", "repo1-name", "plugin1", "1", configuration); assertThat(repository.getConfigForDisplay(), is("Repository: [key1=value1, key5=value5]")); }
@Test public void shouldSetConfigAttributes() throws Exception { PackageDefinition definition = new PackageDefinition(); String pluginId = "plugin"; Map config = createPackageDefinitionConfiguration("package-name", pluginId, new ConfigurationHolder("key1", "value1"), new ConfigurationHolder("key2", "value2", "encrypted-value", true, "1"), new ConfigurationHolder("key3", "test", "encrypted-value", true, "0")); PackageConfigurations metadata = new PackageConfigurations(); metadata.addConfiguration(new PackageConfiguration("key1")); metadata.addConfiguration(new PackageConfiguration("key2").with(PackageConfiguration.SECURE, true)); metadata.addConfiguration(new PackageConfiguration("key3").with(PackageConfiguration.SECURE, true)); PackageMetadataStore.getInstance().addMetadataFor(pluginId, metadata); definition.setRepository(PackageRepositoryMother.create("1")); definition.setConfigAttributes(config); String encryptedValue = new GoCipher().encrypt("value2"); assertThat(definition.getName(), is("package-name")); assertThat(definition.getConfiguration().size(), is(3)); assertThat(definition.getConfiguration().getProperty("key1").getConfigurationValue().getValue(), is("value1")); assertThat(definition.getConfiguration().getProperty("key1").getEncryptedConfigurationValue(), is(nullValue())); assertThat(definition.getConfiguration().getProperty("key2").getEncryptedValue(), is(encryptedValue)); assertThat(definition.getConfiguration().getProperty("key2").getConfigurationValue(), is(nullValue())); assertThat(definition.getConfiguration().getProperty("key3").getEncryptedValue(), is("encrypted-value")); assertThat(definition.getConfiguration().getProperty("key3").getConfigurationValue(), is(nullValue())); }
packageConfigurations.addConfiguration(new PackageConfiguration("key1").with(SECURE, true)); packageConfigurations.addConfiguration(new PackageConfiguration("key2").with(SECURE, false)); PackageMetadataStore.getInstance().addMetadataFor("plugin-id", packageConfigurations); repositoryConfiguration.addConfiguration(new PackageConfiguration("key1").with(SECURE, true)); repositoryConfiguration.addConfiguration(new PackageConfiguration("key2").with(SECURE, false)); RepositoryMetadataStore.getInstance().addMetadataFor("plugin-id", repositoryConfiguration);
@Test public void shouldMakeConfigurationSecureBasedOnMetadata() throws Exception { /*secure property is set based on metadata*/ ConfigurationProperty secureProperty = new ConfigurationProperty(new ConfigurationKey("key1"), new ConfigurationValue("value1"), null, new GoCipher()); ConfigurationProperty nonSecureProperty = new ConfigurationProperty(new ConfigurationKey("key2"), new ConfigurationValue("value2"), null, new GoCipher()); PackageDefinition packageDefinition = new PackageDefinition("go", "name", new Configuration(secureProperty, nonSecureProperty)); PackageRepository packageRepository = new PackageRepository(); packageRepository.setPluginConfiguration(new PluginConfiguration("plugin-id", "1.0")); packageDefinition.setRepository(packageRepository); PackageConfigurations packageConfigurations = new PackageConfigurations(); packageConfigurations.addConfiguration(new PackageConfiguration("key1").with(PackageConfiguration.SECURE, true)); packageConfigurations.addConfiguration(new PackageConfiguration("key2").with(PackageConfiguration.SECURE, false)); PackageMetadataStore.getInstance().addMetadataFor("plugin-id", packageConfigurations); packageDefinition.applyPackagePluginMetadata("plugin-id"); assertThat(secureProperty.isSecure(), is(true)); assertThat(nonSecureProperty.isSecure(), is(false)); }
public static CruiseConfig configWithPackageRepo(String... ids) throws Exception { final CruiseConfig config = new BasicCruiseConfig(); PackageConfigurations configuration = new PackageConfigurations(); configuration.addConfiguration(new PackageConfiguration("key1")); configuration.addConfiguration(new PackageConfiguration("key2").with(PackageConfiguration.SECURE, true)); RepositoryMetadataStore.getInstance().addMetadataFor("plugin-1", configuration); for (String id : ids) { PackageRepository packageRepository = new PackageRepository(); packageRepository.setId(id); packageRepository.setName("name" + id); packageRepository.setPluginConfiguration(new PluginConfiguration("plugin-1", "1.0.0")); packageRepository.setPackages(new Packages(PackageDefinitionMother.create(id + "-pkg-1", packageRepository), PackageDefinitionMother.create(id + "-pkg-2", packageRepository))); GoCipher cipher = new GoCipher(); ConfigurationProperty p1 = new ConfigurationProperty(new ConfigurationKey("key1"), new ConfigurationValue("value1")); ConfigurationProperty p2 = new ConfigurationProperty(new ConfigurationKey("key2"), null, new EncryptedConfigurationValue(cipher.encrypt("value2")), cipher); packageRepository.setConfiguration(new Configuration(p1, p2)); config.setPackageRepositories(new PackageRepositories(packageRepository)); } return config; }
packageConfigurations.addConfiguration(new PackageConfiguration("plain")); packageConfigurations.addConfiguration(new PackageConfiguration("secure-one").with(PackageConfiguration.SECURE, true)); packageConfigurations.addConfiguration(new PackageConfiguration("secure-two").with(PackageConfiguration.SECURE, true)); PackageMetadataStore.getInstance().addMetadataFor("plugin-id", packageConfigurations); RepositoryMetadataStore.getInstance().addMetadataFor("plugin-id", packageConfigurations);