aboutsummaryrefslogtreecommitdiff
path: root/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/CcSpecificEidProcessingService.java
diff options
context:
space:
mode:
Diffstat (limited to 'eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/CcSpecificEidProcessingService.java')
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/CcSpecificEidProcessingService.java135
1 files changed, 0 insertions, 135 deletions
diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/CcSpecificEidProcessingService.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/CcSpecificEidProcessingService.java
deleted file mode 100644
index 230d6052..00000000
--- a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/CcSpecificEidProcessingService.java
+++ /dev/null
@@ -1,135 +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.modules.auth.eidas.v2.service;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import javax.annotation.PostConstruct;
-
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.ApplicationContext;
-import org.springframework.stereotype.Service;
-
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.dao.ErnbEidData;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidPostProcessingException;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.EidasAttributeException;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.handler.INationalEidProcessor;
-import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.EidasResponseUtils;
-import at.gv.egiz.eaaf.core.api.IRequest;
-import at.gv.egiz.eaaf.core.impl.data.Triple;
-import eu.eidas.auth.commons.light.impl.LightRequest.Builder;
-
-@Service
-public class CcSpecificEidProcessingService implements ICcSpecificEidProcessingService {
- private static final Logger log = LoggerFactory.getLogger(CcSpecificEidProcessingService.class);
-
- @Autowired
- private ApplicationContext context;
-
- private final List<INationalEidProcessor> handlers = new ArrayList<>();
-
- @PostConstruct
- private void initialize() {
- log.debug("Initialize eID PostProcessing-Service ... ");
- final Map<String, INationalEidProcessor> postProcessors = context.getBeansOfType(
- INationalEidProcessor.class);
- final Iterator<Entry<String, INationalEidProcessor>> iterator = postProcessors.entrySet().iterator();
- while (iterator.hasNext()) {
- final Entry<String, INationalEidProcessor> el = iterator.next();
- log.debug("Find eID-PostProcessor with name: " + el.getKey());
- handlers.add(el.getValue());
-
- }
-
- log.trace("Sorting eID-PostProcessors on priority ... ");
- Collections.sort(handlers, (thisAuthModule, otherAuthModule) -> {
- final int thisOrder = thisAuthModule.getPriority();
- final int otherOrder = otherAuthModule.getPriority();
- return thisOrder < otherOrder ? 1 : thisOrder == otherOrder ? 0 : -1;
- });
-
- log.info("# " + handlers.size() + " eID PostProcessing services are registrated");
-
- }
-
- @Override
- public void preProcess(String selectedCitizenCountry, IRequest pendingReq, Builder authnRequestBuilder)
- throws EidPostProcessingException {
- if (StringUtils.isEmpty(selectedCitizenCountry)) {
- log.info("No CountryCode for eID Pre-Processor. Default Pre-Processor will be used");
- }
-
- for (final INationalEidProcessor el : handlers) {
- if (el.canHandle(selectedCitizenCountry)) {
- log.debug("Pre-Process eIDAS request for " + selectedCitizenCountry + " by using: " + el.getName());
- el.preProcess(pendingReq, authnRequestBuilder);
- return;
-
- }
- }
-
- log.error("NO eID PostProcessor FOUND. Looks like a depentency problem!");
- throw new EidPostProcessingException("internal.00", null);
-
- }
-
- @Override
- public ErnbEidData postProcess(Map<String, Object> eidasAttrMap) throws EidPostProcessingException,
- EidasAttributeException {
- // extract citizen country from eIDAS unique identifier
- final Object eIdentifierObj = eidasAttrMap.get(Constants.eIDAS_ATTR_PERSONALIDENTIFIER);
- if (eIdentifierObj == null || !(eIdentifierObj instanceof String)) {
- throw new EidasAttributeException(Constants.eIDAS_ATTR_PERSONALIDENTIFIER);
- }
-
- final Triple<String, String, String> eIdentifier =
- EidasResponseUtils.parseEidasPersonalIdentifier((String) eIdentifierObj);
- final String citizenCountry = eIdentifier.getFirst();
-
- if (StringUtils.isEmpty(citizenCountry)) {
- log.info("No CountryCode for eID PostProcessor. Default-PostProcessor will be used");
- }
-
- for (final INationalEidProcessor el : handlers) {
- if (el.canHandle(citizenCountry)) {
- log.debug("Post-Process eIDAS eID from " + citizenCountry + " by using: " + el.getName());
- return el.postProcess(eidasAttrMap);
-
- }
- }
-
- log.error("NO eID PostProcessor FOUND. Looks like a depentency problem!");
- throw new EidPostProcessingException("internal.00", null);
- }
-
-}