package at.asitplus.eidas.specific.connector.test.config.dummy; import java.io.IOException; import java.io.InputStream; import java.net.URI; import java.net.URISyntaxException; import java.util.Map; import org.apache.commons.lang3.StringUtils; import at.gv.egiz.eaaf.core.test.dummy.DummyAuthConfigMap; import lombok.Setter; /** * MS-Connector specific dummy basic-config implementation. * * @author tlenz * */ public class MsConnectorDummyConfigMap extends DummyAuthConfigMap { private static final String CONFIG_PREFIX = "eidas.ms."; @Setter private String configRootDirSufix; /** * Creates an emptry configuration. * */ public MsConnectorDummyConfigMap() { } /** * Dummy Application-configuration. * * @param configIs Property based configuration * @throws IOException In case of an configuration read error */ public MsConnectorDummyConfigMap(final InputStream configIs) throws IOException { super(configIs); } /** * Dummy Application-configuration. * * @param path Path to property based configuration * @throws IOException In case of an configuration read error */ public MsConnectorDummyConfigMap(final String path) throws IOException { super(path); } @Override public String getBasicConfiguration(final String key) { return super.getBasicConfiguration(addPrefixToKey(key)); } @Override public Map getBasicConfigurationWithPrefix(final String prefix) { return super.getBasicConfigurationWithPrefix(addPrefixToKey(prefix)); } @Override public void putConfigValue(final String key, final String value) { super.putConfigValue(addPrefixToKey(key), value); } @Override public void removeConfigValue(final String key) { super.removeConfigValue(addPrefixToKey(key)); } @Override public URI getConfigurationRootDirectory() { URI basePath = super.getConfigurationRootDirectory(); if (StringUtils.isNotEmpty(configRootDirSufix)) { try { return new URI(basePath.toString() + configRootDirSufix); } catch (URISyntaxException e) { throw new RuntimeException("Wrong Dummyconfig", e); } } else { return basePath; } } private String addPrefixToKey(final String key) { if (key.startsWith(CONFIG_PREFIX)) { return key; } else { return CONFIG_PREFIX + key; } } }