/* * Copyright 2017 Graz University of Technology EAAF-Core Components has been developed in a * cooperation between EGIZ, A-SIT Plus, A-SIT, and Graz University of Technology. * * Licensed under the EUPL, Version 1.2 or - as soon they will be approved by the European * Commission - subsequent versions of the EUPL (the "Licence"); You may not use this work except in * compliance with the Licence. You may obtain a copy of the Licence at: * https://joinup.ec.europa.eu/news/understanding-eupl-v12 * * Unless required by applicable law or agreed to in writing, software distributed under the Licence * is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the Licence for the specific language governing permissions and limitations under * the Licence. * * This product combines work with different licenses. See the "NOTICE" text file for details on the * various modules and licenses. The "NOTICE" text file is part of the distribution. Any derivative * works that you distribute must include a readable copy of the "NOTICE" text file. */ package at.gv.egiz.eaaf.core.impl.idp.conf; import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; 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 Set targetAreasWithNoInteralBaseIdRestriction; private final Set targetAreasWithNoBaseIdTransmissionRestriction; /** * Service-provider configuration holder. * * @param spConfig Key/value based configuration * @param authConfig Basic application configuration */ public SpConfigurationImpl(final Map spConfig, final IConfiguration authConfig) { this.spConfiguration = spConfig; // set oa specific restrictions targetAreasWithNoInteralBaseIdRestriction = Collections .unmodifiableSet(new HashSet(KeyValueUtils.getListOfCsvValues(authConfig.getBasicConfiguration( CONFIG_KEY_RESTRICTIONS_BASEID_INTERNAL, EaafConstants.URN_PREFIX_CDID)))); targetAreasWithNoBaseIdTransmissionRestriction = Collections .unmodifiableSet(new HashSet(KeyValueUtils.getListOfCsvValues(authConfig.getBasicConfiguration( CONFIG_KEY_RESTRICTIONS_BASEID_TRANSMISSION, EaafConstants.URN_PREFIX_CDID)))); if (log.isTraceEnabled()) { log.trace("Internal policy for OA: " + getUniqueIdentifier()); targetAreasWithNoInteralBaseIdRestriction.stream() .forEach(el -> log.trace(" Allow baseID processing for prefix " + el)); targetAreasWithNoBaseIdTransmissionRestriction.stream() .forEach(el -> log.trace(" Allow baseID transfer for prefix " + el)); } } @Override public final Map getFullConfiguration() { return this.spConfiguration; } @Override public final String getConfigurationValue(final String key) { if (key == null) { return null; } else { return this.spConfiguration.get(key); } } @Override public final String getConfigurationValue(final String key, final String defaultValue) { final String value = getConfigurationValue(key); if (value == null) { return defaultValue; } else { return value; } } @Override public final boolean isConfigurationValue(final String key) { return isConfigurationValue(key, false); } @Override public final boolean isConfigurationValue(final String key, final boolean defaultValue) { final String value = getConfigurationValue(key); if (value != null) { return Boolean.parseBoolean(value); } return defaultValue; } @Override public final boolean containsConfigurationKey(final 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 Set getTargetsWithNoBaseIdInternalProcessingRestriction() { return this.targetAreasWithNoInteralBaseIdRestriction; } @Override public final Set getTargetsWithNoBaseIdTransferRestriction() { return this.targetAreasWithNoBaseIdTransmissionRestriction; } @Override public List getRequiredLoA() { log.warn( "Method not implemented: " + SpConfigurationImpl.class.getName() + " 'getRequiredLoA()'"); return null; } @Override public String getLoAMatchingMode() { log.warn("Method not implemented: " + SpConfigurationImpl.class.getName() + " 'getLoAMatchingMode()'"); 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; } }