package at.gv.egiz.eaaf.core.api.idp;
import java.net.URL;
import java.util.Map;
import javax.annotation.Nullable;
import at.gv.egiz.eaaf.core.exceptions.EAAFConfigurationException;
import at.gv.egiz.eaaf.core.exceptions.EAAFException;
public interface IConfigurationWithSP extends IConfiguration {
public static final String CONFIG_PROPS_AUTH_DEFAULT_COUNTRYCODE = "configuration.auth.default.countrycode";
/**
* Get a configuration entry for a specific Service Provider
*
* @param uniqueID Unique identifier of the Service Provider
* @return {@link ISPConfiguration} or null
if no SP configuration was found
* @throws EAAFConfigurationException
*/
@Nullable
public ISPConfiguration getServiceProviderConfiguration(final String uniqueID) throws EAAFConfigurationException;
/**
* Get a configuration entry for a specific Service Provider that is decorated by a Object
*
* @param spIdentifier EntityID of a Service Provider
* @param decorator Decorator that should be used to decorate the result.
* This decorator has to be implement or extend the {@link ISPConfiguration} interface
* @return T
or null
if no SP configuration was found
* @throws EAAFConfigurationException
*/
@Nullable
public T getServiceProviderConfiguration(String spIdentifier, final Class decorator) throws EAAFConfigurationException;
/**
* Get a set of configuration values from file based configuration that starts with this prefix
*
* Important: The configuration values must be of type String!
*
* @param prefix Prefix of the configuration key
* @return Map without prefix, but never null
*/
public Map getBasicConfigurationWithPrefix(final String prefix);
/**
* Validate a URL if it it is allowed by configuration.
*
* @param authReqUrl URL for validation
* @return URL of the application context if the authReqUrl was valid, otherwise null
*/
public String validateIDPURL(URL authReqUrl) throws EAAFException;
}