aboutsummaryrefslogtreecommitdiff
path: root/connector_lib
diff options
context:
space:
mode:
Diffstat (limited to 'connector_lib')
-rw-r--r--connector_lib/checks/spotbugs-exclude.xml20
-rw-r--r--connector_lib/pom.xml107
-rw-r--r--connector_lib/src/main/java/at/asitplus/eidas/specific/connector/MsConnectorEventCodes.java52
-rw-r--r--connector_lib/src/main/java/at/asitplus/eidas/specific/connector/MsEidasNodeConstants.java179
-rw-r--r--connector_lib/src/main/java/at/asitplus/eidas/specific/connector/config/BasicConfigurationProvider.java155
-rw-r--r--connector_lib/src/main/java/at/asitplus/eidas/specific/connector/config/ServiceProviderConfiguration.java160
-rw-r--r--connector_lib/src/main/java/at/asitplus/eidas/specific/connector/config/SpringBootBasicConfigurationProvider.java122
-rw-r--r--connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/DefaultVelocityGuiBuilderImpl.java66
-rw-r--r--connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/GuiBuilderConfigurationFactory.java69
-rw-r--r--connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/SpringMvcGuiFormBuilderImpl.java123
-rw-r--r--connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/StaticGuiBuilderConfiguration.java148
-rw-r--r--connector_lib/src/main/resources/common_gui.beans.xml60
-rw-r--r--connector_lib/src/test/java/at/asitplus/eidas/specific/connector/test/config/BasicConfigProviderTest.java156
-rw-r--r--connector_lib/src/test/java/at/asitplus/eidas/specific/connector/test/config/ServiceProviderConfigurationTest.java54
-rw-r--r--connector_lib/src/test/java/at/asitplus/eidas/specific/connector/test/config/SpringBootBasicConfigurationProviderTest.java148
-rw-r--r--connector_lib/src/test/java/at/asitplus/eidas/specific/connector/test/config/dummy/MsConnectorDummyConfigMap.java112
-rw-r--r--connector_lib/src/test/java/at/asitplus/eidas/specific/connector/test/config/dummy/MsConnectorDummySpConfiguration.java28
-rw-r--r--connector_lib/src/test/resources/SpringTest-context_basic_realConfig.xml25
-rw-r--r--connector_lib/src/test/resources/config/junit_config_1.properties124
19 files changed, 0 insertions, 1908 deletions
diff --git a/connector_lib/checks/spotbugs-exclude.xml b/connector_lib/checks/spotbugs-exclude.xml
deleted file mode 100644
index 9700a0c0..00000000
--- a/connector_lib/checks/spotbugs-exclude.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<FindBugsFilter>
- <Match>
- <!-- View parameters are hard-coded values -->
- <Class name="at.asitplus.eidas.specific.connector.gui.SpringMvcGuiFormBuilderImpl" />
- <Method name="build" />
- <Bug pattern="SPRING_FILE_DISCLOSURE" />
- </Match>
- <Match>
- <!-- Builder pattern does not expose date elements -->
- <OR>
- <Class name="at.asitplus.eidas.specific.connector.config.ServiceProviderConfiguration" />
- <Class name="at.asitplus.eidas.specific.connector.gui.StaticGuiBuilderConfiguration"/>
- </OR>
- <OR>
- <Bug pattern="EI_EXPOSE_REP" />
- <Bug pattern="EI_EXPOSE_REP2" />
- </OR>
- </Match>
-</FindBugsFilter>
diff --git a/connector_lib/pom.xml b/connector_lib/pom.xml
deleted file mode 100644
index 8d7e2f2d..00000000
--- a/connector_lib/pom.xml
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0"?>
-<project
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
- xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>at.asitplus.eidas</groupId>
- <artifactId>ms_specific</artifactId>
- <version>1.2.4</version>
- </parent>
- <groupId>at.asitplus.eidas.ms_specific</groupId>
- <artifactId>connector_lib</artifactId>
- <name>ms_specific_connector_lib</name>
- <packaging>jar</packaging>
-
- <url>http://maven.apache.org</url>
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- </properties>
- <dependencies>
- <dependency>
- <groupId>at.gv.egiz.eaaf</groupId>
- <artifactId>eaaf-core</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-webmvc</artifactId>
- </dependency>
- <dependency>
- <groupId>javax.validation</groupId>
- <artifactId>validation-api</artifactId>
- </dependency>
-
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>javax.servlet-api</artifactId>
- <scope>provided</scope>
- </dependency>
-
- <!-- jUnit test dependencies -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-test</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>at.gv.egiz.eaaf</groupId>
- <artifactId>eaaf_core_utils</artifactId>
- <scope>test</scope>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>at.gv.egiz.eaaf</groupId>
- <artifactId>eaaf-core</artifactId>
- <scope>test</scope>
- <type>test-jar</type>
- </dependency>
-
- </dependencies>
-
- <build>
- <finalName>msConnectorLib</finalName>
-
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.8</source>
- <target>1.8</target>
- </configuration>
- </plugin>
-
- <!-- enable co-existence of testng and junit -->
- <plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <threadCount>1</threadCount>
- </configuration>
- <dependencies>
- <dependency>
- <groupId>org.apache.maven.surefire</groupId>
- <artifactId>surefire-junit47</artifactId>
- <version>${surefire.version}</version>
- </dependency>
- </dependencies>
- </plugin>
-
- <plugin>
- <groupId>com.github.spotbugs</groupId>
- <artifactId>spotbugs-maven-plugin</artifactId>
- <version>${spotbugs-maven-plugin.version}</version>
- <configuration>
- <excludeFilterFile>checks/spotbugs-exclude.xml</excludeFilterFile>
- </configuration>
- </plugin>
-
- </plugins>
- </build>
-
-</project>
diff --git a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/MsConnectorEventCodes.java b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/MsConnectorEventCodes.java
deleted file mode 100644
index cfc434c4..00000000
--- a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/MsConnectorEventCodes.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright 2018 A-SIT Plus GmbH
- * AT-specific eIDAS Connector has been developed in a cooperation between EGIZ,
- * A-SIT Plus GmbH, 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 "License");
- * You may not use this work except in compliance with the License.
- * You may obtain a copy of the License at:
- * https://joinup.ec.europa.eu/news/understanding-eupl-v12
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * 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.asitplus.eidas.specific.connector;
-
-public class MsConnectorEventCodes {
-
- public static final int STARTING_COUNTRY_SELECTION = 4100;
- public static final int COUNTRY_SELECTED = 4101;
-
- public static final int PROCESS_STOPPED_BY_USER = 4102;
-
- public static final int EIDAS_NODE_CONNECTED = 6101;
- public static final int RESPONSE_FROM_EIDAS_NODE = 6102;
- public static final int RESPONSE_FROM_EIDAS_NODE_VALID = 6103;
- public static final int RESPONSE_FROM_EIDAS_NODE_NOT_VALID = 6104;
- public static final int RESPONSE_FROM_EIDAS_MDSDATA = 6105;
-
- public static final int SZR_IDL_RECEIVED = 6200;
- public static final int SZR_BPK_RECEIVED = 6201;
- public static final int SZR_VSZ_RECEIVED = 6202;
- public static final int SZR_EIDASBIND_RECEIVED = 6203;
- public static final int TECH_AUCHBLOCK_CREATED = 6204;
-
- public static final int SZR_ERNB_EIDAS_RAW_ID = 6210;
- public static final int SZR_ERNB_EIDAS_ERNB_ID = 6211;
-
-
- private MsConnectorEventCodes() {
- // hidden constructor for class with static values only.
- }
-}
diff --git a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/MsEidasNodeConstants.java b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/MsEidasNodeConstants.java
deleted file mode 100644
index 027d0832..00000000
--- a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/MsEidasNodeConstants.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Copyright 2018 A-SIT Plus GmbH
- * AT-specific eIDAS Connector has been developed in a cooperation between EGIZ,
- * A-SIT Plus GmbH, 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 "License");
- * You may not use this work except in compliance with the License.
- * You may obtain a copy of the License at:
- * https://joinup.ec.europa.eu/news/understanding-eupl-v12
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * 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.asitplus.eidas.specific.connector;
-
-import java.util.Arrays;
-import java.util.List;
-
-import at.gv.egiz.eaaf.core.api.data.EaafConfigConstants;
-
-public class MsEidasNodeConstants {
- // ************ configuration properties ************
- public static final String PROP_CONFIG_APPLICATION_PREFIX = "eidas.ms.";
- public static final String PROP_CONFIG_APPLICATION_PUBLIC_URL_PREFIX = "context.url.prefix";
- public static final String PROP_CONFIG_APPLICATION_PUBLIC_URL_REQUEST_VALIDATION =
- "context.url.request.validation";
- public static final String PROP_CONFIG_REVISIONLOG_LOG_IP_ADDRESS_OF_USER =
- "revisionlog.logIPAddressOfUser";
- public static final String PROP_CONFIG_REVISIONLOG_WRITE_MDS_INTO_REVISION_LOG =
- "revisionlog.write.MDS.into.revisionlog";
- public static final String PROP_CONFIG_TECHNICALLOG_WRITE_MDS_INTO_TECH_LOG =
- "technicallog.write.MDS.into.techlog";
-
- public static final String PROP_CONFIG_WEBCONTENT_STATIC_PATH = "webcontent.static.directory";
- public static final String PROP_CONFIG_WEBCONTENT_PROPERTIES_PATH = "webcontent.properties";
- public static final String PROP_CONFIG_WEBCONTENT_TEMPLATES_PATH = "webcontent.templates";
-
- public static final String PROP_CONFIG_WEBCONTENT_TEMPLATES_CCSELECTION = "webcontent.templates.countryselection";
-
- public static final String PROP_CONFIG_MONITORING_EIDASNODE_METADATAURL =
- "monitoring.eIDASNode.metadata.url";
-
- private static final String PROP_CONFIG_PVP2_PREFIX = "pvp2.";
- public static final String CONFIG_PROPS_KEYSTORE_TYPE = PROP_CONFIG_PVP2_PREFIX + "keystore.type";
- public static final String CONFIG_PROPS_KEYSTORE_NAME = PROP_CONFIG_PVP2_PREFIX + "keystore.name";
- public static final String PROP_CONFIG_PVP2_KEYSTORE_PATH = PROP_CONFIG_PVP2_PREFIX + "keystore.path";
- public static final String PROP_CONFIG_PVP2_KEYSTORE_PASSWORD = PROP_CONFIG_PVP2_PREFIX
- + "keystore.password";
- public static final String PROP_CONFIG_PVP2_KEY_METADATA_ALIAS = PROP_CONFIG_PVP2_PREFIX
- + "key.metadata.alias";
- public static final String PROP_CONFIG_PVP2_KEY_METADATA_PASSWORD = PROP_CONFIG_PVP2_PREFIX
- + "key.metadata.password";
- public static final String PROP_CONFIG_PVP2_KEY_SIGNING_ALIAS = PROP_CONFIG_PVP2_PREFIX
- + "key.signing.alias";
- public static final String PROP_CONFIG_PVP2_KEY_SIGNING_PASSWORD = PROP_CONFIG_PVP2_PREFIX
- + "key.signing.password";
- public static final String PROP_CONFIG_PVP2_METADATA_VALIDITY = PROP_CONFIG_PVP2_PREFIX
- + "metadata.validity";
-
- public static final String CONFIG_PROPS_METADATA_CONTACT_GIVENNAME =
- PROP_CONFIG_PVP2_PREFIX + "metadata.contact.givenname";
- public static final String CONFIG_PROPS_METADATA_CONTACT_SURNAME =
- PROP_CONFIG_PVP2_PREFIX + "metadata.contact.surname";
- public static final String CONFIG_PROPS_METADATA_CONTACT_EMAIL =
- PROP_CONFIG_PVP2_PREFIX + "metadata.contact.email";
- public static final String CONFIG_PROPS_METADATA_ORGANISATION_NAME =
- PROP_CONFIG_PVP2_PREFIX + "metadata.organisation.name";
- public static final String CONFIG_PROPS_METADATA_ORGANISATION_FRIENDLYNAME =
- PROP_CONFIG_PVP2_PREFIX + "metadata.organisation.friendyname";
- public static final String CONFIG_PROPS_METADATA_ORGANISATION_URL =
- PROP_CONFIG_PVP2_PREFIX + "metadata.organisation.url";
-
- // TODO: is not implemented yet
- public static final String PROP_CONFIG_SP_VALIDATION_DISABLED =
- "configuration.sp.disableRegistrationRequirement";
-
- public static final String PROP_EIDAS_REQUEST_LOA_MINIMUM_LEVEL =
- "auth.eIDAS.node_v2.loa.requested.minimum";
-
- public static final String PROP_CONFIG_AUTHBLOCK_KEYSTORE_TYPE =
- "auth.eIDAS.authblock.keystore.type";
- public static final String PROP_CONFIG_AUTHBLOCK_KEYSTORE_PATH =
- "auth.eIDAS.authblock.keystore.path";
- public static final String PROP_CONFIG_AUTHBLOCK_KEYSTORE_PASSWORD =
- "auth.eIDAS.authblock.keystore.password";
- public static final String PROP_CONFIG_AUTHBLOCK_KEYSTORE_NAME =
- "auth.eIDAS.authblock.keystore.name";
- public static final String PROP_CONFIG_AUTHBLOCK_KEY_ALIAS =
- "auth.eIDAS.authblock.key.alias";
- public static final String PROP_CONFIG_AUTHBLOCK_KEY_PASSWORD =
- "auth.eIDAS.authblock.key.password";
-
-
-
-
- public static final String PROP_CONFIG_SP_LIST_PREFIX = "sp";
- public static final String PROP_CONFIG_SP_UNIQUEIDENTIFIER = EaafConfigConstants.SERVICE_UNIQUEIDENTIFIER;
- public static final String PROP_CONFIG_SP_FRIENDLYNAME = "friendlyName";
- public static final String PROP_CONFIG_SP_PVP2_METADATA_URL = "pvp2.metadata.url";
- public static final String PROP_CONFIG_SP_PVP2_METADATA_TRUSTSTORE = "pvp2.metadata.truststore";
- public static final String PROP_CONFIG_SP_PVP2_METADATA_TRUSTSTORE_PASSWORD =
- "pvp2.metadata.truststore.password";
- public static final String PROP_CONFIG_SP_NEW_EID_MODE =
- "newEidMode";
-
- public static final String PROP_CONFIG_SP_POLICY_ALLOWED_TARGETS = "policy.allowed.requested.targets";
- public static final String PROP_CONFIG_SP_POLICY_BASEIDTRANSFER_RESTRICTION =
- "policy.hasBaseIdTransferRestriction";
-
- public static final String PROP_CONFIG_PVP_SCHEME_VALIDATION = "configuration.pvp.scheme.validation";
- public static final String PROP_CONFIG_PVP_ENABLE_ENTITYCATEGORIES =
- "configuration.pvp.enable.entitycategories";
-
- // ********** default values ***************
-
- // Default policy for SP-targets requested by MOA-ID to ms-specific eIDAS
- // Connector
- public static final String POLICY_DEFAULT_ALLOWED_TARGETS = ".*";
- // EAAFConstants.URN_PREFIX_CDID.replaceAll("\\.", "\\\\.").replaceAll("\\+",
- // "\\\\+") + ".*";
-
- public static final int METADATA_SOCKED_TIMEOUT = 20 * 1000; // 20 seconds metadata socked timeout
- public static final int DEFAULT_PVP_METADATA_VALIDITY = 24; // 24 hours
- public static final int DEFAULT_PVP_ASSERTION_VALIDITY = 5; // 5 minutes
-
- // ************ application end-points *************
- public static final String ENDPOINT_PVP_METADATA = "/pvp/metadata";
- public static final String ENDPOINT_PVP_POST = "/pvp/post";
- public static final String ENDPOINT_PVP_REDIRECT = "/pvp/redirect";
-
- public static final String ENDPOINT_COUNTRYSELECTION = "/myHomeCountry";
-
- public static final String ENDPOINT_MONITORING_MONITOR = "/monitoring";
- public static final String ENDPOINT_MONITORING_VERIFY = "/verify";
-
- // ************ paths and templates ************
- public static final String CLASSPATH_TEMPLATE_DIR = "/templates/";
- public static final String FILESYSTEM_TEMPLATE_DIR = "./templates/";
-
- public static final String TEMPLATE_HTML_ERROR = "error_message.html";
- public static final String TEMPLATE_HTML_PVP_POSTBINDING = "pvp2_post_binding.html";
- public static final String TEMPLATE_HTML_COUNTRYSELECTION = "countrySelection.html";
-
- // ************ execution context and generic data ************
- public static final String REQ_PARAM_SELECTED_COUNTRY = "selectedCountry";
- public static final String REQ_PARAM_SELECTED_ENVIRONMENT = "selectedEnvironment";
- public static final String REQ_PARAM_STOP_PROCESS = "stopAuthProcess";
-
- public static final String REQ_PARAM_SELECTED_ENVIRONMENT_VALUE_PRODUCTION = "prod";
- public static final String REQ_PARAM_SELECTED_ENVIRONMENT_VALUE_QS = "qs";
- public static final String REQ_PARAM_SELECTED_ENVIRONMENT_VALUE_TESTING = "test";
- public static final String REQ_PARAM_SELECTED_ENVIRONMENT_VALUE_DEVELOPMENT = "dev";
-
- public static final String DATA_REQUESTERID = "req_requesterId";
- public static final String DATA_PROVIDERNAME = "req_providerName";
- public static final String DATA_REQUESTED_LOA_LIST = "req_requestedLoA";
- public static final String DATA_REQUESTED_LOA_COMPERISON = "req_requestedLoAComperision";
-
- public static final List<String> COUNTRY_SELECTION_PARAM_WHITELIST =
- Arrays.asList(REQ_PARAM_SELECTED_COUNTRY, REQ_PARAM_SELECTED_ENVIRONMENT);
-
-
- public static final String EID_BINDING_PUBLIC_KEY_NAME = "urn:eidgvat:attributes.binding.pubkey";
-
- private MsEidasNodeConstants() {
- //hidden Constructor for class with static values only.
- }
-
-}
diff --git a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/config/BasicConfigurationProvider.java b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/config/BasicConfigurationProvider.java
deleted file mode 100644
index 89ccdfe7..00000000
--- a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/config/BasicConfigurationProvider.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright 2018 A-SIT Plus GmbH
- * AT-specific eIDAS Connector has been developed in a cooperation between EGIZ,
- * A-SIT Plus GmbH, 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 "License");
- * You may not use this work except in compliance with the License.
- * You may obtain a copy of the License at:
- * https://joinup.ec.europa.eu/news/understanding-eupl-v12
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * 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.asitplus.eidas.specific.connector.config;
-
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.context.annotation.Profile;
-import org.springframework.stereotype.Service;
-
-import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
-import at.gv.egiz.eaaf.core.api.idp.ISpConfiguration;
-import at.gv.egiz.eaaf.core.exceptions.EaafConfigurationException;
-import at.gv.egiz.eaaf.core.exceptions.EaafException;
-import at.gv.egiz.eaaf.core.impl.idp.conf.AbstractConfigurationImpl;
-import at.gv.egiz.eaaf.core.impl.utils.KeyValueUtils;
-
-@Service("BasicMSSpecificNodeConfig")
-@Profile("deprecatedConfig")
-public class BasicConfigurationProvider extends AbstractConfigurationImpl {
- private static final Logger log = LoggerFactory.getLogger(BasicConfigurationProvider.class);
-
- private final Map<String, ISpConfiguration> spConfigCache = new HashMap<>();
-
- public BasicConfigurationProvider(String configPath) throws EaafConfigurationException {
- super(configPath);
-
- }
-
- @Override
- public ISpConfiguration getServiceProviderConfiguration(String entityId) throws EaafConfigurationException {
- if (!spConfigCache.containsKey(entityId)) {
- log.debug("SP: " + entityId + " is NOT cached. Starting load operation ... ");
- final Map<String, String> allSPs = getBasicConfigurationWithPrefix(
- MsEidasNodeConstants.PROP_CONFIG_SP_LIST_PREFIX + KeyValueUtils.KEY_DELIMITER);
- for (Entry<String, String> entry : allSPs.entrySet()) {
- if (entry.getKey().endsWith(MsEidasNodeConstants.PROP_CONFIG_SP_UNIQUEIDENTIFIER)
- && entry.getValue().equals(entityId)) {
- final String listId = KeyValueUtils.getParentKey(entry.getKey());
- log.trace("Find SP configuration with list-Id: " + listId
- + ". Extracting configuration elements ... ");
- final Map<String, String> spConfig = KeyValueUtils.getSubSetWithPrefix(allSPs, listId
- + KeyValueUtils.KEY_DELIMITER);
- spConfigCache.put(entityId,
- new ServiceProviderConfiguration(spConfig, this));
- break;
- }
- }
-
- if (spConfigCache.containsKey(entityId)) {
- log.info("SP: " + entityId + " is loaded. Continuing auth. process ... ");
- } else {
- log.warn("SP: " + entityId + " is NOT found in configuration. Stopping auth. process ... ");
- return null;
-
- }
-
- } else {
- log.trace("SP: " + entityId + " is already cached. Use configuration from there ... ");
- }
-
- return spConfigCache.get(entityId);
- }
-
- @Override
- public <T> T getServiceProviderConfiguration(String entityId, Class<T> decorator)
- throws EaafConfigurationException {
- final ISpConfiguration spConfig = getServiceProviderConfiguration(entityId);
- if (spConfig != null && decorator != null) {
- if (decorator.isInstance(spConfig)) {
- return (T) spConfig;
- } else {
- log.error("SPConfig: " + spConfig.getClass().getName() + " is NOT instance of: " + decorator
- .getName());
- }
-
- }
-
- return null;
-
- }
-
- @Override
- public String validateIdpUrl(URL url) throws EaafException {
- log.trace("Validate requested URL: " + url);
- String urlPrefixFromConfig = getBasicConfiguration(
- MsEidasNodeConstants.PROP_CONFIG_APPLICATION_PUBLIC_URL_PREFIX);
- if (StringUtils.isEmpty(urlPrefixFromConfig)) {
- log.warn("Application config containts NO URL prefix");
- throw new EaafConfigurationException("config.27",
- new Object[] { "Application config containts NO "
- + getApplicationSpecificKeyPrefix()
- + MsEidasNodeConstants.PROP_CONFIG_APPLICATION_PUBLIC_URL_PREFIX });
-
- }
-
- // remove last slash
- if (urlPrefixFromConfig.endsWith("/")) {
- urlPrefixFromConfig = urlPrefixFromConfig.substring(0, urlPrefixFromConfig.length() - 1);
- }
-
- if (getBasicConfigurationBoolean(
- MsEidasNodeConstants.PROP_CONFIG_APPLICATION_PUBLIC_URL_REQUEST_VALIDATION, false)) {
- if (url != null && url.toExternalForm().startsWith(urlPrefixFromConfig)) {
- return urlPrefixFromConfig;
- }
-
- log.info("URL: " + url + " does NOT match to allowed application prefix: " + urlPrefixFromConfig);
- return null;
-
- } else {
- return urlPrefixFromConfig;
-
- }
- }
-
- @Override
- public String getApplicationSpecificKeyPrefix() {
- return MsEidasNodeConstants.PROP_CONFIG_APPLICATION_PREFIX;
-
- }
-
- @Override
- protected String getBackupConfigPath() {
- return null;
-
- }
-
-}
diff --git a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/config/ServiceProviderConfiguration.java b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/config/ServiceProviderConfiguration.java
deleted file mode 100644
index 362d0244..00000000
--- a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/config/ServiceProviderConfiguration.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Copyright 2018 A-SIT Plus GmbH
- * AT-specific eIDAS Connector has been developed in a cooperation between EGIZ,
- * A-SIT Plus GmbH, 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 "License");
- * You may not use this work except in compliance with the License.
- * You may obtain a copy of the License at:
- * https://joinup.ec.europa.eu/news/understanding-eupl-v12
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * 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.asitplus.eidas.specific.connector.config;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
-import at.gv.egiz.eaaf.core.api.data.EaafConstants;
-import at.gv.egiz.eaaf.core.api.idp.IConfiguration;
-import at.gv.egiz.eaaf.core.exceptions.EaafException;
-import at.gv.egiz.eaaf.core.impl.idp.conf.SpConfigurationImpl;
-
-public class ServiceProviderConfiguration extends SpConfigurationImpl {
- private static final long serialVersionUID = 1L;
- private static final Logger log = LoggerFactory.getLogger(ServiceProviderConfiguration.class);
-
- private List<String> minimumLoA = Arrays.asList(EaafConstants.EIDAS_LOA_HIGH);
- private String bpkTargetIdentifier;
- private String loaMachtingMode = EaafConstants.EIDAS_LOA_MATCHING_MINIMUM;
-
- public ServiceProviderConfiguration(Map<String, String> spConfig, IConfiguration authConfig) {
- super(spConfig, authConfig);
-
- }
-
- @Override
- public boolean hasBaseIdInternalProcessingRestriction() {
- return false;
-
- }
-
-
- @Override
- public boolean hasBaseIdTransferRestriction() {
- final Boolean spConfigPolicy = isConfigurationValue(
- MsEidasNodeConstants.PROP_CONFIG_SP_POLICY_BASEIDTRANSFER_RESTRICTION);
- if (spConfigPolicy) {
- return spConfigPolicy;
-
- } else {
- log.trace("SP configuration defines no baseID transfer restriction. Enforce default policy ...");
- for (final String el : getTargetsWithNoBaseIdTransferRestriction()) {
- if (this.bpkTargetIdentifier != null && this.bpkTargetIdentifier.startsWith(el)) {
- log.debug("SP-Target: " + this.bpkTargetIdentifier
- + " has NO baseID transfer restriction in default policy");
- return false;
-
- }
- }
- }
-
- log.debug("Default-policy defines baseID transfer restriction for SP-Target: "
- + this.bpkTargetIdentifier);
- return true;
- }
-
- @Override
- public List<String> getRequiredLoA() {
- return minimumLoA;
-
- }
-
- @Override
- public String getLoAMatchingMode() {
- return loaMachtingMode;
-
- }
-
- @Override
- public String getAreaSpecificTargetIdentifier() {
- return bpkTargetIdentifier;
- }
-
- @Override
- public String getFriendlyName() {
- return getConfigurationValue(
- MsEidasNodeConstants.PROP_CONFIG_SP_FRIENDLYNAME,
- "NO FRIENDLYNAME SET");
-
- }
-
- /**
- * Set the minimum level of eIDAS authentication for this SP <br>
- * <b>Default:</b> http://eidas.europa.eu/LoA/high <br>
- * <b>Info:</b> In case of MINIMUM matching-mode, only one entry is allowed
- *
- * @param minimumLoA eIDAS LoA URIs
- */
-
- public void setRequiredLoA(List<String> minimumLoA) {
- this.minimumLoA = minimumLoA;
- }
-
- /**
- * Set the mode of operation for LoA matching for this SP. <b>Default:
- * minimum</b> <br>
- * <b>Info:</b> Currently only 'minimum' and 'exact' are supported
- *
- * @param mode LoA matching mode according to SAML2 core specification
- */
- public void setLoAMachtingMode(String mode) {
- this.loaMachtingMode = mode;
- }
-
- /**
- * Set the bPK Target for this service provider.
- *
- * @param bpkTargetIdentifier Set the bPK sector
- * @throws EAAFException If the bPKTargetIdentifier is NOT ALLOWED for this
- * service provider
- */
- public void setBpkTargetIdentifier(String bpkTargetIdentifier) throws EaafException {
- final String allowedTargetIdentifierRegExPattern = getConfigurationValue(
- MsEidasNodeConstants.PROP_CONFIG_SP_POLICY_ALLOWED_TARGETS,
- MsEidasNodeConstants.POLICY_DEFAULT_ALLOWED_TARGETS);
- log.trace("Use bPK-target regex pattern: " + allowedTargetIdentifierRegExPattern);
-
- final Pattern p = Pattern.compile(allowedTargetIdentifierRegExPattern);
- final Matcher m = p.matcher(bpkTargetIdentifier);
- if (m.matches()) {
- log.debug("Requested bPK-target: " + bpkTargetIdentifier + " matches regex pattern");
- this.bpkTargetIdentifier = bpkTargetIdentifier;
-
- } else {
- log.warn("Requested bPK-target: " + bpkTargetIdentifier + " does NOT match regex pattern.");
- throw new EaafException("auth.37", new Object[] { bpkTargetIdentifier, getUniqueIdentifier() });
-
- }
-
- }
-
-}
diff --git a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/config/SpringBootBasicConfigurationProvider.java b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/config/SpringBootBasicConfigurationProvider.java
deleted file mode 100644
index 76e2c01f..00000000
--- a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/config/SpringBootBasicConfigurationProvider.java
+++ /dev/null
@@ -1,122 +0,0 @@
-package at.asitplus.eidas.specific.connector.config;
-
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.apache.commons.lang3.StringUtils;
-
-import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
-import at.gv.egiz.eaaf.core.api.idp.ISpConfiguration;
-import at.gv.egiz.eaaf.core.exceptions.EaafConfigurationException;
-import at.gv.egiz.eaaf.core.exceptions.EaafException;
-import at.gv.egiz.eaaf.core.impl.idp.conf.AbstractSpringBootConfigurationImpl;
-import at.gv.egiz.eaaf.core.impl.utils.KeyValueUtils;
-import lombok.extern.slf4j.Slf4j;
-
-@Slf4j
-public class SpringBootBasicConfigurationProvider extends AbstractSpringBootConfigurationImpl {
-
- private final Map<String, ISpConfiguration> spConfigCache = new HashMap<>();
-
- @Override
- public ISpConfiguration getServiceProviderConfiguration(String entityId) throws EaafConfigurationException {
- if (!spConfigCache.containsKey(entityId)) {
- log.debug("SP: " + entityId + " is NOT cached. Starting load operation ... ");
- final Map<String, String> allSPs = getBasicConfigurationWithPrefix(
- MsEidasNodeConstants.PROP_CONFIG_SP_LIST_PREFIX);
- for (Entry<String, String> entry : allSPs.entrySet()) {
- if (entry.getKey().endsWith(MsEidasNodeConstants.PROP_CONFIG_SP_UNIQUEIDENTIFIER)
- && entry.getValue().equals(entityId)) {
- final String listId = KeyValueUtils.getParentKey(entry.getKey());
- log.trace("Find SP configuration with list-Id: " + listId
- + ". Extracting configuration elements ... ");
- final Map<String, String> spConfig = KeyValueUtils.getSubSetWithPrefix(allSPs, listId
- + KeyValueUtils.KEY_DELIMITER);
- spConfigCache.put(entityId,
- new ServiceProviderConfiguration(spConfig, this));
- break;
- }
- }
-
- if (spConfigCache.containsKey(entityId)) {
- log.info("SP: " + entityId + " is loaded. Continuing auth. process ... ");
- } else {
- log.warn("SP: " + entityId + " is NOT found in configuration. Stopping auth. process ... ");
- return null;
-
- }
-
- } else {
- log.trace("SP: " + entityId + " is already cached. Use configuration from there ... ");
- }
-
- return spConfigCache.get(entityId);
- }
-
- @Override
- public <T> T getServiceProviderConfiguration(String entityId, Class<T> decorator)
- throws EaafConfigurationException {
- final ISpConfiguration spConfig = getServiceProviderConfiguration(entityId);
- if (spConfig != null && decorator != null) {
- if (decorator.isInstance(spConfig)) {
- return (T) spConfig;
- } else {
- log.error("SPConfig: " + spConfig.getClass().getName() + " is NOT instance of: " + decorator
- .getName());
- }
-
- }
-
- return null;
-
- }
-
- @Override
- public String validateIdpUrl(URL url) throws EaafException {
- log.trace("Validate requested URL: " + url);
- String urlPrefixFromConfig = getBasicConfiguration(
- MsEidasNodeConstants.PROP_CONFIG_APPLICATION_PUBLIC_URL_PREFIX);
- if (StringUtils.isEmpty(urlPrefixFromConfig)) {
- log.warn("Application config containts NO URL prefix");
- throw new EaafConfigurationException("config.27",
- new Object[] { "Application config containts NO "
- + getApplicationSpecificKeyPrefix()
- + MsEidasNodeConstants.PROP_CONFIG_APPLICATION_PUBLIC_URL_PREFIX });
-
- }
-
- // remove last slash
- if (urlPrefixFromConfig.endsWith("/")) {
- urlPrefixFromConfig = urlPrefixFromConfig.substring(0, urlPrefixFromConfig.length() - 1);
- }
-
- if (getBasicConfigurationBoolean(
- MsEidasNodeConstants.PROP_CONFIG_APPLICATION_PUBLIC_URL_REQUEST_VALIDATION, false)) {
- if (url != null && url.toExternalForm().startsWith(urlPrefixFromConfig)) {
- return urlPrefixFromConfig;
- }
-
- log.info("URL: " + url + " does NOT match to allowed application prefix: " + urlPrefixFromConfig);
- return null;
-
- } else {
- return urlPrefixFromConfig;
-
- }
- }
-
- @Override
- public String getApplicationSpecificKeyPrefix() {
- return MsEidasNodeConstants.PROP_CONFIG_APPLICATION_PREFIX;
-
- }
-
- @Override
- protected String getBackupConfigPath() {
- return null;
-
- }
-
-}
diff --git a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/DefaultVelocityGuiBuilderImpl.java b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/DefaultVelocityGuiBuilderImpl.java
deleted file mode 100644
index e7ebc92f..00000000
--- a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/DefaultVelocityGuiBuilderImpl.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright 2018 A-SIT Plus GmbH
- * AT-specific eIDAS Connector has been developed in a cooperation between EGIZ,
- * A-SIT Plus GmbH, 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 "License");
- * You may not use this work except in compliance with the License.
- * You may obtain a copy of the License at:
- * https://joinup.ec.europa.eu/news/understanding-eupl-v12
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * 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.asitplus.eidas.specific.connector.gui;
-
-import java.io.InputStream;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Service;
-
-import at.gv.egiz.eaaf.core.api.gui.IVelocityGuiBuilderConfiguration;
-import at.gv.egiz.eaaf.core.exceptions.GuiBuildException;
-import at.gv.egiz.eaaf.core.impl.gui.AbstractVelocityGuiFormBuilderImpl;
-
-@Service("velocityGUIBuilderImpl")
-public class DefaultVelocityGuiBuilderImpl extends AbstractVelocityGuiFormBuilderImpl {
- private static final Logger log = LoggerFactory.getLogger(DefaultVelocityGuiBuilderImpl.class);
-
- private static final String CLASSPATH_HTMLTEMPLATES_DIR = "templates/";
-
- public DefaultVelocityGuiBuilderImpl() throws GuiBuildException {
- super();
-
- }
-
- @Override
- protected InputStream getInternalTemplate(IVelocityGuiBuilderConfiguration config)
- throws GuiBuildException {
- final String viewName = config.getViewName();
- log.debug("GUI template:" + viewName + " is not found in configuration directory. "
- + " Load template from project library ... ");
- final String pathLocation = getInternalClasspathTemplateDir(config, CLASSPATH_HTMLTEMPLATES_DIR)
- + viewName;
- try {
- final InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(pathLocation);
- return is;
-
- } catch (final Exception e1) {
- log.error("GUI template:" + pathLocation + " is NOT loadable from classpath!", e1);
- throw new GuiBuildException("GUI template:" + pathLocation + " is NOT loadable from classpath!", e1);
-
- }
- }
-
-}
diff --git a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/GuiBuilderConfigurationFactory.java b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/GuiBuilderConfigurationFactory.java
deleted file mode 100644
index 91713cd4..00000000
--- a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/GuiBuilderConfigurationFactory.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright 2018 A-SIT Plus GmbH
- * AT-specific eIDAS Connector has been developed in a cooperation between EGIZ,
- * A-SIT Plus GmbH, 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 "License");
- * You may not use this work except in compliance with the License.
- * You may obtain a copy of the License at:
- * https://joinup.ec.europa.eu/news/understanding-eupl-v12
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * 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.asitplus.eidas.specific.connector.gui;
-
-import java.net.MalformedURLException;
-import java.net.URI;
-
-import javax.annotation.Nonnull;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.io.ResourceLoader;
-import org.springframework.stereotype.Service;
-
-import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
-import at.gv.egiz.eaaf.core.api.IRequest;
-import at.gv.egiz.eaaf.core.api.gui.IGuiBuilderConfiguration;
-import at.gv.egiz.eaaf.core.api.gui.IGuiBuilderConfigurationFactory;
-import at.gv.egiz.eaaf.core.api.gui.IVelocityGuiBuilderConfiguration;
-import at.gv.egiz.eaaf.core.api.idp.IConfiguration;
-
-@Service("GUIBuilderConfigurationFactory")
-public class GuiBuilderConfigurationFactory implements IGuiBuilderConfigurationFactory {
- @Autowired(required = true) private IConfiguration basicConfig;
- @Autowired(required = true) private ResourceLoader resourceLoader;
-
- @Override
- public IGuiBuilderConfiguration getDefaultErrorGui(String authUrl) {
- return new StaticGuiBuilderConfiguration(basicConfig, authUrl, MsEidasNodeConstants.TEMPLATE_HTML_ERROR,
- null, resourceLoader);
- }
-
- @Override
- public IVelocityGuiBuilderConfiguration getSpSpecificSaml2PostConfiguration(IRequest pendingReq,
- String viewName, URI configRootContextDir)
- throws MalformedURLException {
- return new StaticGuiBuilderConfiguration(basicConfig, pendingReq,
- MsEidasNodeConstants.TEMPLATE_HTML_PVP_POSTBINDING, null, resourceLoader);
- }
-
- @Override
- public IGuiBuilderConfiguration getDefaultIFrameParentHopGui(IRequest pendingReq,
- @Nonnull String endpoint, @Nonnull String errorId) {
- //TODO: implement if iFrame to parent hop is needed
- throw new RuntimeException("Operation not supported yet.");
-
- }
-
-}
diff --git a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/SpringMvcGuiFormBuilderImpl.java b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/SpringMvcGuiFormBuilderImpl.java
deleted file mode 100644
index 70ab73ad..00000000
--- a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/SpringMvcGuiFormBuilderImpl.java
+++ /dev/null
@@ -1,123 +0,0 @@
-package at.asitplus.eidas.specific.connector.gui;
-
-import java.util.Locale;
-import java.util.Map;
-
-import javax.annotation.Nullable;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.web.servlet.LocaleResolver;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.servlet.View;
-import org.springframework.web.servlet.ViewResolver;
-
-import at.gv.egiz.eaaf.core.api.gui.IGuiBuilderConfiguration;
-import at.gv.egiz.eaaf.core.api.gui.ISpringMvcGuiFormBuilder;
-import at.gv.egiz.eaaf.core.exceptions.GuiBuildException;
-
-public class SpringMvcGuiFormBuilderImpl implements ISpringMvcGuiFormBuilder {
- private static final Logger log = LoggerFactory.getLogger(SpringMvcGuiFormBuilderImpl.class);
-
- private @Autowired(required = false) ViewResolver[] viewResolvers;
- private @Autowired(required = false) LocaleResolver localeResolver;
-
- @Override
- public void build(HttpServletRequest httpReq, HttpServletResponse httpResp, IGuiBuilderConfiguration config,
- String loggerName) throws GuiBuildException {
- build(httpReq, httpResp, config, null, loggerName);
-
- }
-
- @Override
- public void build(HttpServletRequest httpReq, HttpServletResponse httpResp, IGuiBuilderConfiguration config,
- String contentType, String loggerName) throws GuiBuildException {
- try {
- final ModelAndView mav = new ModelAndView(config.getViewName());
- if (config.getViewParameters() != null) {
- mav.addAllObjects(config.getViewParameters());
- }
-
- render(mav, httpReq, httpResp);
-
- } catch (final Exception e) {
- log.info("Can NOT generate GUI for illustration", e);
- throw new GuiBuildException(e.getMessage(), e);
-
- }
-
- }
-
- protected void render(ModelAndView mv, HttpServletRequest request, HttpServletResponse response)
- throws Exception {
- // Determine locale for request and apply it to the response.
- final Locale locale =
- this.localeResolver != null ? this.localeResolver.resolveLocale(request) : request.getLocale();
- response.setLocale(locale);
-
- View view;
- final String viewName = mv.getViewName();
- if (viewName != null) {
- // We need to resolve the view name.
- view = resolveViewName(viewName, mv.getModelMap(), locale, request);
- if (view == null) {
- throw new ServletException("Could not resolve view with name '" + mv.getViewName() + "' ");
- }
-
- } else {
- // No need to lookup: the ModelAndView object contains the actual View object.
- view = mv.getView();
- if (view == null) {
- throw new ServletException("ModelAndView [" + mv + "] neither contains a view name nor a "
- + "View object ");
- }
-
- }
-
- // Delegate to the View object for rendering.
- if (log.isTraceEnabled()) {
- log.trace("Rendering view [{}] ", view);
-
- }
-
- try {
- HttpStatus status = mv.getStatus();
- if (status != null) {
- response.setStatus(status.value());
-
- }
-
- view.render(mv.getModelMap(), request, response);
-
- } catch (final Exception ex) {
- if (log.isDebugEnabled()) {
- log.debug("Error rendering view [" + view + "]", ex);
- }
-
- throw ex;
-
- }
-
- }
-
- protected View resolveViewName(String viewName, @Nullable Map<String, Object> model,
- Locale locale, HttpServletRequest request) throws Exception {
- if (viewResolvers != null) {
- for (final ViewResolver viewResolver : this.viewResolvers) {
- final View view = viewResolver.resolveViewName(viewName, locale);
- if (view != null) {
- return view;
- }
-
- }
- }
-
- return null;
- }
-
-}
diff --git a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/StaticGuiBuilderConfiguration.java b/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/StaticGuiBuilderConfiguration.java
deleted file mode 100644
index 25f5beda..00000000
--- a/connector_lib/src/main/java/at/asitplus/eidas/specific/connector/gui/StaticGuiBuilderConfiguration.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Copyright 2018 A-SIT Plus GmbH
- * AT-specific eIDAS Connector has been developed in a cooperation between EGIZ,
- * A-SIT Plus GmbH, 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 "License");
- * You may not use this work except in compliance with the License.
- * You may obtain a copy of the License at:
- * https://joinup.ec.europa.eu/news/understanding-eupl-v12
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * 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.asitplus.eidas.specific.connector.gui;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.apache.commons.lang.StringEscapeUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.core.io.Resource;
-import org.springframework.core.io.ResourceLoader;
-
-import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
-import at.gv.egiz.eaaf.core.api.IRequest;
-import at.gv.egiz.eaaf.core.api.gui.GroupDefinition;
-import at.gv.egiz.eaaf.core.api.gui.IVelocityGuiBuilderConfiguration;
-import at.gv.egiz.eaaf.core.api.gui.ModifyableGuiBuilderConfiguration;
-import at.gv.egiz.eaaf.core.api.idp.IConfiguration;
-import at.gv.egiz.eaaf.core.impl.gui.AbstractGuiFormBuilderConfiguration;
-import at.gv.egiz.eaaf.core.impl.utils.FileUtils;
-
-public class StaticGuiBuilderConfiguration extends AbstractGuiFormBuilderConfiguration implements
- IVelocityGuiBuilderConfiguration, ModifyableGuiBuilderConfiguration {
- private static final Logger log = LoggerFactory.getLogger(StaticGuiBuilderConfiguration.class);
-
- private IRequest pendingReq = null;
- private IConfiguration basicConfig = null;
- private ResourceLoader resourceLoader;
-
- /**
- * Static resource configuration for GUI Builder implementations.
- *
- * @param basicConfig basicConfig
- * @param authUrl Public URL of the application
- * @param viewName Name of the template
- * @param formSubmitEndpoint Form Submit end-point, if template contains a form.
- * @param resourceLoader Spring ResourceLoader implementation
- */
- public StaticGuiBuilderConfiguration(IConfiguration basicConfig, String authUrl, String viewName,
- String formSubmitEndpoint, ResourceLoader resourceLoader) {
- super(authUrl, viewName, formSubmitEndpoint);
- this.basicConfig = basicConfig;
- this.resourceLoader = resourceLoader;
-
- }
-
- /**
- * Static resource configuration for GUI Builder implementations.
- *
- * @param basicConfig Application configuration
- * @param pendingReq Current pending request
- * @param viewName Name of the template
- * @param formSubmitEndpoint Form Submit end-point, if template contains a form.
- * @param resourceLoader Spring ResourceLoader implementation
- */
- public StaticGuiBuilderConfiguration(IConfiguration basicConfig, IRequest pendingReq, String viewName,
- String formSubmitEndpoint, ResourceLoader resourceLoader) {
- super(pendingReq.getAuthUrl(), viewName, formSubmitEndpoint);
- this.pendingReq = pendingReq;
- this.basicConfig = basicConfig;
- this.resourceLoader = resourceLoader;
-
- }
-
- @Override
- public String getClasspathTemplateDir() {
- return MsEidasNodeConstants.CLASSPATH_TEMPLATE_DIR;
-
- }
-
- @Override
- public String getDefaultContentType() {
- return null;
-
- }
-
- @Override
- public InputStream getTemplate(String viewName) {
- final String templateUrl = MsEidasNodeConstants.FILESYSTEM_TEMPLATE_DIR + viewName;
- try {
- final String absUrl = FileUtils.makeAbsoluteUrl(templateUrl, this.basicConfig
- .getConfigurationRootDirectory());
- log.debug("Load template URL for view: " + viewName + " from: " + absUrl);
- Resource resource = resourceLoader.getResource(absUrl);
- return resource.getInputStream();
-
- } catch (IOException e) {
- log.info("Can can build filesytem path to template: " + templateUrl
- + " Reason: " + e.getMessage());
-
- }
-
- return null;
- }
-
- @Override
- public void putCustomParameterWithOutEscaption(GroupDefinition group, String key, Object value) {
- setViewParameter(getFromGroup(), key, value);
-
- }
-
- @Override
- public void putCustomParameter(GroupDefinition group, String key, String value) {
- setViewParameter(getFromGroup(), key, StringEscapeUtils.escapeHtml(value));
-
- }
-
- @Override
- protected void putSpecificViewParameters() {
- if (pendingReq != null) {
- setViewParameter(getFromGroup(), PARAM_PENDINGREQUESTID, StringEscapeUtils.escapeHtml(pendingReq
- .getPendingRequestId()));
- setViewParameter(getFromGroup(), PARAM_PENDINGREQUESTID_DEPRECATED, StringEscapeUtils.escapeHtml(
- pendingReq.getPendingRequestId()));
-
- }
-
- }
-
- @Override
- protected GroupDefinition getFromGroup() {
- return null;
-
- }
-
-}
diff --git a/connector_lib/src/main/resources/common_gui.beans.xml b/connector_lib/src/main/resources/common_gui.beans.xml
deleted file mode 100644
index 969a40f7..00000000
--- a/connector_lib/src/main/resources/common_gui.beans.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xmlns:task="http://www.springframework.org/schema/task"
- xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
- http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd">
-
- <bean id="contentNegotiationManager"
- class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"
- primary="true">
- <property name="parameterName" value="mediaType" />
- <property name="defaultContentType" value="application/json" />
- <property name="useRegisteredExtensionsOnly" value="false" />
- <property name="mediaTypes">
- <map>
- <entry key="json" value="application/json" />
- <entry key="html" value="text/html" />
- </map>
- </property>
- </bean>
-
- <bean
- class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
- <property name="order" value="1" />
- <property name="defaultViews">
- <list>
- <!-- JSON View -->
- <bean
- class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">
- <property name="contentType" value="application/json" />
- </bean>
- </list>
- </property>
- </bean>
-
-
- <bean id="templateEngine"
- class="org.thymeleaf.spring5.SpringTemplateEngine">
- <property name="templateResolver" ref="templateResolver" />
- </bean>
-
- <bean class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
- <property name="order" value="2" />
- <property name="templateEngine" ref="templateEngine" />
- <property name="characterEncoding" value="UTF-8" />
- </bean>
-
- <bean id="valitatorWithI18nSupport"
- class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
- <property name="validationMessageSource"
- ref="messageSource" />
- </bean>
-
-</beans> \ No newline at end of file
diff --git a/connector_lib/src/test/java/at/asitplus/eidas/specific/connector/test/config/BasicConfigProviderTest.java b/connector_lib/src/test/java/at/asitplus/eidas/specific/connector/test/config/BasicConfigProviderTest.java
deleted file mode 100644
index d1623b00..00000000
--- a/connector_lib/src/test/java/at/asitplus/eidas/specific/connector/test/config/BasicConfigProviderTest.java
+++ /dev/null
@@ -1,156 +0,0 @@
-package at.asitplus.eidas.specific.connector.test.config;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Map;
-
-import org.apache.commons.lang3.RandomStringUtils;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.test.annotation.DirtiesContext;
-import org.springframework.test.annotation.DirtiesContext.ClassMode;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-
-import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
-import at.asitplus.eidas.specific.connector.config.ServiceProviderConfiguration;
-import at.gv.egiz.eaaf.core.api.idp.IConfigurationWithSP;
-import at.gv.egiz.eaaf.core.api.idp.ISpConfiguration;
-import at.gv.egiz.eaaf.core.exceptions.EaafConfigurationException;
-import at.gv.egiz.eaaf.core.exceptions.EaafException;
-
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(locations = {
- "/SpringTest-context_basic_realConfig.xml"})
-@DirtiesContext(classMode = ClassMode.BEFORE_CLASS)
-public class BasicConfigProviderTest {
-
- @Autowired private IConfigurationWithSP basicConfig;
-
- /**
- * jUnit class initializer.
- *
- */
- @BeforeClass
- public static void classInitializer() {
- final String current = new java.io.File(".").toURI().toString();
- System.setProperty("eidas.ms.configuration", current + "src/test/resources/config/junit_config_1.properties");
-
- }
-
- @Test
- public void configPropInfos() {
- Assert.assertEquals("size", 2, MsEidasNodeConstants.COUNTRY_SELECTION_PARAM_WHITELIST.size());
-
- }
-
- @Test
- public void loadSpNoExist() throws EaafConfigurationException {
- ISpConfiguration spConfig = basicConfig.getServiceProviderConfiguration(
- RandomStringUtils.randomAlphabetic(5));
- Assert.assertNull("spConfig", spConfig);
-
- }
-
- @Test
- public void loadSpConfigBasicMode() throws EaafConfigurationException {
- ISpConfiguration spConfig = basicConfig.getServiceProviderConfiguration("jUnitTest1");
-
- Assert.assertNotNull("spConfig", spConfig);
- Assert.assertEquals("uniqueId", "jUnitTest1", spConfig.getUniqueIdentifier());
- Assert.assertEquals("friendlyName", "NO FRIENDLYNAME SET", spConfig.getFriendlyName());
- Assert.assertEquals("pvp2.truststore", "", spConfig.getConfigurationValue("pvp2.metadata.truststore"));
- String test = RandomStringUtils.randomAlphabetic(5);
- Assert.assertEquals("pvp2.password", "1234pass",
- spConfig.getConfigurationValue("pvp2.metadata.truststore.password", test));
- Assert.assertEquals("eidMode", true, spConfig.isConfigurationValue("newEidMode"));
- Assert.assertEquals("notexistflag", false, spConfig.isConfigurationValue("notexist", false));
- Assert.assertNotNull("fullConfig", spConfig.getFullConfiguration());
- Assert.assertEquals("fullConfig", 4, spConfig.getFullConfiguration().size());
-
- }
-
- @Test
- public void loadSpConfigAdvancedMode() throws EaafConfigurationException {
- ISpConfiguration spConfig = basicConfig.getServiceProviderConfiguration(
- "jUnitTest2", ServiceProviderConfiguration.class);
-
- Assert.assertNotNull("spConfig", spConfig);
- Assert.assertEquals("uniqueId", "jUnitTest2", spConfig.getUniqueIdentifier());
- Assert.assertEquals("friendlyName", "jUnit tester 2", spConfig.getFriendlyName());
- Assert.assertEquals("pvp2.truststore", "", spConfig.getConfigurationValue("pvp2.metadata.truststore"));
- String test = RandomStringUtils.randomAlphabetic(5);
- Assert.assertEquals("pvp2.password", test,
- spConfig.getConfigurationValue("pvp2.metadata.truststore.notexist", test));
- Assert.assertEquals("eidMode", false, spConfig.isConfigurationValue("newEidMode"));
- Assert.assertEquals("notexistflag", false, spConfig.isConfigurationValue("notexist", false));
- Assert.assertNotNull("fullConfig", spConfig.getFullConfiguration());
- Assert.assertEquals("fullConfig", 5, spConfig.getFullConfiguration().size());
- Assert.assertFalse("baseIdInternal", spConfig.hasBaseIdInternalProcessingRestriction());
- Assert.assertTrue("baseIdTransfer", spConfig.hasBaseIdTransferRestriction());
-
- }
-
- @Test
- public void loadSpConfigAdvancedModeWrongDecorator() throws EaafConfigurationException {
- ISpConfiguration spConfig1 = basicConfig.getServiceProviderConfiguration(
- "jUnitTest2", null);
- Assert.assertNull("spConfig", spConfig1);
-
- String spConfig2 = basicConfig.getServiceProviderConfiguration(
- "jUnitTest2", String.class);
- Assert.assertNull("spConfig", spConfig2);
-
- }
-
- @Test
- public void loadConfigValuesString() {
- Assert.assertEquals("without default", "ownSpecificConnector",
- basicConfig.getBasicConfiguration("auth.eIDAS.node_v2.entityId"));
-
- Assert.assertEquals("with default", "",
- basicConfig.getBasicConfiguration("auth.eIDAS.szrclient.endpoint.prod",
- RandomStringUtils.randomAlphabetic(5)));
-
- String rand1 = RandomStringUtils.randomAlphanumeric(5);
- Assert.assertEquals("unknown with default", rand1,
- basicConfig.getBasicConfiguration("notexist", rand1));
-
- }
-
- @Test
- public void loadConfigValuesBoolean() {
- Assert.assertEquals("without default", true,
- basicConfig.getBasicConfigurationBoolean("auth.eIDAS.szrclient.useTestService"));
-
- Assert.assertEquals("with default", false,
- basicConfig.getBasicConfigurationBoolean("auth.notexist",
- false));
-
- Assert.assertEquals("unknown with default", false,
- basicConfig.getBasicConfigurationBoolean("auth.eIDAS.szrclient.params.vkz", true));
-
- }
-
- @Test
- public void loadConfigMap() {
- Map<String, String> entries = basicConfig.getBasicConfigurationWithPrefix("auth.eIDAS.szrclient");
- Assert.assertEquals("wrong size", 16, entries.size());
- Assert.assertTrue("missing element", entries.containsKey("endpoint.test"));
- Assert.assertEquals("wrong entry", "http://localhost:1234/demoszr", entries.get("endpoint.test"));
-
- }
-
- @Test
- public void validateUrl() throws MalformedURLException, EaafException {
- Assert.assertEquals("wrong URL", "http://localhost/test",
- basicConfig.validateIdpUrl(new URL("http://localhost/test/" + RandomStringUtils.randomAlphabetic(5))));
-
- Assert.assertNull("wrong URL",
- basicConfig.validateIdpUrl(new URL("http://localhost/wrong/" + RandomStringUtils.randomAlphabetic(5))));
-
- }
-}
diff --git a/connector_lib/src/test/java/at/asitplus/eidas/specific/connector/test/config/ServiceProviderConfigurationTest.java b/connector_lib/src/test/java/at/asitplus/eidas/specific/connector/test/config/ServiceProviderConfigurationTest.java
deleted file mode 100644
index d95e2882..00000000
--- a/connector_lib/src/test/java/at/asitplus/eidas/specific/connector/test/config/ServiceProviderConfigurationTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package at.asitplus.eidas.specific.connector.test.config;
-
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.commons.lang3.RandomStringUtils;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.BlockJUnit4ClassRunner;
-
-import at.asitplus.eidas.specific.connector.config.ServiceProviderConfiguration;
-import at.asitplus.eidas.specific.connector.test.config.dummy.MsConnectorDummyConfigMap;
-import at.gv.egiz.eaaf.core.api.data.EaafConstants;
-import at.gv.egiz.eaaf.core.api.idp.IConfiguration;
-import at.gv.egiz.eaaf.core.exceptions.EaafException;
-
-@RunWith(BlockJUnit4ClassRunner.class)
-public class ServiceProviderConfigurationTest {
-
-
-
- @Test
- public void spConfigLoad() throws EaafException {
- IConfiguration authConfig = new MsConnectorDummyConfigMap();
-
- Map<String, String> map = new HashMap<>();
- map.put("uniqueID", RandomStringUtils.randomAlphabetic(10));
- map.put("policy.allowed.requested.targets", "urn:publicid:gv.at:cdid\\+.*");
-
- ServiceProviderConfiguration spConfig = new ServiceProviderConfiguration(map, authConfig);
-
- spConfig.setRequiredLoA(Arrays.asList(EaafConstants.EIDAS_LOA_LOW));
- Assert.assertEquals("LoA", 1, spConfig.getRequiredLoA().size());
- Assert.assertEquals("LoA", "http://eidas.europa.eu/LoA/low", spConfig.getRequiredLoA().get(0));
-
- spConfig.setLoAMachtingMode("exact");
- Assert.assertEquals("wrong machtingMode", "exact", spConfig.getLoAMatchingMode());
-
- String bpkTarget = EaafConstants.URN_PREFIX_CDID + RandomStringUtils.randomAlphabetic(2);
- spConfig.setBpkTargetIdentifier(bpkTarget);
- Assert.assertEquals("wrong bPK", bpkTarget, spConfig.getAreaSpecificTargetIdentifier());
-
-
- try {
- spConfig.setBpkTargetIdentifier(EaafConstants.URN_PREFIX_WBPK + RandomStringUtils.randomAlphabetic(2));
-
- } catch (EaafException e) {
- Assert.assertEquals("ErrorId", "auth.37", e.getErrorId());
- }
-
- }
-}
diff --git a/connector_lib/src/test/java/at/asitplus/eidas/specific/connector/test/config/SpringBootBasicConfigurationProviderTest.java b/connector_lib/src/test/java/at/asitplus/eidas/specific/connector/test/config/SpringBootBasicConfigurationProviderTest.java
deleted file mode 100644
index 4e7e7dd2..00000000
--- a/connector_lib/src/test/java/at/asitplus/eidas/specific/connector/test/config/SpringBootBasicConfigurationProviderTest.java
+++ /dev/null
@@ -1,148 +0,0 @@
-package at.asitplus.eidas.specific.connector.test.config;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Map;
-
-import org.apache.commons.lang3.RandomStringUtils;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.test.annotation.DirtiesContext;
-import org.springframework.test.annotation.DirtiesContext.ClassMode;
-import org.springframework.test.context.ActiveProfiles;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.TestPropertySource;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-
-import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;
-import at.asitplus.eidas.specific.connector.config.ServiceProviderConfiguration;
-import at.gv.egiz.eaaf.core.api.idp.IConfigurationWithSP;
-import at.gv.egiz.eaaf.core.api.idp.ISpConfiguration;
-import at.gv.egiz.eaaf.core.exceptions.EaafConfigurationException;
-import at.gv.egiz.eaaf.core.exceptions.EaafException;
-
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(locations = {
- "/SpringTest-context_basic_realConfig.xml"})
-@TestPropertySource(locations = { "/config/junit_config_1.properties" })
-@ActiveProfiles("springBoot")
-@DirtiesContext(classMode = ClassMode.BEFORE_CLASS)
-public class SpringBootBasicConfigurationProviderTest {
-
- @Autowired private IConfigurationWithSP basicConfig;
-
- @Test
- public void configPropInfos() {
- Assert.assertEquals("size", 2, MsEidasNodeConstants.COUNTRY_SELECTION_PARAM_WHITELIST.size());
-
- }
-
- @Test
- public void loadSpNoExist() throws EaafConfigurationException {
- ISpConfiguration spConfig = basicConfig.getServiceProviderConfiguration(
- RandomStringUtils.randomAlphabetic(5));
- Assert.assertNull("spConfig", spConfig);
-
- }
-
- @Test
- public void loadSpConfigBasicMode() throws EaafConfigurationException {
- ISpConfiguration spConfig = basicConfig.getServiceProviderConfiguration("jUnitTest1");
-
- Assert.assertNotNull("spConfig", spConfig);
- Assert.assertEquals("uniqueId", "jUnitTest1", spConfig.getUniqueIdentifier());
- Assert.assertEquals("friendlyName", "NO FRIENDLYNAME SET", spConfig.getFriendlyName());
- Assert.assertEquals("pvp2.truststore", "", spConfig.getConfigurationValue("pvp2.metadata.truststore"));
- String test = RandomStringUtils.randomAlphabetic(5);
- Assert.assertEquals("pvp2.password", "1234pass",
- spConfig.getConfigurationValue("pvp2.metadata.truststore.password", test));
- Assert.assertEquals("eidMode", true, spConfig.isConfigurationValue("newEidMode"));
- Assert.assertEquals("notexistflag", false, spConfig.isConfigurationValue("notexist", false));
- Assert.assertNotNull("fullConfig", spConfig.getFullConfiguration());
- Assert.assertEquals("fullConfig", 4, spConfig.getFullConfiguration().size());
-
- }
-
- @Test
- public void loadSpConfigAdvancedMode() throws EaafConfigurationException {
- ISpConfiguration spConfig = basicConfig.getServiceProviderConfiguration(
- "jUnitTest2", ServiceProviderConfiguration.class);
-
- Assert.assertNotNull("spConfig", spConfig);
- Assert.assertEquals("uniqueId", "jUnitTest2", spConfig.getUniqueIdentifier());
- Assert.assertEquals("friendlyName", "jUnit tester 2", spConfig.getFriendlyName());
- Assert.assertEquals("pvp2.truststore", "", spConfig.getConfigurationValue("pvp2.metadata.truststore"));
- String test = RandomStringUtils.randomAlphabetic(5);
- Assert.assertEquals("pvp2.password", test,
- spConfig.getConfigurationValue("pvp2.metadata.truststore.notexist", test));
- Assert.assertEquals("eidMode", false, spConfig.isConfigurationValue("newEidMode"));
- Assert.assertEquals("notexistflag", false, spConfig.isConfigurationValue("notexist", false));
- Assert.assertNotNull("fullConfig", spConfig.getFullConfiguration());
- Assert.assertEquals("fullConfig", 5, spConfig.getFullConfiguration().size());
- Assert.assertFalse("baseIdInternal", spConfig.hasBaseIdInternalProcessingRestriction());
- Assert.assertTrue("baseIdTransfer", spConfig.hasBaseIdTransferRestriction());
-
- }
-
- @Test
- public void loadSpConfigAdvancedModeWrongDecorator() throws EaafConfigurationException {
- ISpConfiguration spConfig1 = basicConfig.getServiceProviderConfiguration(
- "jUnitTest2", null);
- Assert.assertNull("spConfig", spConfig1);
-
- String spConfig2 = basicConfig.getServiceProviderConfiguration(
- "jUnitTest2", String.class);
- Assert.assertNull("spConfig", spConfig2);
-
- }
-
- @Test
- public void loadConfigValuesString() {
- Assert.assertEquals("without default", "ownSpecificConnector",
- basicConfig.getBasicConfiguration("auth.eIDAS.node_v2.entityId"));
-
- Assert.assertEquals("with default", "",
- basicConfig.getBasicConfiguration("auth.eIDAS.szrclient.endpoint.prod",
- RandomStringUtils.randomAlphabetic(5)));
-
- String rand1 = RandomStringUtils.randomAlphanumeric(5);
- Assert.assertEquals("unknown with default", rand1,
- basicConfig.getBasicConfiguration("notexist", rand1));
-
- }
-
- @Test
- public void loadConfigValuesBoolean() {
- Assert.assertEquals("without default", true,
- basicConfig.getBasicConfigurationBoolean("auth.eIDAS.szrclient.useTestService"));
-
- Assert.assertEquals("not exist with default", false,
- basicConfig.getBasicConfigurationBoolean("auth.notexist",
- false));
-
- Assert.assertEquals("exist but empty with default", true,
- basicConfig.getBasicConfigurationBoolean("auth.eIDAS.szrclient.params.vkz", true));
-
- }
-
- @Test
- public void loadConfigMap() {
- Map<String, String> entries = basicConfig.getBasicConfigurationWithPrefix("auth.eIDAS.szrclient");
- Assert.assertEquals("wrong size", 16, entries.size());
- Assert.assertTrue("missing element", entries.containsKey("endpoint.test"));
- Assert.assertEquals("wrong entry", "http://localhost:1234/demoszr", entries.get("endpoint.test"));
-
- }
-
- @Test
- public void validateUrl() throws MalformedURLException, EaafException {
- Assert.assertEquals("wrong URL", "http://localhost/test",
- basicConfig.validateIdpUrl(new URL("http://localhost/test/" + RandomStringUtils.randomAlphabetic(5))));
-
- Assert.assertNull("wrong URL",
- basicConfig.validateIdpUrl(new URL("http://localhost/wrong/" + RandomStringUtils.randomAlphabetic(5))));
-
- }
-}
diff --git a/connector_lib/src/test/java/at/asitplus/eidas/specific/connector/test/config/dummy/MsConnectorDummyConfigMap.java b/connector_lib/src/test/java/at/asitplus/eidas/specific/connector/test/config/dummy/MsConnectorDummyConfigMap.java
deleted file mode 100644
index 42e31377..00000000
--- a/connector_lib/src/test/java/at/asitplus/eidas/specific/connector/test/config/dummy/MsConnectorDummyConfigMap.java
+++ /dev/null
@@ -1,112 +0,0 @@
-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<String, String> 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;
-
- }
- }
-
-
-}
diff --git a/connector_lib/src/test/java/at/asitplus/eidas/specific/connector/test/config/dummy/MsConnectorDummySpConfiguration.java b/connector_lib/src/test/java/at/asitplus/eidas/specific/connector/test/config/dummy/MsConnectorDummySpConfiguration.java
deleted file mode 100644
index b379080d..00000000
--- a/connector_lib/src/test/java/at/asitplus/eidas/specific/connector/test/config/dummy/MsConnectorDummySpConfiguration.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package at.asitplus.eidas.specific.connector.test.config.dummy;
-
-import java.util.List;
-import java.util.Map;
-
-import at.gv.egiz.eaaf.core.api.idp.IConfiguration;
-import at.gv.egiz.eaaf.core.impl.idp.module.test.DummySpConfiguration;
-import lombok.Setter;
-
-public class MsConnectorDummySpConfiguration extends DummySpConfiguration {
-
- private static final long serialVersionUID = -3249018889871026127L;
-
- @Setter
- private List<String> loa;
-
- public MsConnectorDummySpConfiguration(Map<String, String> spConfig, IConfiguration authConfig) {
- super(spConfig, authConfig);
-
- }
-
- @Override
- public List<String> getRequiredLoA() {
- return loa;
-
- }
-
-}
diff --git a/connector_lib/src/test/resources/SpringTest-context_basic_realConfig.xml b/connector_lib/src/test/resources/SpringTest-context_basic_realConfig.xml
deleted file mode 100644
index fbc4640a..00000000
--- a/connector_lib/src/test/resources/SpringTest-context_basic_realConfig.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
-
- <context:annotation-config />
-
- <beans profile="!springBoot">
- <bean id="BasicMSSpecificNodeConfig"
- class="at.asitplus.eidas.specific.connector.config.BasicConfigurationProvider">
- <constructor-arg value="#{systemProperties['eidas.ms.configuration']}" />
- </bean>
- </beans>
- <beans profile="springBoot">
- <bean id="springBootMsSpecificNodeConfig"
- class="at.asitplus.eidas.specific.connector.config.SpringBootBasicConfigurationProvider" />
- </beans>
-
-</beans> \ No newline at end of file
diff --git a/connector_lib/src/test/resources/config/junit_config_1.properties b/connector_lib/src/test/resources/config/junit_config_1.properties
deleted file mode 100644
index 160725d4..00000000
--- a/connector_lib/src/test/resources/config/junit_config_1.properties
+++ /dev/null
@@ -1,124 +0,0 @@
-## Basic service configuration
-eidas.ms.context.url.prefix=http://localhost/test/
-eidas.ms.context.url.request.validation=true
-eidas.ms.core.configRootDir=file:./src/test/resources/config/
-
-eidas.ms.context.use.clustermode=true
-
-##Monitoring
-eidas.ms.monitoring.eIDASNode.metadata.url=
-
-
-##Specific logger configuration
-eidas.ms.technicallog.write.MDS.into.techlog=true
-eidas.ms.revisionlog.write.MDS.into.revisionlog=true
-eidas.ms.revisionlog.logIPAddressOfUser=true
-
-##Directory for static Web content
-eidas.ms.webcontent.static.directory=webcontent/
-eidas.ms.webcontent.templates=templates/
-eidas.ms.webcontent.properties=properties/messages
-
-## extended validation of pending-request Id's
-eidas.ms.core.pendingrequestid.maxlifetime=300
-eidas.ms.core.pendingrequestid.digist.algorithm=HmacSHA256
-eidas.ms.core.pendingrequestid.digist.secret=pendingReqIdSecret
-
-## eIDAS Ref. Implementation connector ###
-eidas.ms.auth.eIDAS.node_v2.entityId=ownSpecificConnector
-eidas.ms.auth.eIDAS.node_v2.forward.endpoint=
-eidas.ms.auth.eIDAS.node_v2.forward.method=POST
-eidas.ms.auth.eIDAS.node_v2.countrycode=AT
-eidas.ms.auth.eIDAS.node_v2.publicSectorTargets=.*
-eidas.ms.auth.eIDAS.node_v2.workarounds.addAlwaysProviderName=true
-eidas.ms.auth.eIDAS.node_v2.workarounds.useRequestIdAsTransactionIdentifier=true
-eidas.ms.auth.eIDAS.node_v2.workarounds.useStaticProviderNameForPublicSPs=true
-eidas.ms.auth.eIDAS.node_v2.staticProviderNameForPublicSPs=myNode
-
-eidas.ms.auth.eIDAS.node_v2.loa.requested.minimum=http://eidas.europa.eu/LoA/high
-
-eidas.ms.auth.eIDAS.szrclient.useTestService=true
-eidas.ms.auth.eIDAS.szrclient.endpoint.prod=
-eidas.ms.auth.eIDAS.szrclient.endpoint.test=http://localhost:1234/demoszr
-eidas.ms.auth.eIDAS.szrclient.ssl.keyStore.path=keys/.....
-eidas.ms.auth.eIDAS.szrclient.ssl.keyStore.password=
-eidas.ms.auth.eIDAS.szrclient.ssl.trustStore.path=
-eidas.ms.auth.eIDAS.szrclient.ssl.trustStore.password=
-eidas.ms.auth.eIDAS.szrclient.timeout.connection=15
-eidas.ms.auth.eIDAS.szrclient.timeout.response=30
-eidas.ms.auth.eIDAS.szrclient.params.vkz=
-
-eidas.ms.auth.eIDAS.szrclient.params.useSZRForbPKCalculation=false
-
-
-eidas.ms.auth.eIDAS.authblock.keystore.password=f/+saJBc3a}*/T^s
-eidas.ms.auth.eIDAS.authblock.keystore.friendlyName=connectorkeypair
-eidas.ms.auth.eIDAS.authblock.keystore.path=./../keystore/teststore.jks
-eidas.ms.auth.eIDAS.authblock.keystore.type=jks
-eidas.ms.auth.eIDAS.authblock.key.alias=connectorkeypair
-eidas.ms.auth.eIDAS.authblock.key.password=f/+saJBc3a}*/T^s
-
-
-#Raw eIDAS Id data storage
-eidas.ms.auth.eIDAS.szrclient.workarounds.eidmapping.revisionlog.active=true
-
-eidas.ms.auth.eIDAS.szrclient.params.setPlaceOfBirthIfAvailable=true
-eidas.ms.auth.eIDAS.szrclient.params.setBirthNameIfAvailable=true
-
-eidas.ms.auth.eIDAS.szrclient.debug.logfullmessages=true
-eidas.ms.auth.eIDAS.szrclient.debug.useDummySolution=true
-
-##without mandates
-eidas.ms.auth.eIDAS.node_v2.attributes.requested.onlynatural.0=PersonIdentifier,true
-eidas.ms.auth.eIDAS.node_v2.attributes.requested.onlynatural.1=FamilyName,true
-eidas.ms.auth.eIDAS.node_v2.attributes.requested.onlynatural.2=FirstName,true
-eidas.ms.auth.eIDAS.node_v2.attributes.requested.onlynatural.3=DateOfBirth,true
-
-eidas.ms.auth.eIDAS.node_v2.attributes.requested.de.onlynatural.4=PlaceOfBirth,false
-eidas.ms.auth.eIDAS.node_v2.attributes.requested.de.onlynatural.5=BirthName,false
-eidas.ms.auth.eIDAS.node_v2.attributes.requested.de.onlynatural.6=Gender,false
-eidas.ms.auth.eIDAS.node_v2.attributes.requested.de.onlynatural.7=CurrentAddress,false
-eidas.ms.auth.eIDAS.node_v2.attributes.requested.de.onlynatural.8=testtest,false
-
-##with mandates ---- NOT FULLY SUPPORTED AT THE MOMENT -----
-eidas.ms.auth.eIDAS.node_v2.attributes.requested.representation.0=PersonIdentifier,true
-eidas.ms.auth.eIDAS.node_v2.attributes.requested.representation.1=FamilyName,true
-eidas.ms.auth.eIDAS.node_v2.attributes.requested.representation.2=FirstName,true
-eidas.ms.auth.eIDAS.node_v2.attributes.requested.representation.3=DateOfBirth,true
-eidas.ms.auth.eIDAS.node_v2.attributes.requested.representation.4=LegalPerson,true
-eidas.ms.auth.eIDAS.node_v2.attributes.requested.representation.5=LegalName,true
-
-
-## PVP2 S-Profile end-point configuration
-eidas.ms.pvp2.keystore.path=keys/.....
-eidas.ms.pvp2.keystore.password=
-eidas.ms.pvp2.key.metadata.alias=
-eidas.ms.pvp2.key.metadata.password=
-eidas.ms.pvp2.key.signing.alias=
-eidas.ms.pvp2.key.signing.password=
-eidas.ms.pvp2.metadata.validity=24
-
-## Service Provider configuration
-eidas.ms.sp.0.uniqueID=jUnitTest1
-eidas.ms.sp.0.pvp2.metadata.truststore=
-eidas.ms.sp.0.pvp2.metadata.truststore.password=1234pass
-eidas.ms.sp.0.newEidMode=true
-
-eidas.ms.sp.1.uniqueID=jUnitTest2
-eidas.ms.sp.1.friendlyName=jUnit tester 2
-eidas.ms.sp.1.pvp2.metadata.truststore=
-eidas.ms.sp.1.pvp2.metadata.truststore.password=
-eidas.ms.sp.1.newEidMode=false
-
-#eidas.ms.sp.0.friendlyName=
-#eidas.ms.sp.0.pvp2.metadata.url=
-#eidas.ms.sp.0.policy.allowed.requested.targets=.*
-#eidas.ms.sp.0.policy.hasBaseIdTransferRestriction=false
-
-
-##only for advanced config
-eidas.ms.configuration.sp.disableRegistrationRequirement=
-eidas.ms.configuration.restrictions.baseID.spTransmission=
-eidas.ms.configuration.auth.default.countrycode=
-eidas.ms.configuration.pvp.scheme.validation=
-eidas.ms.configuration.pvp.enable.entitycategories= \ No newline at end of file