/******************************************************************************* *******************************************************************************/ package at.gv.egiz.eaaf.core.impl.idp.conf; import java.util.Collections; import java.util.List; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import at.gv.egiz.eaaf.core.api.data.EAAFConfigConstants; import at.gv.egiz.eaaf.core.api.data.EAAFConstants; import at.gv.egiz.eaaf.core.api.idp.IConfiguration; import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration; import at.gv.egiz.eaaf.core.impl.utils.KeyValueUtils; public class SPConfigurationImpl implements ISPConfiguration { private static final long serialVersionUID = 688541755446463453L; private static final Logger log = LoggerFactory.getLogger(SPConfigurationImpl.class); private final Map spConfiguration; private final List targetAreasWithNoInteralBaseIdRestriction; private final List targetAreasWithNoBaseIdTransmissionRestriction; public SPConfigurationImpl(final Map spConfig, IConfiguration authConfig) { this.spConfiguration = spConfig; //set oa specific restrictions targetAreasWithNoInteralBaseIdRestriction = Collections.unmodifiableList( KeyValueUtils.getListOfCSVValues( authConfig.getBasicConfiguration( CONFIG_KEY_RESTRICTIONS_BASEID_INTERNAL, EAAFConstants.URN_PREFIX_CDID))); targetAreasWithNoBaseIdTransmissionRestriction = Collections.unmodifiableList( KeyValueUtils.getListOfCSVValues( authConfig.getBasicConfiguration( CONFIG_KEY_RESTRICTIONS_BASEID_TRANSMISSION, EAAFConstants.URN_PREFIX_CDID))); if (log.isTraceEnabled()) { log.trace("Internal policy for OA: " + getUniqueIdentifier()); for (String el : targetAreasWithNoInteralBaseIdRestriction) log.trace(" Allow baseID processing for prefix " + el); for (String el : targetAreasWithNoBaseIdTransmissionRestriction) log.trace(" Allow baseID transfer for prefix " + el); } } @Override public final Map getFullConfiguration() { return this.spConfiguration; } @Override public final String getConfigurationValue(String key) { if (key == null) return null; else return this.spConfiguration.get(key); } @Override public final String getConfigurationValue(String key, String defaultValue) { String value = getConfigurationValue(key); if (value == null) return defaultValue; else return value; } @Override public final Boolean isConfigurationValue(String key) { String value = getConfigurationValue(key); if (value != null) { return Boolean.parseBoolean(value); } return null; } @Override public final boolean isConfigurationValue(String key, boolean defaultValue) { String value = getConfigurationValue(key); if (value != null) { return Boolean.parseBoolean(value); } return defaultValue; } @Override public final boolean containsConfigurationKey(String key) { if (key == null) return false; else return this.spConfiguration.containsKey(key); } @Override public String getUniqueIdentifier() { return getConfigurationValue(EAAFConfigConstants.SERVICE_UNIQUEIDENTIFIER); } @Override public boolean hasBaseIdInternalProcessingRestriction() { return false; } @Override public boolean hasBaseIdTransferRestriction() { return true; } @Override public final List getTargetsWithNoBaseIdInternalProcessingRestriction() { return this.targetAreasWithNoInteralBaseIdRestriction; } @Override public final List getTargetsWithNoBaseIdTransferRestriction() { return this.targetAreasWithNoBaseIdTransmissionRestriction; } @Override public String getMinimumLevelOfAssurence() { log.warn("Method not implemented: " + SPConfigurationImpl.class.getName() + " 'getMinimumLevelOfAssurence()'"); return null; } @Override public String getAreaSpecificTargetIdentifier() { log.warn("Method not implemented: " + SPConfigurationImpl.class.getName() + " 'getAreaSpecificTargetIdentifier()'"); return null; } @Override public String getFriendlyName() { log.warn("Method not implemented: " + SPConfigurationImpl.class.getName() + " 'getFriendlyName()'"); return null; } }