/******************************************************************************* * Copyright 2017 Graz University of Technology * EAAF-Core Components has been developed in a cooperation between EGIZ, * A-SIT+, 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.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 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; } }