From ebd93e9389e630450e5b052a18a6a6fc8d05f611 Mon Sep 17 00:00:00 2001
From: Thomas Lenz <tlenz@iaik.tugraz.at>
Date: Mon, 28 May 2018 16:40:30 +0200
Subject: refactore code to use EAAF core components

---
 .../id/advancedlogging/DummyStatisticLogger.java   |  58 --
 .../moa/id/advancedlogging/IStatisticLogger.java   |  39 -
 .../moa/id/advancedlogging/MOAReversionLogger.java |  53 +-
 .../moa/id/advancedlogging/StatisticLogger.java    |  21 +-
 .../moa/id/advancedlogging/TransactionIDUtils.java | 101 ---
 .../moa/id/auth/AuthenticationSessionCleaner.java  |  10 +-
 .../moa/id/auth/MOAIDAuthInitializer.java          |   4 +-
 .../id/auth/builder/AuthenticationDataBuilder.java |   6 +-
 .../builder/CreateXMLSignatureRequestBuilder.java  |   5 +-
 .../moa/id/auth/builder/DataURLBuilder.java        | 111 ---
 .../builder/DynamicOAAuthParameterBuilder.java     |  20 +-
 .../exception/InvalidProtocolRequestException.java |  49 --
 .../auth/exception/ProtocolNotActiveException.java |  46 -
 .../id/auth/modules/AbstractAuthServletTask.java   | 229 -----
 .../moa/id/auth/modules/AuthModule.java            |  42 -
 .../id/auth/modules/BKUSelectionModuleImpl.java    |   1 +
 .../modules/SingleSignOnConsentsModuleImpl.java    |   1 +
 .../id/auth/modules/TaskExecutionException.java    |  75 --
 .../internal/tasks/EvaluateBKUSelectionTask.java   |   4 +-
 .../tasks/EvaluateSSOConsentsTaskImpl.java         |   6 +-
 .../internal/tasks/FinalizeAuthenticationTask.java |   4 +-
 .../tasks/GenerateBKUSelectionFrameTask.java       |  12 +-
 .../GenerateSSOConsentEvaluatorFrameTask.java      |  13 +-
 .../tasks/RestartAuthProzessManagement.java        |   8 +-
 .../modules/registration/ModuleRegistration.java   | 149 ----
 .../StartAuthentificationParameterParser.java      |  21 +-
 .../moa/id/auth/servlet/AbstractController.java    | 356 --------
 .../AbstractProcessEngineSignalController.java     |   5 +-
 .../id/auth/servlet/GUILayoutBuilderServlet.java   |   9 +-
 .../id/auth/servlet/IDPSingleLogOutServlet.java    |  14 +-
 .../moa/id/auth/servlet/LogOutServlet.java         |  16 +-
 .../moa/id/auth/servlet/RedirectServlet.java       |  14 +-
 .../UniqueSessionIdentifierInterceptor.java        |   4 +-
 .../interceptor/VHostUrlRewriteServletFilter.java  |   2 +-
 .../WebFrontEndSecurityInterceptor.java            |   4 +-
 .../moa/id/client/utils/SZRGWClientUtils.java      |   7 +-
 .../moa/id/config/ConfigurationProviderImpl.java   |  86 +-
 .../moa/id/config/auth/OAAuthParameter.java        | 938 --------------------
 .../id/config/auth/OAAuthParameterDecorator.java   | 958 +++++++++++++++++++++
 .../PropertyBasedAuthConfigurationProvider.java    | 300 +++----
 .../config/auth/data/DynamicOAAuthParameters.java  |  28 +-
 .../moa/id/data/AuthenticationData.java            |   3 +-
 .../moa/id/data/ExceptionContainer.java            |  86 --
 .../at/gv/egovernment/moa/id/data/IAuthData.java   | 107 ---
 .../moa/id/data/SLOInformationImpl.java            |   1 +
 .../at/gv/egovernment/moa/id/moduls/IAction.java   |  39 -
 .../gv/egovernment/moa/id/moduls/IModulInfo.java   |  42 -
 .../egovernment/moa/id/moduls/IRequestStorage.java |  43 -
 .../id/moduls/NoPassivAuthenticationException.java |  38 -
 .../gv/egovernment/moa/id/moduls/RequestImpl.java  | 454 ----------
 .../egovernment/moa/id/moduls/RequestStorage.java  | 135 ---
 .../gv/egovernment/moa/id/moduls/SSOManager.java   |   5 +-
 .../moa/id/opemsaml/MOAIDHTTPPostEncoder.java      |   2 +-
 .../moa/id/process/ExecutionContextImpl.java       |  79 --
 .../process/ExpressionEvaluationContextImpl.java   |  44 -
 .../moa/id/process/ProcessDefinitionParser.java    | 224 -----
 .../process/ProcessDefinitionParserException.java  |  35 -
 .../egovernment/moa/id/process/ProcessEngine.java  | 110 ---
 .../moa/id/process/ProcessEngineImpl.java          | 420 ---------
 .../moa/id/process/ProcessExecutionException.java  |  36 -
 .../moa/id/process/ProcessInstance.java            | 164 ----
 .../moa/id/process/ProcessInstanceState.java       |  30 -
 .../moa/id/process/api/ExecutionContext.java       |  63 --
 .../process/api/ExpressionEvaluationContext.java   |  23 -
 .../moa/id/process/api/ExpressionEvaluator.java    |  25 -
 .../at/gv/egovernment/moa/id/process/api/Task.java |  26 -
 .../moa/id/process/dao/ProcessInstanceStore.java   |  91 --
 .../id/process/dao/ProcessInstanceStoreDAO.java    |  43 -
 .../process/dao/ProcessInstanceStoreDAOImpl.java   |  93 --
 .../egovernment/moa/id/process/model/EndEvent.java |  42 -
 .../moa/id/process/model/ProcessDefinition.java    | 158 ----
 .../moa/id/process/model/ProcessNode.java          |  69 --
 .../moa/id/process/model/StartEvent.java           |  45 -
 .../egovernment/moa/id/process/model/TaskInfo.java |  94 --
 .../moa/id/process/model/Transition.java           | 136 ---
 .../process/spring/SpringExpressionEvaluator.java  |  61 --
 .../springweb/AbstractAuthSourceServlet.java       | 116 ---
 .../moa/id/process/springweb/MoaIdTask.java        |  99 ---
 .../springweb/SpringWebExpressionEvaluator.java    | 143 ---
 .../moa/id/process/support/SecureRandomHolder.java |  35 -
 .../AbstractAuthProtocolModulController.java       | 309 -------
 .../protocols/ProtocolFinalizationController.java  | 195 -----
 .../builder/attributes/BPKAttributeBuilder.java    |  14 +-
 .../attributes/BirthdateAttributeBuilder.java      |  58 --
 .../protocols/builder/attributes/EIDAuthBlock.java |  14 +-
 .../id/protocols/builder/attributes/EIDCcsURL.java |  15 +-
 .../EIDCitizenQAALevelAttributeBuilder.java        |  18 +-
 .../builder/attributes/EIDIdentityLinkBuilder.java |  67 --
 .../EIDIssuingNationAttributeBuilder.java          |  52 --
 .../builder/attributes/EIDSTORKTOKEN.java          |  14 +-
 .../attributes/EIDSectorForIDAttributeBuilder.java |  15 +-
 .../builder/attributes/EIDSignerCertificate.java   |  14 +-
 .../protocols/builder/attributes/EIDSourcePIN.java |  56 --
 .../builder/attributes/EIDSourcePINType.java       |  51 --
 .../EIDeIDASQAALevelAttributeBuilder.java          |  48 --
 .../attributes/EncryptedBPKAttributeBuilder.java   |  17 +-
 .../attributes/GivenNameAttributeBuilder.java      |  45 -
 .../protocols/builder/attributes/HolderOfKey.java  |  14 +-
 .../builder/attributes/IAttributeBuilder.java      |  36 -
 .../builder/attributes/IAttributeGenerator.java    |  40 -
 .../builder/attributes/IPVPAttributeBuilder.java   |  29 -
 .../MandateFullMandateAttributeBuilder.java        |  12 +-
 ...MandateLegalPersonFullNameAttributeBuilder.java |  12 +-
 ...andateLegalPersonSourcePinAttributeBuilder.java |  12 +-
 ...teLegalPersonSourcePinTypeAttributeBuilder.java |  12 +-
 .../MandateNaturalPersonBPKAttributeBuilder.java   |  17 +-
 ...dateNaturalPersonBirthDateAttributeBuilder.java |  16 +-
 ...ateNaturalPersonFamilyNameAttributeBuilder.java |  12 +-
 ...dateNaturalPersonGivenNameAttributeBuilder.java |  12 +-
 ...dateNaturalPersonSourcePinAttributeBuilder.java |  14 +-
 ...NaturalPersonSourcePinTypeAttributeBuilder.java |  12 +-
 .../MandateProfRepDescAttributeBuilder.java        |  12 +-
 .../MandateProfRepOIDAttributeBuilder.java         |  12 +-
 .../MandateReferenceValueAttributeBuilder.java     |  13 +-
 .../attributes/MandateTypeAttributeBuilder.java    |  12 +-
 .../attributes/MandateTypeOIDAttributeBuilder.java |  12 +-
 .../attributes/PVPVersionAttributeBuilder.java     |  45 -
 .../attributes/PrincipalNameAttributeBuilder.java  |  45 -
 .../id/protocols/pvp2x/AttributQueryAction.java    |  10 +-
 .../id/protocols/pvp2x/AuthenticationAction.java   |   8 +-
 .../moa/id/protocols/pvp2x/MetadataAction.java     |  12 +-
 .../moa/id/protocols/pvp2x/PVP2XProtocol.java      |  16 +-
 .../id/protocols/pvp2x/PVPAssertionStorage.java    |   2 +-
 .../moa/id/protocols/pvp2x/PVPConstants.java       | 246 +-----
 .../id/protocols/pvp2x/PVPTargetConfiguration.java |   2 +-
 .../moa/id/protocols/pvp2x/SingleLogOutAction.java |  20 +-
 .../moa/id/protocols/pvp2x/binding/IEncoder.java   |   2 +-
 .../id/protocols/pvp2x/binding/PostBinding.java    |   4 +-
 .../protocols/pvp2x/binding/RedirectBinding.java   |   2 +-
 .../id/protocols/pvp2x/binding/SoapBinding.java    |   2 +-
 .../pvp2x/builder/AttributQueryBuilder.java        |   2 +-
 .../pvp2x/builder/PVPAttributeBuilder.java         |   6 +-
 .../pvp2x/builder/PVPAuthnRequestBuilder.java      |   2 +-
 .../pvp2x/builder/SingleLogOutBuilder.java         |   4 +-
 .../builder/assertion/PVP2AssertionBuilder.java    |   6 +-
 .../attributes/exceptions/AttributeException.java  |  33 -
 .../exceptions/AttributePolicyException.java       |  40 -
 .../InvalidDateFormatAttributeException.java       |  35 -
 .../NoMandateDataAttributeException.java           |   4 +-
 .../exceptions/UnavailableAttributeException.java  |  40 -
 .../protocols/pvp2x/config/PVPConfiguration.java   |   2 +-
 .../exceptions/AuthnRequestValidatorException.java |  62 --
 .../NameIDFormatNotSupportedException.java         |   2 +
 .../pvp2x/metadata/MOAMetadataProvider.java        |   2 +-
 .../moa/id/protocols/pvp2x/utils/SAML2Utils.java   |   2 +-
 .../pvp2x/validation/AuthnRequestValidator.java    |   2 +-
 .../pvp2x/verification/EntityVerifier.java         |   2 +-
 .../pvp2x/verification/SAMLVerificationEngine.java |   2 +-
 .../storage/DBAuthenticationSessionStoreage.java   |   8 +-
 .../moa/id/storage/DBTransactionStorage.java       |  21 +-
 .../id/storage/IAuthenticationSessionStoreage.java |   4 +-
 .../moa/id/storage/ITransactionStorage.java        | 135 ---
 .../moa/id/storage/RedisTransactionStorage.java    |   1 +
 .../moa/id/util/AbstractEncrytionUtil.java         |   1 +
 .../moa/id/util/ErrorResponseUtils.java            | 105 ---
 .../at/gv/egovernment/moa/id/util/HTTPUtils.java   | 196 -----
 .../moa/id/util/MOAIDMessageProvider.java          | 144 ++++
 .../java/at/gv/egovernment/moa/id/util/Random.java | 187 ----
 .../gv/egovernment/moa/id/util/ServletUtils.java   |  69 --
 ....protocols.builder.attributes.IAttributeBuilder |   9 -
 .../moa/id/module/test/TestRequestImpl.java        |   4 +-
 .../spring/test/DummyTransactionStorage.java       |   2 +-
 .../spring/test/task/CreateSAML1AssertionTask.java |   4 +-
 .../spring/test/task/GetIdentityLinkTask.java      |   4 +-
 .../id/process/spring/test/task/SelectBKUTask.java |   2 +-
 .../spring/test/task/SignAuthBlockTask.java        |   4 +-
 .../spring/test/task/ValidateIdentityLinkTask.java |   2 +-
 .../test/task/ValidateSignedAuthBlockTask.java     |   4 +-
 .../moa/id/process/test/HalloWeltTask.java         |   2 +-
 .../moa/id/process/test/HelloWorldTask.java        |   2 +-
 .../id/storage/test/DBTransactionStorageTest.java  |   2 +-
 171 files changed, 1717 insertions(+), 8460 deletions(-)
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/DummyStatisticLogger.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/IStatisticLogger.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/TransactionIDUtils.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/DataURLBuilder.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/exception/InvalidProtocolRequestException.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/exception/ProtocolNotActiveException.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/AbstractAuthServletTask.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/AuthModule.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/TaskExecutionException.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/registration/ModuleRegistration.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/AbstractController.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameter.java
 create mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameterDecorator.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/ExceptionContainer.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/IAuthData.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/IAction.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/IModulInfo.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/IRequestStorage.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/NoPassivAuthenticationException.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/RequestImpl.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/RequestStorage.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ExecutionContextImpl.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ExpressionEvaluationContextImpl.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessDefinitionParser.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessDefinitionParserException.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessEngine.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessEngineImpl.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessExecutionException.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessInstance.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessInstanceState.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/api/ExecutionContext.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/api/ExpressionEvaluationContext.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/api/ExpressionEvaluator.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/api/Task.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStore.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStoreDAO.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStoreDAOImpl.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/EndEvent.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/ProcessDefinition.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/ProcessNode.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/StartEvent.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/TaskInfo.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/Transition.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/spring/SpringExpressionEvaluator.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/springweb/AbstractAuthSourceServlet.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/springweb/MoaIdTask.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/springweb/SpringWebExpressionEvaluator.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/support/SecureRandomHolder.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/AbstractAuthProtocolModulController.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/ProtocolFinalizationController.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/BirthdateAttributeBuilder.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDIdentityLinkBuilder.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDIssuingNationAttributeBuilder.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDSourcePIN.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDSourcePINType.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDeIDASQAALevelAttributeBuilder.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/GivenNameAttributeBuilder.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/IAttributeBuilder.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/IAttributeGenerator.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/IPVPAttributeBuilder.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/PVPVersionAttributeBuilder.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/PrincipalNameAttributeBuilder.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/exceptions/AttributeException.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/exceptions/AttributePolicyException.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/exceptions/InvalidDateFormatAttributeException.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/exceptions/UnavailableAttributeException.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/exceptions/AuthnRequestValidatorException.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/ITransactionStorage.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ErrorResponseUtils.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/HTTPUtils.java
 create mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/MOAIDMessageProvider.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/Random.java
 delete mode 100644 id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ServletUtils.java

(limited to 'id/server/idserverlib/src')

diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/DummyStatisticLogger.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/DummyStatisticLogger.java
deleted file mode 100644
index 8fff6b20b..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/DummyStatisticLogger.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.advancedlogging;
-
-
-import org.springframework.stereotype.Service;
-
-import at.gv.egovernment.moa.id.commons.api.IRequest;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.logging.Logger;
-
-@Service("StatisticLogger")
-public class DummyStatisticLogger implements IStatisticLogger{
-
-	@Override
-	public void logSuccessOperation(IRequest protocolRequest,
-			IAuthData authData, boolean isSSOSession) {
-		Logger.trace("Dummy-logSuccessOperation");		
-	}
-
-	@Override
-	public void logErrorOperation(Throwable throwable) {
-		Logger.trace("Dummy-logErrorOperation");		
-	}
-
-	@Override
-	public void logErrorOperation(Throwable throwable, IRequest errorRequest) {
-		Logger.trace("Dummy-logErrorOperation");			
-	}
-
-	/* (non-Javadoc)
-	 * @see at.gv.egovernment.moa.id.advancedlogging.IStatisticLogger#testConnection()
-	 */
-	@Override
-	public void testConnection() throws Exception {
-		Logger.trace("Dummy-logErrorOperation");
-		
-	}}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/IStatisticLogger.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/IStatisticLogger.java
deleted file mode 100644
index e0f21c012..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/IStatisticLogger.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.advancedlogging;
-
-import at.gv.egovernment.moa.id.commons.api.IRequest;
-import at.gv.egovernment.moa.id.data.IAuthData;
-
-
-public interface IStatisticLogger {
-		
-	public void logSuccessOperation(IRequest protocolRequest, IAuthData authData, boolean isSSOSession);
-	
-	public void logErrorOperation(Throwable throwable);
-	
-	public void logErrorOperation(Throwable throwable, IRequest errorRequest);
-	
-	public void testConnection() throws Exception;
-	
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/MOAReversionLogger.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/MOAReversionLogger.java
index b26c9c1a9..0090bf3d3 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/MOAReversionLogger.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/MOAReversionLogger.java
@@ -31,11 +31,14 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;
+import at.gv.egiz.eaaf.core.api.IRequest;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.api.logging.IRevisionLogger;
 import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
 import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
 import at.gv.egovernment.moa.id.commons.api.data.IIdentityLink;
 import at.gv.egovernment.moa.id.commons.api.data.IMISMandate;
+import at.gv.egovernment.moa.id.config.auth.OAAuthParameterDecorator;
 import at.gv.egovernment.moa.logging.Logger;
 import at.gv.egovernment.moa.util.Base64Utils;
 import at.gv.egovernment.moa.util.MiscUtil;
@@ -45,7 +48,7 @@ import at.gv.egovernment.moa.util.MiscUtil;
  *
  */
 @Service("MOAReversionLogger")
-public class MOAReversionLogger {
+public class MOAReversionLogger implements IRevisionLogger {
 	
 	@Autowired protected AuthConfiguration authConfig;
 	
@@ -107,13 +110,21 @@ public class MOAReversionLogger {
 
 	);
 			
-	public void logEvent(IOAAuthParameters oaConfig, 
+	/* (non-Javadoc)
+	 * @see at.gv.egovernment.moa.id.advancedlogging.IRevisionLogger#logEvent(at.gv.egovernment.moa.id.commons.api.IOAAuthParameters, int, java.lang.String)
+	 */
+	@Override
+	public void logEvent(ISPConfiguration oaConfig, 
 			int eventCode, String message) {
 		if (selectOASpecificEventCodes(oaConfig).contains(eventCode))
 			MOAIDEventLog.logEvent(MOAIDEventLog.createNewEvent(new Date().getTime(), eventCode, message));		
 	}
 	
-	public void logEvent(IOAAuthParameters oaConfig, IRequest pendingRequest, 
+	/* (non-Javadoc)
+	 * @see at.gv.egovernment.moa.id.advancedlogging.IRevisionLogger#logEvent(at.gv.egovernment.moa.id.commons.api.IOAAuthParameters, at.gv.egiz.eaaf.core.api.IRequest, int)
+	 */
+	@Override
+	public void logEvent(ISPConfiguration oaConfig, IRequest pendingRequest, 
 			int eventCode) {		
 			if (selectOASpecificEventCodes(oaConfig).contains(eventCode))
 			MOAIDEventLog.logEvent(MOAIDEventLog.createNewEvent(new Date().getTime(), eventCode, 
@@ -122,6 +133,10 @@ public class MOAReversionLogger {
 									
 	}
 	
+	/* (non-Javadoc)
+	 * @see at.gv.egovernment.moa.id.advancedlogging.IRevisionLogger#logEvent(at.gv.egovernment.moa.id.commons.api.IOAAuthParameters, at.gv.egiz.eaaf.core.api.IRequest, int, java.lang.String)
+	 */
+	@Override
 	public void logEvent(IOAAuthParameters oaConfig, IRequest pendingRequest, 
 			int eventCode, String message) {		
 		if (selectOASpecificEventCodes(oaConfig).contains(eventCode))
@@ -133,37 +148,37 @@ public class MOAReversionLogger {
 									
 	}
 
-	/**
-	 * @param sessionCreated
-	 * @param uniqueSessionIdentifier
+	/* (non-Javadoc)
+	 * @see at.gv.egovernment.moa.id.advancedlogging.IRevisionLogger#logEvent(int, java.lang.String)
 	 */
+	@Override
 	public void logEvent(int eventCode, String message) {
 		MOAIDEventLog.logEvent(MOAIDEventLog.createNewEvent(new Date().getTime(), eventCode, message));
 		
 	}
 	
-	/**
-	 * @param sessionCreated
-	 * @param uniqueSessionIdentifier
+	/* (non-Javadoc)
+	 * @see at.gv.egovernment.moa.id.advancedlogging.IRevisionLogger#logEvent(java.lang.String, java.lang.String, int, java.lang.String)
 	 */
+	@Override
 	public void logEvent(String sessionID, String transactionID, int eventCode, String message) {
 		MOAIDEventLog.logEvent(MOAIDEventLog.createNewEvent(new Date().getTime(), eventCode, message, sessionID, transactionID));
 		
 	}
 
-	/**
-	 * @param sessionCreated
-	 * @param uniqueSessionIdentifier
+	/* (non-Javadoc)
+	 * @see at.gv.egovernment.moa.id.advancedlogging.IRevisionLogger#logEvent(java.lang.String, java.lang.String, int)
 	 */
+	@Override
 	public void logEvent(String sessionID, String transactionID, int eventCode) {
 		MOAIDEventLog.logEvent(MOAIDEventLog.createNewEvent(new Date().getTime(), eventCode, sessionID, transactionID));
 		
 	}
 	
-	/**
-	 * @param errorRequest
-	 * @param transactionError
+	/* (non-Javadoc)
+	 * @see at.gv.egovernment.moa.id.advancedlogging.IRevisionLogger#logEvent(at.gv.egiz.eaaf.core.api.IRequest, int)
 	 */
+	@Override
 	public void logEvent(IRequest pendingRequest, int eventCode) {
 		MOAIDEventLog.logEvent(MOAIDEventLog.createNewEvent(new Date().getTime(), eventCode, 
 				pendingRequest.getUniqueSessionIdentifier(), 
@@ -171,8 +186,12 @@ public class MOAReversionLogger {
 		
 	}
 	
+	/* (non-Javadoc)
+	 * @see at.gv.egovernment.moa.id.advancedlogging.IRevisionLogger#logEvent(at.gv.egiz.eaaf.core.api.IRequest, int, java.lang.String)
+	 */
+	@Override
 	public void logEvent(IRequest pendingRequest, int eventCode, String message) {
-		logEvent(pendingRequest.getOnlineApplicationConfiguration(), 
+		logEvent(pendingRequest.getServiceProviderConfiguration(OAAuthParameterDecorator.class), 
 				pendingRequest, eventCode, message);
 		
 	}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/StatisticLogger.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/StatisticLogger.java
index 72aef5fed..b0c232ba2 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/StatisticLogger.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/StatisticLogger.java
@@ -43,22 +43,23 @@ import org.springframework.transaction.annotation.Transactional;
 import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;
 import at.gv.e_government.reference.namespace.mandates._20040701_.Mandator;
 import at.gv.e_government.reference.namespace.persondata._20020228_.CorporateBodyType;
+import at.gv.egiz.eaaf.core.api.IRequest;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.logging.IStatisticLogger;
+import at.gv.egiz.eaaf.core.impl.idp.controller.protocols.RequestImpl;
 import at.gv.egovernment.moa.id.auth.exception.BKUException;
 import at.gv.egovernment.moa.id.auth.exception.MISSimpleClientException;
 import at.gv.egovernment.moa.id.auth.exception.ServiceException;
 import at.gv.egovernment.moa.id.client.SZRGWClientException;
 import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
 import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
 import at.gv.egovernment.moa.id.commons.api.data.IAuthenticationSession;
 import at.gv.egovernment.moa.id.commons.api.data.IMISMandate;
 import at.gv.egovernment.moa.id.commons.api.exceptions.ConfigurationException;
 import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
 import at.gv.egovernment.moa.id.commons.db.dao.statistic.StatisticLog;
 import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;
-import at.gv.egovernment.moa.id.config.auth.OAAuthParameter;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.moduls.RequestImpl;
+import at.gv.egovernment.moa.id.config.auth.OAAuthParameterDecorator;
 import at.gv.egovernment.moa.id.storage.IAuthenticationSessionStoreage;
 import at.gv.egovernment.moa.logging.Logger;
 import at.gv.egovernment.moa.util.MiscUtil;
@@ -105,7 +106,7 @@ public class StatisticLogger implements IStatisticLogger{
 		if ( authConfig.isAdvancedLoggingActive() && protocolRequest != null && authData != null) {
 			
 			IOAAuthParameters dbOA = null;
-			dbOA = protocolRequest.getOnlineApplicationConfiguration();
+			dbOA = protocolRequest.getServiceProviderConfiguration(OAAuthParameterDecorator.class);
 
 			if (dbOA == null) {
 				Logger.warn("Advanced logging failed: OA can not be found in database.");
@@ -258,13 +259,13 @@ public class StatisticLogger implements IStatisticLogger{
 			dblog.setTimestamp(new Date());
 			
 			
-			dblog.setOaurlprefix(getMessageWithMaxLength(errorRequest.getOAURL(), MAXOAIDENTIFIER_LENGTH));
+			dblog.setOaurlprefix(getMessageWithMaxLength(errorRequest.getSPEntityId(), MAXOAIDENTIFIER_LENGTH));
 			dblog.setProtocoltype(errorRequest.requestedModule());
 			dblog.setProtocolsubtype(errorRequest.requestedAction());
 			
 			generateErrorLogFormThrowable(throwable, dblog);
 			
-			IOAAuthParameters dbOA = errorRequest.getOnlineApplicationConfiguration();
+			IOAAuthParameters dbOA = errorRequest.getServiceProviderConfiguration(OAAuthParameterDecorator.class);
 			if (dbOA != null) {
 				dblog.setOaurlprefix(getMessageWithMaxLength(dbOA.getPublicURLPrefix(), MAXOAIDENTIFIER_LENGTH));
 				dblog.setOafriendlyName(dbOA.getFriendlyName());
@@ -384,13 +385,13 @@ public class StatisticLogger implements IStatisticLogger{
 	private String findBKUType(String bkuURL, IOAAuthParameters dbOA) {
 		
 		if (dbOA != null) {
-			if (bkuURL.equals(dbOA.getBKUURL(OAAuthParameter.HANDYBKU)))
+			if (bkuURL.equals(dbOA.getBKUURL(OAAuthParameterDecorator.HANDYBKU)))
 				return IOAAuthParameters.HANDYBKU;
 					
-			if (bkuURL.equals(dbOA.getBKUURL(OAAuthParameter.LOCALBKU)))
+			if (bkuURL.equals(dbOA.getBKUURL(OAAuthParameterDecorator.LOCALBKU)))
 				return IOAAuthParameters.LOCALBKU;
 					
-			if (bkuURL.equals(dbOA.getBKUURL(OAAuthParameter.THIRDBKU)))
+			if (bkuURL.equals(dbOA.getBKUURL(OAAuthParameterDecorator.THIRDBKU)))
 				return IOAAuthParameters.THIRDBKU;	
 		}
 		
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/TransactionIDUtils.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/TransactionIDUtils.java
deleted file mode 100644
index 0b066f3b9..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/advancedlogging/TransactionIDUtils.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.advancedlogging;
-
-
-import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
-
-/**
- * @author tlenz
- *
- */
-public class TransactionIDUtils {
-
-	/**
-	 * Set all MDC variables from pending request to this threat context<br>
-	 * These includes SessionID, TransactionID, and unique service-provider identifier
-	 * 
-	 * @param pendingRequest
-	 */
-	public static void setAllLoggingVariables(IRequest pendingRequest) {
-		setTransactionId(pendingRequest.getUniqueTransactionIdentifier());
-		setSessionId(pendingRequest.getUniqueSessionIdentifier());
-		setServiceProviderId(pendingRequest.getOnlineApplicationConfiguration().getPublicURLPrefix());
-		
-	}
-	
-	/**
-	 * Remove all MDC variables from this threat context
-	 * 
-	 */
-	public static void removeAllLoggingVariables() {
-		removeSessionId();
-		removeTransactionId();
-		removeServiceProviderId();
-		
-	}
-	
-	
-	public static void setServiceProviderId(String oaUniqueId) {
-		org.apache.log4j.MDC.put(MOAIDAuthConstants.MDC_SERVICEPROVIDER_ID, oaUniqueId);		
-		org.slf4j.MDC.put(MOAIDAuthConstants.MDC_SERVICEPROVIDER_ID, oaUniqueId);
-		
-	}
-	
-	public static void removeServiceProviderId() {
-		org.apache.log4j.MDC.remove(MOAIDAuthConstants.MDC_SERVICEPROVIDER_ID);
-		org.slf4j.MDC.remove(MOAIDAuthConstants.MDC_SERVICEPROVIDER_ID);
-		
-	}
-	
-	public static void setTransactionId(String pendingRequestID) {	  
-		org.apache.log4j.MDC.put(MOAIDAuthConstants.MDC_TRANSACTION_ID, 
-				"TID-" + pendingRequestID);		
-		org.slf4j.MDC.put(MOAIDAuthConstants.MDC_TRANSACTION_ID, 
-				"TID-" + pendingRequestID);
-				    
-	}
-		
-	public static void removeTransactionId() {
-		org.apache.log4j.MDC.remove(MOAIDAuthConstants.MDC_TRANSACTION_ID);
-		org.slf4j.MDC.remove(MOAIDAuthConstants.MDC_TRANSACTION_ID);
-		
-	}
-		
-	public static void setSessionId(String uniqueSessionId) {	  
-		org.apache.log4j.MDC.put(MOAIDAuthConstants.MDC_SESSION_ID, 
-				"SID-" + uniqueSessionId);		
-		org.slf4j.MDC.put(MOAIDAuthConstants.MDC_SESSION_ID, 
-				"SID-" + uniqueSessionId);
-				    
-	}
-		
-	public static void removeSessionId() {
-		org.apache.log4j.MDC.remove(MOAIDAuthConstants.MDC_SESSION_ID);
-		org.slf4j.MDC.remove(MOAIDAuthConstants.MDC_SESSION_ID);
-		
-	}
-	
-	
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationSessionCleaner.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationSessionCleaner.java
index 34d0d4be1..5f2dd6582 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationSessionCleaner.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationSessionCleaner.java
@@ -12,14 +12,14 @@ import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 
-import at.gv.egovernment.moa.id.advancedlogging.TransactionIDUtils;
+import at.gv.egiz.eaaf.core.api.data.ExceptionContainer;
+import at.gv.egiz.eaaf.core.api.storage.ITransactionStorage;
+import at.gv.egiz.eaaf.core.exceptions.ProcessExecutionException;
+import at.gv.egiz.eaaf.core.impl.utils.TransactionIDUtils;
 import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
 import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
-import at.gv.egovernment.moa.id.commons.utils.MOAIDMessageProvider;
-import at.gv.egovernment.moa.id.data.ExceptionContainer;
-import at.gv.egovernment.moa.id.process.ProcessExecutionException;
 import at.gv.egovernment.moa.id.storage.IAuthenticationSessionStoreage;
-import at.gv.egovernment.moa.id.storage.ITransactionStorage;
+import at.gv.egovernment.moa.id.util.MOAIDMessageProvider;
 import at.gv.egovernment.moa.logging.Logger;
 import at.gv.egovernment.moa.util.MiscUtil;
 
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/MOAIDAuthInitializer.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/MOAIDAuthInitializer.java
index 3d45e2468..eaec781e3 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/MOAIDAuthInitializer.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/MOAIDAuthInitializer.java
@@ -32,11 +32,11 @@ import javax.activation.MailcapCommandMap;
 
 import org.springframework.web.context.support.GenericWebApplicationContext;
 
+import at.gv.egiz.eaaf.core.impl.utils.Random;
 import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
 import at.gv.egovernment.moa.id.commons.api.exceptions.ConfigurationException;
-import at.gv.egovernment.moa.id.commons.utils.MOAIDMessageProvider;
 import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProviderFactory;
-import at.gv.egovernment.moa.id.util.Random;
+import at.gv.egovernment.moa.id.util.MOAIDMessageProvider;
 import at.gv.egovernment.moa.id.util.SSLUtils;
 import at.gv.egovernment.moa.logging.Logger;
 import at.gv.egovernment.moa.spss.MOAException;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataBuilder.java
index b93de5119..e72780cab 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataBuilder.java
@@ -47,6 +47,9 @@ import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
+import at.gv.egiz.eaaf.core.api.IOAAuthParameters;
+import at.gv.egiz.eaaf.core.api.IRequest;
+import at.gv.egiz.eaaf.core.api.data.IAuthData;
 import at.gv.egovernment.moa.id.auth.data.AuthenticationSessionStorageConstants;
 import at.gv.egovernment.moa.id.auth.exception.BuildException;
 import at.gv.egovernment.moa.id.auth.exception.DynamicOABuildException;
@@ -55,8 +58,6 @@ import at.gv.egovernment.moa.id.auth.exception.WrongParametersException;
 import at.gv.egovernment.moa.id.auth.parser.IdentityLinkAssertionParser;
 import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants;
 import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
 import at.gv.egovernment.moa.id.commons.api.data.ExtendedSAMLAttribute;
 import at.gv.egovernment.moa.id.commons.api.data.IAuthenticationSession;
 import at.gv.egovernment.moa.id.commons.api.data.IIdentityLink;
@@ -68,7 +69,6 @@ import at.gv.egovernment.moa.id.commons.api.exceptions.SessionDataStorageExcepti
 import at.gv.egovernment.moa.id.commons.db.dao.session.OASessionStore;
 import at.gv.egovernment.moa.id.data.AuthenticationData;
 import at.gv.egovernment.moa.id.data.AuthenticationRoleFactory;
-import at.gv.egovernment.moa.id.data.IAuthData;
 import at.gv.egovernment.moa.id.data.MISMandate;
 import at.gv.egovernment.moa.id.data.Pair;
 import at.gv.egovernment.moa.id.protocols.pvp2x.PVPConstants;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/CreateXMLSignatureRequestBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/CreateXMLSignatureRequestBuilder.java
index 4c4af4239..a43e6a7fb 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/CreateXMLSignatureRequestBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/CreateXMLSignatureRequestBuilder.java
@@ -50,11 +50,12 @@ import java.text.MessageFormat;
 import java.util.Calendar;
 import java.util.List;
 
+import at.gv.egiz.eaaf.core.api.IRequest;
 import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants;
 import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
 import at.gv.egovernment.moa.id.commons.api.exceptions.ConfigurationException;
 import at.gv.egovernment.moa.id.config.TargetToSectorNameMapper;
+import at.gv.egovernment.moa.id.config.auth.OAAuthParameterDecorator;
 import at.gv.egovernment.moa.util.Constants;
 import at.gv.egovernment.moa.util.DateTimeUtils;
 import at.gv.egovernment.moa.util.MiscUtil;
@@ -185,7 +186,7 @@ public class CreateXMLSignatureRequestBuilder implements Constants {
 	}
 	
 	public static String buildForeignIDTextToBeSigned(String subject, IRequest pendingReq) throws ConfigurationException {		
-		IOAAuthParameters oaParam = pendingReq.getOnlineApplicationConfiguration();		
+		IOAAuthParameters oaParam = pendingReq.getServiceProviderConfiguration(OAAuthParameterDecorator.class);		
 		String target = null;
 		String sectorName = null;
 		
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/DataURLBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/DataURLBuilder.java
deleted file mode 100644
index 583bb2ab4..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/DataURLBuilder.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- * 
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- * 
- * 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.
- ******************************************************************************/
-/*
- * Copyright 2003 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.auth.builder;
-
-import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants;
-
-/**
- * Builds a DataURL parameter meant for the security layer implementation
- * to respond to.
- * 
- * @author Paul Ivancsics
- * @version $Id$
- */
-public class DataURLBuilder {
-	
-  /**
-   * Constructor for DataURLBuilder.
-   */
-  public DataURLBuilder() {
-    super();
-  }
-
-  /**
-   * Constructs a data URL for <code>VerifyIdentityLink</code> or <code>VerifyAuthenticationBlock</code>, 
-   * including the <code>MOASessionID</code> as a parameter.
-   * 
-   * @param authBaseURL base URL (context path) of the MOA ID Authentication component,
-   * 				 including a trailing <code>'/'</code>
-   * @param authServletName request part of the data URL
-   * @param sessionID sessionID to be included in the dataURL
-   * @return String
-   */
-  public String buildDataURL(String authBaseURL, String authServletName, String sessionID) {
-		String dataURL;		
-		if (!authBaseURL.endsWith("/"))
-			authBaseURL += "/";
-		
-		if (authServletName.startsWith("/"))
-			authServletName = authServletName.substring(1);
-		
-		dataURL = authBaseURL + authServletName;
-
-		if (sessionID != null)
-			dataURL = addParameter(dataURL, MOAIDAuthConstants.PARAM_TARGET_PENDINGREQUESTID, sessionID);
-		
-  	return dataURL;
-  }
-
-  /**
-   * Method addParameter.
-   * @param urlString represents the url 
-   * @param paramname is the parameter to be added
-   * @param value is the value of that parameter
-   * @return String
-   */
-  private String addParameter(String urlString, String paramname, String value) {
-    String url = urlString;
-    if (paramname != null) {
-      if (url.indexOf("?") < 0)
-        url += "?";
-      else
-        url += "&";
-      url += paramname + "=" + value;
-    }
-    return url;
-  }
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/DynamicOAAuthParameterBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/DynamicOAAuthParameterBuilder.java
index fc5489673..e9e217137 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/DynamicOAAuthParameterBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/DynamicOAAuthParameterBuilder.java
@@ -27,12 +27,13 @@ import java.util.List;
 
 import org.opensaml.saml2.core.Attribute;
 
+import at.gv.egiz.eaaf.core.api.IRequest;
+import at.gv.egiz.eaaf.core.api.data.PVPAttributeConstants;
+import at.gv.egiz.eaaf.core.exceptions.EAAFConfigurationException;
 import at.gv.egovernment.moa.id.auth.exception.DynamicOABuildException;
 import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
 import at.gv.egovernment.moa.id.commons.api.exceptions.ConfigurationException;
 import at.gv.egovernment.moa.id.config.auth.data.DynamicOAAuthParameters;
-import at.gv.egovernment.moa.id.protocols.pvp2x.PVPConstants;
 import at.gv.egovernment.moa.logging.Logger;
 import at.gv.egovernment.moa.util.Constants;
 
@@ -50,7 +51,7 @@ public class DynamicOAAuthParameterBuilder {
 				
 		for (Attribute attr : reqAttributes) {				
 			//get Target or BusinessService from request 
-			if (attr.getName().equals(PVPConstants.EID_SECTOR_FOR_IDENTIFIER_NAME)) {
+			if (attr.getName().equals(PVPAttributeConstants.EID_SECTOR_FOR_IDENTIFIER_NAME)) {
 				String attrValue = attr.getAttributeValues().get(0).getDOM().getTextContent();
 				if (attrValue.startsWith(Constants.URN_PREFIX_CDID)) {
 					//dynamicOA.setBusinessService(false);
@@ -88,9 +89,16 @@ public class DynamicOAAuthParameterBuilder {
 		
 		DynamicOAAuthParameters dynOAParams = new DynamicOAAuthParameters();
 		dynOAParams.setApplicationID(oaParam.getPublicURLPrefix());
-	
-		dynOAParams.setHasBaseIdProcessingRestriction(oaParam.hasBaseIdInternalProcessingRestriction());
-		dynOAParams.setHasBaseIdTransfergRestriction(oaParam.hasBaseIdTransferRestriction());
+		try {
+			dynOAParams.setHasBaseIdProcessingRestriction(oaParam.hasBaseIdInternalProcessingRestriction());
+			dynOAParams.setHasBaseIdTransfergRestriction(oaParam.hasBaseIdTransferRestriction());
+			
+		} catch (EAAFConfigurationException e) {
+			Logger.warn("Can not resolve baseID restrications! Set to privacy friendly configuration", e);
+			dynOAParams.setHasBaseIdProcessingRestriction(true);
+			dynOAParams.setHasBaseIdTransfergRestriction(true);
+			
+		}
 		
 		Object storkRequst = null;
 		try {
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/exception/InvalidProtocolRequestException.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/exception/InvalidProtocolRequestException.java
deleted file mode 100644
index c6b8a4b6e..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/exception/InvalidProtocolRequestException.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.auth.exception;
-
-import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
-
-/**
- * @author tlenz
- *
- */
-public class InvalidProtocolRequestException extends MOAIDException {
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -7866198705324084601L;
-
-	/**
-	 * @param messageId
-	 * @param parameters
-	 */
-	public InvalidProtocolRequestException(String messageId, Object[] parameters) {
-		super(messageId, parameters);
-	}
-
-	public InvalidProtocolRequestException(String messageId, Object[] parameters, Throwable e) {
-		super(messageId, parameters, e);
-	}
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/exception/ProtocolNotActiveException.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/exception/ProtocolNotActiveException.java
deleted file mode 100644
index 2d09384a3..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/exception/ProtocolNotActiveException.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.auth.exception;
-
-import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
-
-/**
- * @author tlenz
- *
- */
-public class ProtocolNotActiveException extends MOAIDException {
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 1832697083163940710L;
-
-	/**
-	 * @param messageId
-	 * @param parameters
-	 */
-	public ProtocolNotActiveException(String messageId, Object[] parameters) {
-		super(messageId, parameters);
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/AbstractAuthServletTask.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/AbstractAuthServletTask.java
deleted file mode 100644
index ec6dbc951..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/AbstractAuthServletTask.java
+++ /dev/null
@@ -1,229 +0,0 @@
-package at.gv.egovernment.moa.id.auth.modules;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.FileItemFactory;
-import org.apache.commons.fileupload.FileUploadException;
-import org.apache.commons.fileupload.disk.DiskFileItemFactory;
-import org.apache.commons.fileupload.servlet.ServletFileUpload;
-import org.apache.commons.lang3.ArrayUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-
-import at.gv.egovernment.moa.id.advancedlogging.MOAReversionLogger;
-import at.gv.egovernment.moa.id.auth.builder.DataURLBuilder;
-import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
-import at.gv.egovernment.moa.id.commons.api.data.IAuthenticationSession;
-import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
-import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;
-import at.gv.egovernment.moa.id.moduls.IRequestStorage;
-import at.gv.egovernment.moa.id.process.api.ExecutionContext;
-import at.gv.egovernment.moa.id.process.springweb.MoaIdTask;
-import at.gv.egovernment.moa.id.protocols.AbstractAuthProtocolModulController;
-import at.gv.egovernment.moa.logging.Logger;
-
-/**
- * Task based counterpart to {@link AuthServlet}, providing the same utility methods (error handling, parameter parsing
- * etc.).</p> The code has been taken from {@link AuthServlet}.
- */
-public abstract class AbstractAuthServletTask extends MoaIdTask {
-
-	@Autowired protected IRequestStorage requestStoreage;
-	//@Autowired protected IAuthenticationSessionStoreage authenticatedSessionStorage;
-	@Autowired protected MOAReversionLogger revisionsLogger;
-	@Autowired protected AuthConfiguration authConfig;
-	
-	protected static final String ERROR_CODE_PARAM = "errorid";
-
-	protected IRequest pendingReq = null;
-	protected IAuthenticationSession moasession = null;
-	
-	public abstract void execute(ExecutionContext executionContext, HttpServletRequest request,
-			HttpServletResponse response) throws TaskExecutionException;
-	
-	
-	protected final IRequest internalExecute(IRequest pendingReq, ExecutionContext executionContext, HttpServletRequest request,
-			HttpServletResponse response) throws TaskExecutionException {
-		//set pending-request object
-		this.pendingReq = pendingReq;
-		
-		//execute task specific action
-		execute(executionContext, request, response);
-		
-		//return pending-request object
-		return this.pendingReq;
-	}
-	
-	
-	/**
-	 * Default initialization loads the MOASession object from database
-	 * 
-	 * @param req
-	 * @param executionContext
-	 * @throws MOAIDException
-	 * @throws MOADatabaseException
-	 */
-	protected void defaultTaskInitialization(HttpServletRequest req, ExecutionContext executionContext) throws MOAIDException, MOADatabaseException {								
-		Logger.trace("Get MOASessionData object from pendingReq:" + pendingReq.getRequestID());
-		moasession = pendingReq.getMOASession();
-		
-	}
-
-	/**
-	 * Redirect the authentication process to protocol specific finalization endpoint.  
-	 * 
-	 * @param pendingReq Actually processed protocol specific authentication request
-	 * @param httpResp
-	 */
-	protected void performRedirectToProtocolFinialization(IRequest pendingReq, HttpServletResponse httpResp) {
-		performRedirectToItself(pendingReq, httpResp, AbstractAuthProtocolModulController.FINALIZEPROTOCOL_ENDPOINT);
-				
-	}
-	
-	/**
-	 * Redirect the authentication process to MOA-ID-Auth itself  
-	 * 
-	 * @param pendingReq Actually processed protocol specific authentication request
-	 * @param httpResp
-	 * @param moaIDEndPoint Servlet EndPoint that should receive the redirect
-	 */
-	protected void performRedirectToItself(IRequest pendingReq, HttpServletResponse httpResp, String moaIDEndPoint) {
-		String redirectURL = new DataURLBuilder().buildDataURL(pendingReq.getAuthURL(), 
-				moaIDEndPoint, pendingReq.getRequestID());
-						
-		httpResp.setContentType("text/html");
-		httpResp.setStatus(302);
-		httpResp.addHeader("Location", redirectURL);		
-		Logger.debug("REDIRECT TO: " + redirectURL);
-		
-	}
-	
-	
-	/**
-	 * Parses the request input stream for parameters, assuming parameters are
-	 * encoded UTF-8 (no standard exists how browsers should encode them).
-	 * 
-	 * @param req
-	 *            servlet request
-	 * 
-	 * @return mapping parameter name -> value
-	 * 
-	 * @throws IOException
-	 *             if parsing request parameters fails.
-	 * 
-	 * @throws FileUploadException
-	 *             if parsing request parameters fails.
-	 */
-	protected Map<String, String> getParameters(HttpServletRequest req) throws IOException,
-			FileUploadException {
-
-		Map<String, String> parameters = new HashMap<String, String>();
-
-		if (ServletFileUpload.isMultipartContent(req)) {
-			// request is encoded as mulitpart/form-data
-			FileItemFactory factory = new DiskFileItemFactory();
-			ServletFileUpload upload = null;
-			upload = new ServletFileUpload(factory);
-			List items = null;
-			items = upload.parseRequest(req);
-			for (int i = 0; i < items.size(); i++) {
-				FileItem item = (FileItem) items.get(i);
-				if (item.isFormField()) {
-					// Process only form fields - no file upload items
-					String logString = item.getString("UTF-8");
-
-					// TODO use RegExp
-					String startS = "<pr:Identification><pr:Value>";
-					String endS = "</pr:Value><pr:Type>urn:publicid:gv.at:baseid</pr:Type>";
-					String logWithMaskedBaseid = logString;
-					int start = logString.indexOf(startS);
-					if (start > -1) {
-						int end = logString.indexOf(endS);
-						if (end > -1) {
-							logWithMaskedBaseid = logString.substring(0, start);
-							logWithMaskedBaseid += startS;
-							logWithMaskedBaseid += "xxxxxxxxxxxxxxxxxxxxxxxx";
-							logWithMaskedBaseid += logString.substring(end,
-									logString.length());
-						}
-					}
-					parameters
-							.put(item.getFieldName(), item.getString("UTF-8"));
-					Logger.debug("Processed multipart/form-data request parameter: \nName: "
-							+ item.getFieldName()
-							+ "\nValue: "
-							+ logWithMaskedBaseid);
-				}
-			}
-		}
-
-		else {	
-			Iterator<Entry<String, String[]>> requestParamIt = req.getParameterMap().entrySet().iterator();
-			while (requestParamIt.hasNext()) {
-				Entry<String, String[]> entry = requestParamIt.next();
-				String key = entry.getKey();
-				String[] values = entry.getValue();
-				// take the last value from the value array since the legacy code above also does it this way
-				parameters.put(key, ArrayUtils.isEmpty(values) ? null : values[values.length-1]); 
-			}
-			
-		}
-
-		return parameters;
-	}
-
-	/**
-	 * Reads bytes up to a delimiter, consuming the delimiter.
-	 * 
-	 * @param in
-	 *            input stream
-	 * @param delimiter
-	 *            delimiter character
-	 * @return String constructed from the read bytes
-	 * @throws IOException
-	 */
-	protected String readBytesUpTo(InputStream in, char delimiter)
-			throws IOException {
-		ByteArrayOutputStream bout = new ByteArrayOutputStream();
-		boolean done = false;
-		int b;
-		while (!done && (b = in.read()) >= 0) {
-			if (b == delimiter)
-				done = true;
-			else
-				bout.write(b);
-		}
-		return bout.toString();
-	}
-
-	/**
-	 * Adds a parameter to a URL.
-	 * 
-	 * @param url
-	 *            the URL
-	 * @param paramname
-	 *            parameter name
-	 * @param paramvalue
-	 *            parameter value
-	 * @return the URL with parameter added
-	 */
-	protected static String addURLParameter(String url, String paramname,
-			String paramvalue) {
-		String param = paramname + "=" + paramvalue;
-		if (url.indexOf("?") < 0)
-			return url + "?" + param;
-		else
-			return url + "&" + param;
-	}
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/AuthModule.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/AuthModule.java
deleted file mode 100644
index 8983403d8..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/AuthModule.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package at.gv.egovernment.moa.id.auth.modules;
-
-import at.gv.egovernment.moa.id.process.api.ExecutionContext;
-import at.gv.egovernment.moa.id.process.model.ProcessDefinition;
-
-/**
- * Provides metadata of a certain module. Uses for module discovery and process selection.
- */
-public interface AuthModule {
-
-	/**
-	 * Returns the priority of the module. The priority defines the order of the respective module within the chain of
-	 * discovered modules. Higher priorized modules are asked before lower priorized modules for a process that they can
-	 * handle.
-	 * <p/>
-	 * Internal default modules are priorized neutral ({@code 0}. Use a higher priority ({@code 1...Integer.MAX_VALUE})
-	 * in order to have your module(s) priorized or a lower priority ({@code Integer.MIN_VALUE...-1}) in order to put
-	 * your modules behind default modules.
-	 * 
-	 * @return the priority of the module.
-	 */
-	int getPriority();
-
-	/**
-	 * Selects a process (description), referenced by its unique id, which is able to perform authentication with the
-	 * given {@link ExecutionContext}. Returns {@code null} if no appropriate process (description) was available within
-	 * this module.
-	 * 
-	 * @param context
-	 *            an ExecutionContext for a process.
-	 * @return the process-ID of a process which is able to work with the given ExecutionContext, or {@code null}.
-	 */
-	String selectProcess(ExecutionContext context);
-
-	/**
-	 * Returns the an Array of {@link ProcessDefinition}s of the processes included in this module.
-	 * 
-	 * @return an array of resource uris of the processes included in this module.
-	 */
-	String[] getProcessDefinitions();
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/BKUSelectionModuleImpl.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/BKUSelectionModuleImpl.java
index 90795a416..841613cba 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/BKUSelectionModuleImpl.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/BKUSelectionModuleImpl.java
@@ -22,6 +22,7 @@
  */
 package at.gv.egovernment.moa.id.auth.modules;
 
+import at.gv.egiz.eaaf.core.impl.idp.auth.modules.AuthModule;
 import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants;
 import at.gv.egovernment.moa.id.process.api.ExecutionContext;
 
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/SingleSignOnConsentsModuleImpl.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/SingleSignOnConsentsModuleImpl.java
index d64126de6..86acc5fdd 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/SingleSignOnConsentsModuleImpl.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/SingleSignOnConsentsModuleImpl.java
@@ -22,6 +22,7 @@
  */
 package at.gv.egovernment.moa.id.auth.modules;
 
+import at.gv.egiz.eaaf.core.impl.idp.auth.modules.AuthModule;
 import at.gv.egovernment.moa.id.process.api.ExecutionContext;
 
 /**
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/TaskExecutionException.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/TaskExecutionException.java
deleted file mode 100644
index 1128cbab3..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/TaskExecutionException.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.auth.modules;
-
-import at.gv.egovernment.moa.id.commons.api.IRequest;
-import at.gv.egovernment.moa.id.process.ProcessExecutionException;
-import at.gv.egovernment.moa.util.MiscUtil;
-
-/**
- * @author tlenz
- *
- */
-public class TaskExecutionException extends ProcessExecutionException {
-
-	private static final long serialVersionUID = 1L;
-	Throwable originalException = null;
-	String pendingRequestID = null;
-	
-	/**
-	 * @param message
-	 * @param cause
-	 */
-	public TaskExecutionException(IRequest pendingReq, String message, Throwable cause) {
-		super(message, cause);
-		this.originalException = cause;
-		
-		if (MiscUtil.isNotEmpty(pendingReq.getRequestID()))
-			this.pendingRequestID = pendingReq.getRequestID();
-		
-	}
-
-	/**
-	 * Get the original internal exception from task
-	 * 
-	 * @return the originalException
-	 */
-	public Throwable getOriginalException() {
-		return originalException;
-		
-	}
-
-	/**
-	 * Get the pending-request ID of that request, which was processed when the exception occurs 
-	 * 
-	 * @return the pendingRequestID
-	 */
-	public String getPendingRequestID() {
-		return pendingRequestID;
-	}
-	
-	
-	
-	
-	
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/EvaluateBKUSelectionTask.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/EvaluateBKUSelectionTask.java
index 42789d01d..09d42e49f 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/EvaluateBKUSelectionTask.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/EvaluateBKUSelectionTask.java
@@ -30,8 +30,8 @@ import javax.servlet.http.HttpServletResponse;
 import org.apache.commons.lang.StringEscapeUtils;
 import org.springframework.stereotype.Component;
 
-import at.gv.egovernment.moa.id.auth.modules.AbstractAuthServletTask;
-import at.gv.egovernment.moa.id.auth.modules.TaskExecutionException;
+import at.gv.egiz.eaaf.core.exceptions.TaskExecutionException;
+import at.gv.egiz.eaaf.core.impl.idp.auth.modules.AbstractAuthServletTask;
 import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants;
 import at.gv.egovernment.moa.id.process.api.ExecutionContext;
 import at.gv.egovernment.moa.logging.Logger;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/EvaluateSSOConsentsTaskImpl.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/EvaluateSSOConsentsTaskImpl.java
index 1c26ff5ec..242b565ab 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/EvaluateSSOConsentsTaskImpl.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/EvaluateSSOConsentsTaskImpl.java
@@ -29,12 +29,12 @@ import org.apache.commons.lang.StringEscapeUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import at.gv.egiz.eaaf.core.exceptions.TaskExecutionException;
+import at.gv.egiz.eaaf.core.impl.idp.auth.modules.AbstractAuthServletTask;
 import at.gv.egovernment.moa.id.advancedlogging.MOAIDEventConstants;
 import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;
 import at.gv.egovernment.moa.id.auth.exception.AuthenticationException;
 import at.gv.egovernment.moa.id.auth.exception.WrongParametersException;
-import at.gv.egovernment.moa.id.auth.modules.AbstractAuthServletTask;
-import at.gv.egovernment.moa.id.auth.modules.TaskExecutionException;
 import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
 import at.gv.egovernment.moa.id.moduls.SSOManager;
 import at.gv.egovernment.moa.id.process.api.ExecutionContext;
@@ -106,7 +106,7 @@ public class EvaluateSSOConsentsTaskImpl extends AbstractAuthServletTask {
 								
 			} else {
 				//user deny single sign-on authentication
-				Logger.debug("User deny the Single Sign-On authentication for SP: " + pendingReq.getOAURL());
+				Logger.debug("User deny the Single Sign-On authentication for SP: " + pendingReq.getSPEntityId());
 				pendingReq.setAbortedByUser(true);
 			
 			}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/FinalizeAuthenticationTask.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/FinalizeAuthenticationTask.java
index 4eff0fcf5..91c1f999c 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/FinalizeAuthenticationTask.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/FinalizeAuthenticationTask.java
@@ -27,8 +27,8 @@ import javax.servlet.http.HttpServletResponse;
 
 import org.springframework.stereotype.Component;
 
-import at.gv.egovernment.moa.id.auth.modules.AbstractAuthServletTask;
-import at.gv.egovernment.moa.id.auth.modules.TaskExecutionException;
+import at.gv.egiz.eaaf.core.exceptions.TaskExecutionException;
+import at.gv.egiz.eaaf.core.impl.idp.auth.modules.AbstractAuthServletTask;
 import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants;
 import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
 import at.gv.egovernment.moa.id.process.api.ExecutionContext;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/GenerateBKUSelectionFrameTask.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/GenerateBKUSelectionFrameTask.java
index 710008714..cbd8d2aa6 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/GenerateBKUSelectionFrameTask.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/GenerateBKUSelectionFrameTask.java
@@ -28,16 +28,16 @@ import javax.servlet.http.HttpServletResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import at.gv.egiz.eaaf.core.api.IOAAuthParameters;
+import at.gv.egiz.eaaf.core.api.gui.IGUIBuilderConfiguration;
+import at.gv.egiz.eaaf.core.api.gui.IGUIFormBuilder;
+import at.gv.egiz.eaaf.core.exceptions.GUIBuildException;
+import at.gv.egiz.eaaf.core.exceptions.TaskExecutionException;
+import at.gv.egiz.eaaf.core.impl.idp.auth.modules.AbstractAuthServletTask;
 import at.gv.egovernment.moa.id.advancedlogging.MOAIDEventConstants;
 import at.gv.egovernment.moa.id.auth.exception.AuthenticationException;
-import at.gv.egovernment.moa.id.auth.frontend.builder.IGUIBuilderConfiguration;
-import at.gv.egovernment.moa.id.auth.frontend.builder.IGUIFormBuilder;
 import at.gv.egovernment.moa.id.auth.frontend.builder.SPSpecificGUIBuilderConfigurationWithDBLoad;
-import at.gv.egovernment.moa.id.auth.frontend.exception.GUIBuildException;
-import at.gv.egovernment.moa.id.auth.modules.AbstractAuthServletTask;
-import at.gv.egovernment.moa.id.auth.modules.TaskExecutionException;
 import at.gv.egovernment.moa.id.auth.servlet.GeneralProcessEngineSignalController;
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
 import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
 import at.gv.egovernment.moa.id.process.api.ExecutionContext;
 import at.gv.egovernment.moa.logging.Logger;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/GenerateSSOConsentEvaluatorFrameTask.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/GenerateSSOConsentEvaluatorFrameTask.java
index 475009cf2..1efd9cc13 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/GenerateSSOConsentEvaluatorFrameTask.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/GenerateSSOConsentEvaluatorFrameTask.java
@@ -28,15 +28,16 @@ import javax.servlet.http.HttpServletResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import at.gv.egiz.eaaf.core.api.gui.IGUIBuilderConfiguration;
+import at.gv.egiz.eaaf.core.api.gui.IGUIFormBuilder;
+import at.gv.egiz.eaaf.core.exceptions.GUIBuildException;
+import at.gv.egiz.eaaf.core.exceptions.TaskExecutionException;
+import at.gv.egiz.eaaf.core.impl.idp.auth.modules.AbstractAuthServletTask;
 import at.gv.egovernment.moa.id.advancedlogging.MOAIDEventConstants;
-import at.gv.egovernment.moa.id.auth.frontend.builder.IGUIBuilderConfiguration;
-import at.gv.egovernment.moa.id.auth.frontend.builder.IGUIFormBuilder;
 import at.gv.egovernment.moa.id.auth.frontend.builder.SPSpecificGUIBuilderConfigurationWithDBLoad;
-import at.gv.egovernment.moa.id.auth.frontend.exception.GUIBuildException;
-import at.gv.egovernment.moa.id.auth.modules.AbstractAuthServletTask;
-import at.gv.egovernment.moa.id.auth.modules.TaskExecutionException;
 import at.gv.egovernment.moa.id.auth.servlet.GeneralProcessEngineSignalController;
 import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
+import at.gv.egovernment.moa.id.config.auth.OAAuthParameterDecorator;
 import at.gv.egovernment.moa.id.process.api.ExecutionContext;
 import at.gv.egovernment.moa.logging.Logger;
 
@@ -76,7 +77,7 @@ public class GenerateSSOConsentEvaluatorFrameTask extends AbstractAuthServletTas
 			guiBuilder.build(response, config, "SendAssertion-Evaluation");
 
 			//Log consents evaluator event to revisionslog
-			revisionsLogger.logEvent(pendingReq.getOnlineApplicationConfiguration(), 
+			revisionsLogger.logEvent(pendingReq.getServiceProviderConfiguration(OAAuthParameterDecorator.class), 
 					pendingReq, MOAIDEventConstants.AUTHPROCESS_SSO_ASK_USER_START);
 		
 		} catch (GUIBuildException e) {	
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/RestartAuthProzessManagement.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/RestartAuthProzessManagement.java
index c1d02a029..04d43d79b 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/RestartAuthProzessManagement.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/internal/tasks/RestartAuthProzessManagement.java
@@ -30,11 +30,11 @@ import javax.servlet.http.HttpServletResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import at.gv.egovernment.moa.id.auth.modules.AbstractAuthServletTask;
-import at.gv.egovernment.moa.id.auth.modules.TaskExecutionException;
-import at.gv.egovernment.moa.id.auth.modules.registration.ModuleRegistration;
+import at.gv.egiz.eaaf.core.exceptions.TaskExecutionException;
+import at.gv.egiz.eaaf.core.impl.idp.auth.modules.AbstractAuthServletTask;
+import at.gv.egiz.eaaf.core.impl.idp.auth.modules.ModuleRegistration;
+import at.gv.egiz.eaaf.core.impl.idp.controller.protocols.RequestImpl;
 import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
-import at.gv.egovernment.moa.id.moduls.RequestImpl;
 import at.gv.egovernment.moa.id.process.ExecutionContextImpl;
 import at.gv.egovernment.moa.id.process.ProcessEngine;
 import at.gv.egovernment.moa.id.process.api.ExecutionContext;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/registration/ModuleRegistration.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/registration/ModuleRegistration.java
deleted file mode 100644
index 9c950366c..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/modules/registration/ModuleRegistration.java
+++ /dev/null
@@ -1,149 +0,0 @@
-package at.gv.egovernment.moa.id.auth.modules.registration;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.ServiceLoader;
-
-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.core.io.Resource;
-
-import at.gv.egovernment.moa.id.auth.modules.AuthModule;
-import at.gv.egovernment.moa.id.process.ProcessDefinitionParserException;
-import at.gv.egovernment.moa.id.process.ProcessEngine;
-import at.gv.egovernment.moa.id.process.api.ExecutionContext;
-
-/**
- * This class handles registering modules. The modules are detected either with
- * the ServiceLoader mechanism or via Spring. All detected modules are ranked
- * according to their priority.
- */
-public class ModuleRegistration {
-
-	private static ModuleRegistration instance = new ModuleRegistration();
-
-	private List<AuthModule> priorizedModules = new ArrayList<>();
-
-	@Autowired
-	private ApplicationContext ctx;
-
-	@Autowired
-	private ProcessEngine processEngine;
-
-	private Logger log = LoggerFactory.getLogger(getClass());
-
-	public static ModuleRegistration getInstance() {
-		return instance;
-	}
-
-	private ModuleRegistration() {
-	}
-
-	@PostConstruct
-	private void init() {
-		// load modules via the ServiceLoader
-		initServiceLoaderModules();
-
-		// load modules via Spring
-		initSpringModules();
-
-		// order modules according to their priority
-		sortModules();
-	}
-	
-	/**
-	 * Discovers modules which use the ServiceLoader mechanism.
-	 */
-	private void initServiceLoaderModules() {
-		log.info("Looking for auth modules.");
-		ServiceLoader<AuthModule> loader = ServiceLoader.load(AuthModule.class);
-		Iterator<AuthModule> modules = loader.iterator();
-		while (modules.hasNext()) {
-			AuthModule module = modules.next();
-			log.info("Detected module {}", module.getClass().getName());
-			registerModuleProcessDefinitions(module);
-			priorizedModules.add(module);
-		}
-	}
-
-	/**
-	 * Discovers modules which use Spring.
-	 */
-	private void initSpringModules() {
-		log.debug("Discovering Spring modules.");
-		Map<String, AuthModule> modules = ctx.getBeansOfType(AuthModule.class);
-		for (AuthModule module : modules.values()) {
-			registerModuleProcessDefinitions(module);
-			priorizedModules.add(module);
-		}
-	}
-
-	/**
-	 * Registers the resource uris for the module.
-	 * 
-	 * @param module
-	 *            the module.
-	 */
-	private void registerModuleProcessDefinitions(AuthModule module) {
-		for (String uri : module.getProcessDefinitions()) {
-			Resource resource = ctx.getResource(uri);
-			if (resource.isReadable()) {
-				log.info("Registering process definition '{}'.", uri);
-				try (InputStream processDefinitionInputStream = resource.getInputStream()) {
-					processEngine.registerProcessDefinition(processDefinitionInputStream);
-				} catch (IOException e) {
-					log.error("Process definition '{}' could NOT be read.", uri, e);
-				} catch (ProcessDefinitionParserException e) {
-					log.error("Error while parsing process definition '{}'", uri, e);
-				}
-			} else {
-				log.error("Process definition '{}' cannot be read.", uri);
-			}
-		}
-	}
-
-	/**
-	 * Order the modules in descending order according to their priority.
-	 */
-	private void sortModules() {
-		Collections.sort(priorizedModules, new Comparator<AuthModule>() {
-			@Override
-			public int compare(AuthModule thisAuthModule, AuthModule otherAuthModule) {
-				int thisOrder = thisAuthModule.getPriority();
-				int otherOrder = otherAuthModule.getPriority();
-				return (thisOrder < otherOrder ? 1 : (thisOrder == otherOrder ? 0 : -1));
-			}
-		});
-	}
-
-	/**
-	 * Returns the process description id of the first process, in the highest ranked
-	 * module, which is able to work with the given execution context.
-	 * 
-	 * @param context
-	 *            the {@link ExecutionContext}.
-	 * @return the process id or {@code null}
-	 */
-	public String selectProcess(ExecutionContext context) {
-		for (AuthModule module : priorizedModules) {
-			String id = module.selectProcess(context);
-			if (StringUtils.isNotEmpty(id)) {
-				log.debug("Process with id '{}' selected, for context '{}'.", id, context);
-				return id;
-			}
-		}
-		log.info("No process is able to handle context '{}'.", context);
-		return null;
-	}
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/StartAuthentificationParameterParser.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/StartAuthentificationParameterParser.java
index b2db8d5a2..4e5ef7533 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/StartAuthentificationParameterParser.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/StartAuthentificationParameterParser.java
@@ -30,12 +30,13 @@ import org.apache.commons.lang.StringEscapeUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import at.gv.egiz.eaaf.core.api.IRequest;
+import at.gv.egiz.eaaf.core.exceptions.EAAFException;
 import at.gv.egovernment.moa.id.auth.exception.AuthenticationException;
 import at.gv.egovernment.moa.id.auth.exception.WrongParametersException;
 import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants;
 import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
 import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
 import at.gv.egovernment.moa.id.commons.api.data.IAuthenticationSession;
 import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
 import at.gv.egovernment.moa.id.config.TargetToSectorNameMapper;
@@ -59,7 +60,7 @@ public class StartAuthentificationParameterParser extends MOAIDAuthConstants{
 			String useMandate,
 			String ccc,
 			HttpServletRequest req, 
-			IRequest protocolReq) throws WrongParametersException, MOAIDException {
+			IRequest protocolReq) throws WrongParametersException, MOAIDException, EAAFException {
 		
 		String resultTargetFriendlyName = null;
 		String resultTarget = null;
@@ -96,10 +97,10 @@ public class StartAuthentificationParameterParser extends MOAIDAuthConstants{
 		
 				
 	    //load OnlineApplication configuration
-	    IOAAuthParameters oaParam = protocolReq.getOnlineApplicationConfiguration();			
+	    IOAAuthParameters oaParam = protocolReq.getServiceProviderConfiguration(IOAAuthParameters.class);			
 		if (oaParam == null)
 				throw new AuthenticationException("auth.00",
-						new Object[] { protocolReq.getOAURL() });
+						new Object[] { protocolReq.getSPEntityId() });
 			
 			
 		// get target and target friendly name from config
@@ -227,7 +228,7 @@ public class StartAuthentificationParameterParser extends MOAIDAuthConstants{
 	}
 	
 	public void parse(ExecutionContext ec, IAuthenticationSession moasession, HttpServletRequest req, IRequest pendingReq) 
-			throws WrongParametersException, MOAIDException {
+			throws WrongParametersException, MOAIDException, EAAFException {
 						
 		//get Parameters from request
 	    String oaURL = (String) ec.get(PARAM_OA);
@@ -236,15 +237,15 @@ public class StartAuthentificationParameterParser extends MOAIDAuthConstants{
 	    String useMandate = (String) ec.get(PARAM_USEMANDATE);
 	    String ccc = (String) ec.get(PARAM_CCC);
 
-	    if (pendingReq.getOnlineApplicationConfiguration() != null &&
-	    		pendingReq.getOnlineApplicationConfiguration().isOnlyMandateAllowed()) {
-	    	Logger.debug("Service " + pendingReq.getOnlineApplicationConfiguration().getPublicURLPrefix() 
+	    if (pendingReq.getServiceProviderConfiguration(IOAAuthParameters.class) != null &&
+	    		pendingReq.getServiceProviderConfiguration(IOAAuthParameters.class).isOnlyMandateAllowed()) {
+	    	Logger.debug("Service " + pendingReq.getServiceProviderConfiguration(IOAAuthParameters.class).getPublicURLPrefix() 
 	    			+ " only allows authentication with mandates. --> Set useMandate to TRUE.");
-	    	useMandate = String.valueOf(pendingReq.getOnlineApplicationConfiguration().isOnlyMandateAllowed());
+	    	useMandate = String.valueOf(pendingReq.getServiceProviderConfiguration(IOAAuthParameters.class).isOnlyMandateAllowed());
 	    	
 	    }
 	    		    
-	    oaURL = pendingReq.getOAURL();
+	    oaURL = pendingReq.getSPEntityId();
 	    
 	    //only needed for SAML1
 	    String target = pendingReq.getGenericData("saml1_target", String.class);
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/AbstractController.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/AbstractController.java
deleted file mode 100644
index 50cafb4f6..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/AbstractController.java
+++ /dev/null
@@ -1,356 +0,0 @@
-/*
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.auth.servlet;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.lang.StringEscapeUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-
-import com.google.common.net.MediaType;
-
-import at.gv.egovernment.moa.id.advancedlogging.IStatisticLogger;
-import at.gv.egovernment.moa.id.advancedlogging.MOAIDEventConstants;
-import at.gv.egovernment.moa.id.advancedlogging.MOAReversionLogger;
-import at.gv.egovernment.moa.id.auth.exception.InvalidProtocolRequestException;
-import at.gv.egovernment.moa.id.auth.exception.ProtocolNotActiveException;
-import at.gv.egovernment.moa.id.auth.frontend.builder.DefaultGUIFormBuilderConfiguration;
-import at.gv.egovernment.moa.id.auth.frontend.builder.IGUIFormBuilder;
-import at.gv.egovernment.moa.id.auth.frontend.exception.GUIBuildException;
-import at.gv.egovernment.moa.id.auth.modules.TaskExecutionException;
-import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants;
-import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
-import at.gv.egovernment.moa.id.commons.api.exceptions.ConfigurationException;
-import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
-import at.gv.egovernment.moa.id.commons.utils.MOAIDMessageProvider;
-import at.gv.egovernment.moa.id.data.ExceptionContainer;
-import at.gv.egovernment.moa.id.moduls.IRequestStorage;
-import at.gv.egovernment.moa.id.process.ProcessExecutionException;
-import at.gv.egovernment.moa.id.protocols.AbstractAuthProtocolModulController;
-import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.AuthnRequestValidatorException;
-import at.gv.egovernment.moa.id.storage.ITransactionStorage;
-import at.gv.egovernment.moa.id.util.ErrorResponseUtils;
-import at.gv.egovernment.moa.id.util.HTTPUtils;
-import at.gv.egovernment.moa.id.util.Random;
-import at.gv.egovernment.moa.id.util.ServletUtils;
-import at.gv.egovernment.moa.logging.Logger;
-import at.gv.egovernment.moa.util.MiscUtil;
-
-/**
- * @author tlenz
- *
- */
-public abstract class AbstractController extends MOAIDAuthConstants {
-
-	public static final String ERROR_CODE_PARAM = "errorid";
-	
-	@Autowired protected IStatisticLogger statisticLogger;
-	@Autowired protected IRequestStorage requestStorage;
-	@Autowired protected ITransactionStorage transactionStorage;
-	@Autowired protected MOAReversionLogger revisionsLogger;
-	@Autowired protected AuthConfiguration authConfig;
-	@Autowired protected IGUIFormBuilder guiBuilder;
-	
-	@ExceptionHandler({MOAIDException.class})
-	public void MOAIDExceptionHandler(HttpServletRequest req, HttpServletResponse resp, Exception e) throws IOException {				
-		Logger.error(e.getMessage() , e);
-		internalMOAIDExceptionHandler(req, resp, e, true);
-		
-	}
-	
-	@ExceptionHandler({Exception.class})
-	public void GenericExceptionHandler(HttpServletResponse resp, Exception exception) throws IOException {
-		Logger.error("Internel Server Error." , exception);
-		resp.setContentType(MediaType.HTML_UTF_8.toString());
-		resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Internal Server Error!" +
-				"(Errorcode=9199"
-				+" | Description="+ StringEscapeUtils.escapeHtml(exception.getMessage()) + ")");
-		return;
-		
-	}
-	
-	@ExceptionHandler({IOException.class})
-	public void IOExceptionHandler(HttpServletResponse resp, Throwable exception) {
-		Logger.error("Internel Server Error." , exception);
-		resp.setContentType(MediaType.HTML_UTF_8.toString());
-		resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-		return;
-		
-	}
-	
-	protected void handleError(String errorMessage, Throwable exceptionThrown,
-			HttpServletRequest req, HttpServletResponse resp, IRequest pendingReq) throws IOException {
-
-		String pendingRequestID = null;
-		if (pendingReq != null)
-			pendingRequestID = pendingReq.getRequestID();
-		
-		Throwable loggedException = null;
-		Throwable extractedException = extractOriginalExceptionFromProcessException(exceptionThrown);
-		
-		//extract pendingRequestID and originalException if it was a TaskExecutionException
-		if (extractedException instanceof TaskExecutionException) {
-			//set original exception
-			loggedException = ((TaskExecutionException) extractedException).getOriginalException();
-			
-			//use TaskExecutionException directly, if no Original Exeception is included
-			if (loggedException == null)
-				loggedException = exceptionThrown;
-			
-			//set pending-request ID if it is set
-			String reqID = ((TaskExecutionException) extractedException).getPendingRequestID();
-			if (MiscUtil.isNotEmpty(reqID))
-				pendingRequestID = reqID; 
-						
-		} else
-			loggedException = exceptionThrown;
-					
-		try {			
-			//switch to protocol-finalize method to generate a protocol-specific error message
-
-			//log error directly in debug mode
-			if (Logger.isDebugEnabled())
-				Logger.warn(loggedException.getMessage(), loggedException);
-				
-			
-			//put exception into transaction store for redirect
-			String key = Random.nextLongRandom();
-			if (pendingReq != null) {
-				revisionsLogger.logEvent(pendingReq, MOAIDEventConstants.TRANSACTION_ERROR);
-				transactionStorage.put(key, 
-						new ExceptionContainer(pendingReq, loggedException),-1);
-			
-			} else {
-				transactionStorage.put(key, 
-						new ExceptionContainer(null, loggedException),-1);
-				
-			}
-			
-			//build up redirect URL
-			String redirectURL = null;
-			redirectURL = ServletUtils.getBaseUrl(req);	
-			redirectURL += "/"+AbstractAuthProtocolModulController.FINALIZEPROTOCOL_ENDPOINT 
-					+ "?" + ERROR_CODE_PARAM + "=" + key;
-			
-			//only add pending-request Id if it exists 
-			if (MiscUtil.isNotEmpty(pendingRequestID))							
-				redirectURL += "&" + MOAIDAuthConstants.PARAM_TARGET_PENDINGREQUESTID + "=" + pendingRequestID;
-
-			resp.setContentType("text/html");
-			resp.setStatus(302);
-
-			resp.addHeader("Location", redirectURL);		
-			Logger.debug("REDIRECT TO: " + redirectURL);	
-
-			return;
-					
-		} catch (Exception e) {
-			Logger.warn("Default error-handling FAILED. Exception can not be stored to Database.", e);
-			Logger.info("Switch to generic generic backup error-handling ... ");
-			handleErrorNoRedirect(loggedException, req, resp, true);
-			
-		}
-
-	}
-		
-	/**
-	 * Handles all exceptions with no pending request.
-	 * Therefore, the error is written to the users browser
-	 * 
-	 * @param throwable
-	 * @param req
-	 * @param resp
-	 * @throws IOException 
-	 */
-	protected void handleErrorNoRedirect(Throwable throwable, HttpServletRequest req, 
-			HttpServletResponse resp, boolean writeExceptionToStatisticLog) throws IOException {
-		
-		//log Exception into statistic database
-		if (writeExceptionToStatisticLog)
-			statisticLogger.logErrorOperation(throwable);
-		
-		//write errror to console
-		logExceptionToTechnicalLog(throwable);
-		
-		//return error to Web browser
-		if (throwable instanceof MOAIDException || throwable instanceof ProcessExecutionException)
-			internalMOAIDExceptionHandler(req, resp, (Exception)throwable, false);
-		
-		else {
-			//write generic message for general exceptions
-			String msg = MOAIDMessageProvider.getInstance().getMessage("internal.00", null);			
-			writeHTMLErrorResponse(req, resp, msg, "9199", (Exception) throwable);
-			
-		}
-			
-	}
-	
-	/**
-	 * Write a Exception to the MOA-ID-Auth internal technical log
-	 * 
-	 * @param loggedException Exception to log
-	 */	
-	protected void logExceptionToTechnicalLog(Throwable loggedException) {
-		if (!( loggedException instanceof MOAIDException 
-				 || loggedException instanceof ProcessExecutionException )) {
-			Logger.error("Receive an internal error: Message=" + loggedException.getMessage(), loggedException);
-	
-		} else {
-			if (Logger.isDebugEnabled() || Logger.isTraceEnabled()) {
-				Logger.warn(loggedException.getMessage(), loggedException);
-	
-			} else {
-				Logger.warn(loggedException.getMessage());
-	
-			}			
-		}		
-	}
-		
-	private void writeBadRequestErrorResponse(HttpServletRequest req, HttpServletResponse resp, MOAIDException e) throws IOException {
-		ErrorResponseUtils utils = ErrorResponseUtils.getInstance();
-		String code = utils.mapInternalErrorToExternalError(
-				((InvalidProtocolRequestException)e).getMessageId());
-		String descr = StringEscapeUtils.escapeHtml(e.getMessage());
-		resp.setContentType(MediaType.HTML_UTF_8.toString());
-		resp.sendError(HttpServletResponse.SC_BAD_REQUEST, "Protocol validation FAILED!" +
-				"(Errorcode=" + code +
-				" | Description=" + descr + ")");
-		
-	}
-	
-	private void writeHTMLErrorResponse(HttpServletRequest req, HttpServletResponse httpResp, String msg, String errorCode, Exception error) throws IOException {
-
-		try {
-			DefaultGUIFormBuilderConfiguration config = new DefaultGUIFormBuilderConfiguration(
-					HTTPUtils.extractAuthURLFromRequest(req), 
-					DefaultGUIFormBuilderConfiguration.VIEW_ERRORMESSAGE, 
-					null);
-				
-			//add errorcode and errormessage
-			config.putCustomParameter("errorMsg", msg);
-			config.putCustomParameter("errorCode", errorCode);
-		
-			//add stacktrace if debug is enabled
-			if (Logger.isTraceEnabled()) {
-				config.putCustomParameter("stacktrace", getStacktraceFromException(error));
-			
-			}
-			
-			guiBuilder.build(httpResp, config, "Error-Message");
-			
-		} catch (GUIBuildException e) {
-			Logger.warn("Can not build error-message GUI.", e);
-			GenericExceptionHandler(httpResp, e);
-			
-		}
-		
-	}
-	
-	private void writeHTMLErrorResponse(HttpServletRequest req, HttpServletResponse httpResp, Exception error) throws IOException {				
-		writeHTMLErrorResponse(req, httpResp, 
-				error.getMessage(), 
-				ErrorResponseUtils.getInstance().getResponseErrorCode(error), 
-				error);		
-	}
-	
-	
-	private String getStacktraceFromException(Exception ex) {
-		StringWriter errors = new StringWriter();
-	    ex.printStackTrace(new PrintWriter(errors));
-	    return errors.toString();
-	    
-	}
-		
-	/**
-	 * Extracts a TaskExecutionException of a ProcessExecutionExeception Stacktrace.
-	 * 
-	 * @param exception 
-	 * @return Return the latest TaskExecutionExecption if exists, otherwise the latest ProcessExecutionException
-	 */
-	private Throwable extractOriginalExceptionFromProcessException(Throwable exception) {
-		Throwable exholder = exception;
-		TaskExecutionException taskExc = null;
-		
-		while(exholder != null 
-				&& exholder instanceof ProcessExecutionException) {
-			ProcessExecutionException procExc = (ProcessExecutionException) exholder;
-			if (procExc.getCause() != null && 
-					procExc.getCause() instanceof TaskExecutionException) {
-				taskExc = (TaskExecutionException) procExc.getCause();
-				exholder = taskExc.getOriginalException();
-			
-			} else
-				break;
-			
-		}
-				
-		if (taskExc == null)
-			return exholder;
-		
-		else
-			return taskExc;
-	}
-	
-	private void internalMOAIDExceptionHandler(HttpServletRequest req, HttpServletResponse resp, Exception e, boolean writeExceptionToStatisicLog) throws IOException {				
-		if (e instanceof ProtocolNotActiveException) {
-			resp.getWriter().write(e.getMessage());
-			resp.setContentType(MediaType.HTML_UTF_8.toString());
-			resp.sendError(HttpServletResponse.SC_FORBIDDEN, StringEscapeUtils.escapeHtml(e.getMessage()));
-		
-		} else if (e instanceof AuthnRequestValidatorException) {
-			AuthnRequestValidatorException ex = (AuthnRequestValidatorException)e;
-			//log Error Message
-			if (writeExceptionToStatisicLog)
-				statisticLogger.logErrorOperation(ex, ex.getErrorRequest());
-			
-			//write error message
-			writeBadRequestErrorResponse(req, resp, (MOAIDException) e);			
-		
-		} else if (e instanceof InvalidProtocolRequestException) {		
-			//send error response
-			writeBadRequestErrorResponse(req, resp, (MOAIDException) e);
-			
-		} else if (e instanceof ConfigurationException) {
-			//send HTML formated error message
-			writeHTMLErrorResponse(req, resp, (MOAIDException) e);
-		
-		} else if (e instanceof MOAIDException) {
-			//send HTML formated error message
-			writeHTMLErrorResponse(req, resp, e);
-					
-		} else if (e instanceof ProcessExecutionException) {
-			//send HTML formated error message
-			writeHTMLErrorResponse(req, resp, e);
-					
-		}
-		
-	}
-	
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/AbstractProcessEngineSignalController.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/AbstractProcessEngineSignalController.java
index 18641c090..3b12418fa 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/AbstractProcessEngineSignalController.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/AbstractProcessEngineSignalController.java
@@ -8,10 +8,11 @@ import javax.servlet.http.HttpServletResponse;
 import org.apache.commons.lang.StringEscapeUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 
-import at.gv.egovernment.moa.id.advancedlogging.TransactionIDUtils;
+import at.gv.egiz.eaaf.core.api.IRequest;
+import at.gv.egiz.eaaf.core.impl.idp.controller.AbstractController;
+import at.gv.egiz.eaaf.core.impl.utils.TransactionIDUtils;
 import at.gv.egovernment.moa.id.auth.exception.MOAIllegalStateException;
 import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
 import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
 import at.gv.egovernment.moa.id.process.ProcessEngine;
 import at.gv.egovernment.moa.logging.Logger;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GUILayoutBuilderServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GUILayoutBuilderServlet.java
index 49145a850..cfeca88b7 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GUILayoutBuilderServlet.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GUILayoutBuilderServlet.java
@@ -33,15 +33,16 @@ import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 
+import at.gv.egiz.eaaf.core.api.IRequest;
+import at.gv.egiz.eaaf.core.api.IRequestStorage;
+import at.gv.egiz.eaaf.core.api.gui.IGUIFormBuilder;
+import at.gv.egiz.eaaf.core.impl.idp.controller.AbstractController;
+import at.gv.egiz.eaaf.core.impl.utils.HTTPUtils;
 import at.gv.egovernment.moa.id.auth.frontend.builder.AbstractServiceProviderSpecificGUIFormBuilderConfiguration;
-import at.gv.egovernment.moa.id.auth.frontend.builder.IGUIFormBuilder;
 import at.gv.egovernment.moa.id.auth.frontend.builder.SPSpecificGUIBuilderConfigurationWithDBLoad;
 import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants;
 import at.gv.egovernment.moa.id.commons.MOAIDConstants;
 import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
-import at.gv.egovernment.moa.id.moduls.IRequestStorage;
-import at.gv.egovernment.moa.id.util.HTTPUtils;
 import at.gv.egovernment.moa.logging.Logger;
 import at.gv.egovernment.moa.util.MiscUtil;
 
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/IDPSingleLogOutServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/IDPSingleLogOutServlet.java
index 0397bd501..9282db3b1 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/IDPSingleLogOutServlet.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/IDPSingleLogOutServlet.java
@@ -36,24 +36,24 @@ import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 
+import at.gv.egiz.eaaf.core.exceptions.GUIBuildException;
+import at.gv.egiz.eaaf.core.impl.idp.auth.AuthenticationManager;
+import at.gv.egiz.eaaf.core.impl.idp.controller.AbstractController;
+import at.gv.egiz.eaaf.core.impl.utils.HTTPUtils;
+import at.gv.egiz.eaaf.core.impl.utils.Random;
 import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;
 import at.gv.egovernment.moa.id.auth.frontend.builder.DefaultGUIFormBuilderConfiguration;
-import at.gv.egovernment.moa.id.auth.frontend.exception.GUIBuildException;
 import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants;
 import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
 import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;
-import at.gv.egovernment.moa.id.commons.utils.MOAIDMessageProvider;
 import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProviderFactory;
-import at.gv.egovernment.moa.id.data.ISLOInformationContainer;
 import at.gv.egovernment.moa.id.data.SLOInformationContainer;
-import at.gv.egovernment.moa.id.moduls.AuthenticationManager;
 import at.gv.egovernment.moa.id.moduls.SSOManager;
 import at.gv.egovernment.moa.id.protocols.pvp2x.builder.SingleLogOutBuilder;
 import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.NOSLOServiceDescriptorException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.NoMetadataInformationException;
 import at.gv.egovernment.moa.id.storage.IAuthenticationSessionStoreage;
-import at.gv.egovernment.moa.id.util.HTTPUtils;
-import at.gv.egovernment.moa.id.util.Random;
+import at.gv.egovernment.moa.id.util.MOAIDMessageProvider;
 import at.gv.egovernment.moa.logging.Logger;
 import at.gv.egovernment.moa.util.MiscUtil;
 import at.gv.egovernment.moa.util.URLEncoder;
@@ -154,7 +154,7 @@ public class IDPSingleLogOutServlet extends AbstractController {
 			if (MiscUtil.isNotEmpty(restartProcess)) {
 				Logger.info("Restart Single LogOut process after timeout ... ");
 					try {						
-						ISLOInformationContainer sloContainer = transactionStorage.get(restartProcess, SLOInformationContainer.class);
+						SLOInformationContainer sloContainer = transactionStorage.get(restartProcess, SLOInformationContainer.class);
 						if (sloContainer.hasFrontChannelOA())
 							sloContainer.putFailedOA("differntent OAs");
 							
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/LogOutServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/LogOutServlet.java
index 8ef047300..beacf1552 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/LogOutServlet.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/LogOutServlet.java
@@ -56,13 +56,13 @@ import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 
+import at.gv.egiz.eaaf.core.impl.idp.auth.AuthenticationManager;
+import at.gv.egiz.eaaf.core.impl.utils.HTTPUtils;
 import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;
+import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
 import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProviderFactory;
-import at.gv.egovernment.moa.id.moduls.AuthenticationManager;
 import at.gv.egovernment.moa.id.moduls.SSOManager;
 import at.gv.egovernment.moa.id.storage.IAuthenticationSessionStoreage;
-import at.gv.egovernment.moa.id.util.HTTPUtils;
 import at.gv.egovernment.moa.logging.Logger;
 import at.gv.egovernment.moa.util.MiscUtil;
 
@@ -71,9 +71,11 @@ import at.gv.egovernment.moa.util.MiscUtil;
 public class LogOutServlet {
 	private static final String REDIRECT_URL = "redirect";
 	
-	@Autowired private SSOManager ssomanager;
-	@Autowired private AuthenticationManager authmanager;
-	@Autowired private IAuthenticationSessionStoreage authenticatedSessionStorage;
+	@Autowired(required=true) private SSOManager ssomanager;
+	@Autowired(required=true) private AuthenticationManager authmanager;
+	@Autowired(required=true) private IAuthenticationSessionStoreage authenticatedSessionStorage;
+	@Autowired(required=true) private AuthConfiguration authConfig;
+	
 	
 	@RequestMapping(value = "/LogOut", method = {RequestMethod.POST, RequestMethod.GET})
 	public void performLogOut(HttpServletRequest req, HttpServletResponse resp) throws IOException {
@@ -92,7 +94,7 @@ public class LogOutServlet {
 				
 			} else {
 				//return an error if RedirectURL is not a active Online-Applikation
-				IOAAuthParameters oa = AuthConfigurationProviderFactory.getInstance().getOnlineApplicationParameter(redirectUrl);			
+				IOAAuthParameters oa = authConfig.getServiceProviderConfiguration(redirectUrl, IOAAuthParameters.class);			
 				if (oa == null) {		
 					Logger.info("RedirctURL does not match to OA configuration. Set default RedirectURL back to MOA-ID-Auth");
 					redirectUrl = HTTPUtils.extractAuthURLFromRequest(req);
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/RedirectServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/RedirectServlet.java
index a00de1da0..c77542b4a 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/RedirectServlet.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/RedirectServlet.java
@@ -33,14 +33,15 @@ import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 
+import at.gv.egiz.eaaf.core.api.gui.IGUIFormBuilder;
+import at.gv.egiz.eaaf.core.impl.utils.HTTPUtils;
 import at.gv.egovernment.moa.id.auth.frontend.builder.DefaultGUIFormBuilderConfiguration;
-import at.gv.egovernment.moa.id.auth.frontend.builder.IGUIFormBuilder;
 import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants;
+import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
 import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
 import at.gv.egovernment.moa.id.commons.config.MOAIDConfigurationConstants;
 import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProviderFactory;
 import at.gv.egovernment.moa.id.moduls.SSOManager;
-import at.gv.egovernment.moa.id.util.HTTPUtils;
 import at.gv.egovernment.moa.logging.Logger;
 import at.gv.egovernment.moa.util.MiscUtil;
 import at.gv.egovernment.moa.util.URLEncoder;
@@ -57,8 +58,9 @@ public class RedirectServlet {
 	private static final String URL = "URL";
 	private static final String TARGET = "TARGET";
 	
-	@Autowired SSOManager ssoManager;
-	@Autowired IGUIFormBuilder guiBuilder;
+	@Autowired(required=true) SSOManager ssoManager;
+	@Autowired(required=true) IGUIFormBuilder guiBuilder;
+	@Autowired(required=true) private AuthConfiguration authConfig;
 	
 	@RequestMapping(value = "/RedirectServlet", method = RequestMethod.GET)
 	public void performLogOut(HttpServletRequest req, HttpServletResponse resp) throws IOException {
@@ -78,10 +80,10 @@ public class RedirectServlet {
 			
 			//url = URLDecoder.decode(url, "UTF-8");
 			
-			oa = AuthConfigurationProviderFactory.getInstance().getOnlineApplicationParameter(url);
+			oa = authConfig.getServiceProviderConfiguration(url, IOAAuthParameters.class);
 			String authURL = HTTPUtils.extractAuthURLFromRequest(req);
 			
-			if (oa == null || !AuthConfigurationProviderFactory.getInstance().getPublicURLPrefix().contains(authURL)) {		
+			if (oa == null || !authConfig.getPublicURLPrefix().contains(authURL)) {		
 				resp.sendError(HttpServletResponse.SC_FORBIDDEN, "Parameters not valid");
 				return;
 				
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/interceptor/UniqueSessionIdentifierInterceptor.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/interceptor/UniqueSessionIdentifierInterceptor.java
index 466364adb..752f54139 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/interceptor/UniqueSessionIdentifierInterceptor.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/interceptor/UniqueSessionIdentifierInterceptor.java
@@ -29,10 +29,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.servlet.HandlerInterceptor;
 import org.springframework.web.servlet.ModelAndView;
 
-import at.gv.egovernment.moa.id.advancedlogging.TransactionIDUtils;
+import at.gv.egiz.eaaf.core.impl.utils.Random;
+import at.gv.egiz.eaaf.core.impl.utils.TransactionIDUtils;
 import at.gv.egovernment.moa.id.commons.MOAIDConstants;
 import at.gv.egovernment.moa.id.moduls.SSOManager;
-import at.gv.egovernment.moa.id.util.Random;
 import at.gv.egovernment.moa.util.MiscUtil;
 
 /**
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/interceptor/VHostUrlRewriteServletFilter.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/interceptor/VHostUrlRewriteServletFilter.java
index 93d74d7ef..4dac390e6 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/interceptor/VHostUrlRewriteServletFilter.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/interceptor/VHostUrlRewriteServletFilter.java
@@ -37,9 +37,9 @@ import javax.servlet.http.HttpServletRequest;
 
 import org.springframework.context.ApplicationContext;
 
+import at.gv.egiz.eaaf.core.impl.utils.HTTPUtils;
 import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
 import at.gv.egovernment.moa.id.commons.api.exceptions.ConfigurationException;
-import at.gv.egovernment.moa.id.util.HTTPUtils;
 import at.gv.egovernment.moa.logging.Logger;
 
 /**
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/interceptor/WebFrontEndSecurityInterceptor.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/interceptor/WebFrontEndSecurityInterceptor.java
index c8c6c1fb5..979b8f4e4 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/interceptor/WebFrontEndSecurityInterceptor.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/interceptor/WebFrontEndSecurityInterceptor.java
@@ -30,10 +30,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.servlet.HandlerInterceptor;
 import org.springframework.web.servlet.ModelAndView;
 
+import at.gv.egiz.eaaf.core.impl.utils.HTTPUtils;
 import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants;
 import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
-import at.gv.egovernment.moa.id.commons.utils.MOAIDMessageProvider;
-import at.gv.egovernment.moa.id.util.HTTPUtils;
+import at.gv.egovernment.moa.id.util.MOAIDMessageProvider;
 import at.gv.egovernment.moa.logging.Logger;
 import at.gv.egovernment.moa.util.MiscUtil;
 
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/client/utils/SZRGWClientUtils.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/client/utils/SZRGWClientUtils.java
index 4cca2e625..6f3c02411 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/client/utils/SZRGWClientUtils.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/client/utils/SZRGWClientUtils.java
@@ -29,14 +29,15 @@ import java.util.UUID;
 import org.opensaml.xml.util.XMLHelper;
 import org.w3c.dom.Element;
 
+import at.gv.egiz.eaaf.core.api.IRequest;
 import at.gv.egovernment.moa.id.client.SZRGWClient;
 import at.gv.egovernment.moa.id.client.SZRGWClientException;
 import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
 import at.gv.egovernment.moa.id.commons.api.ConnectionParameterInterface;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
+import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
 import at.gv.egovernment.moa.id.commons.api.exceptions.ConfigurationException;
-import at.gv.egovernment.moa.id.commons.utils.MOAIDMessageProvider;
 import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProviderFactory;
+import at.gv.egovernment.moa.id.util.MOAIDMessageProvider;
 import at.gv.egovernment.moa.logging.Logger;
 import at.gv.egovernment.moa.util.MiscUtil;
 import at.gv.util.xsd.mis.MandateIdentifiers;
@@ -128,7 +129,7 @@ public class SZRGWClientUtils {
 
 		try {
 			AuthConfiguration authConf = AuthConfigurationProviderFactory.getInstance();
-			ConnectionParameterInterface connectionParameters = authConf.getForeignIDConnectionParameter(pendingReq.getOnlineApplicationConfiguration());
+			ConnectionParameterInterface connectionParameters = authConf.getForeignIDConnectionParameter(pendingReq.getServiceProviderConfiguration(IOAAuthParameters.class));
 
 			String requestID = UUID.randomUUID().toString();			
 			SZRGWClient client = new SZRGWClient(connectionParameters);
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationProviderImpl.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationProviderImpl.java
index 804b98a5f..9380d3b64 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationProviderImpl.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationProviderImpl.java
@@ -46,10 +46,13 @@
 
 package at.gv.egovernment.moa.id.config;
 
+import java.net.MalformedURLException;
 import java.util.ArrayList;
 import java.util.Map;
 import java.util.Properties;
 
+import at.gv.egiz.eaaf.core.exceptions.EAAFConfigurationException;
+import at.gv.egiz.eaaf.core.impl.idp.conf.AbstractConfigurationImpl;
 import at.gv.egovernment.moa.id.commons.api.ConfigurationProvider;
 import at.gv.egovernment.moa.id.commons.api.exceptions.ConfigurationException;
 import at.gv.egovernment.moa.id.commons.config.SpringProfileConstants;
@@ -65,14 +68,15 @@ import at.gv.util.config.EgovUtilPropertiesConfiguration;
  * @author Paul Ivancsics
  * @version $Id$
  */
-public abstract class ConfigurationProviderImpl implements ConfigurationProvider{
+public abstract class ConfigurationProviderImpl extends AbstractConfigurationImpl implements ConfigurationProvider{
 
   /**
    * Constructor
+ * @throws EAAFConfigurationException 
    */
-  public ConfigurationProviderImpl() {
-	  
-    super();
+  public ConfigurationProviderImpl(String configFilePath) throws EAAFConfigurationException {	  
+    super(configFilePath);    
+    	    
   }
 
   private EgovUtilPropertiesConfiguration eGovUtilsConfig = null;
@@ -113,26 +117,7 @@ public abstract class ConfigurationProviderImpl implements ConfigurationProvider
 
   /** The default chaining mode. */
   protected String defaultChainingMode = "pkix";
-
-	/**
-	 * main configuration file directory name used to configure MOA-ID 
-	 */
-	protected String rootConfigFileDir;
-
 	
-	
-	protected Properties configProp = null;
-	
-	/**
-		 * Returns the main configuration file directory used to configure MOA-ID
-		 * 
-		 * @return the directory
-		 */
-	public String getRootConfigFileDir() {
-		return rootConfigFileDir;
-	}
-
- 
   public String getDefaultChainingMode() {
 	  return defaultChainingMode;
   }
@@ -143,15 +128,17 @@ public abstract class ConfigurationProviderImpl implements ConfigurationProvider
    * @return
    */
   public Properties getDBConnectionConfiguration() {
-	  return this.configProp;
+	  return getFullConfigurationProperties();
+	  
   }
 
   /**
    * @param properties
  * @throws ConfigurationException 
  * @throws org.opensaml.xml.ConfigurationException 
+ * @throws MalformedURLException 
    */
-  public void initial(Properties props) throws ConfigurationException, org.opensaml.xml.ConfigurationException {	  
+  protected void initial(Properties props) throws ConfigurationException, org.opensaml.xml.ConfigurationException, MalformedURLException {	  
 	//Initial Hibernate Framework
 			Logger.trace("Initializing Hibernate framework.");
 		try {		
@@ -170,7 +157,7 @@ public abstract class ConfigurationProviderImpl implements ConfigurationProvider
 			      }
 			      
 			      // read Config Hibernate properties
-			      configProp = new Properties();
+			      Properties configProp = new Properties();
 			      for (Object key : props.keySet()) {
 			      	String propPrefix = "configuration.";
 			      	if (key.toString().startsWith(propPrefix+"hibernate")) {
@@ -188,37 +175,7 @@ public abstract class ConfigurationProviderImpl implements ConfigurationProvider
 				    	  statisticProps.put(propertyName, props.get(key.toString()));
 				     }
 				  }
-			     			
-//				// initialize hibernate
-//				synchronized (ConfigurationProviderImpl.class) {
-//					
-//					//Initial config Database
-//				//	ConfigurationDBUtils.initHibernate(configProp);
-//			   		
-//					//initial MOAID Session Database
-//					Configuration config = new Configuration();
-//					config.addAnnotatedClass(AssertionStore.class);
-//					config.addAnnotatedClass(AuthenticatedSessionStore.class);
-//					config.addAnnotatedClass(OASessionStore.class);
-//					config.addAnnotatedClass(OldSSOSessionIDStore.class);
-//					config.addAnnotatedClass(InterfederationSessionStore.class);
-//					//config.addAnnotatedClass(ProcessInstanceStore.class);
-//					config.addProperties(moaSessionProp);
-//					//MOASessionDBUtils.initHibernate(config, moaSessionProp);
-//					
-//					//initial advanced logging
-////					if (Boolean.valueOf(props.getProperty("configuration.advancedlogging.active", "false"))) {
-////						Logger.info("Advanced statistic log is activated, starting initialization process ...");
-////						Configuration statisticconfig = new Configuration();
-////						statisticconfig.addAnnotatedClass(StatisticLog.class);
-////						statisticconfig.addProperties(statisticProps);
-////						StatisticLogDBUtils.initHibernate(statisticconfig, statisticProps);
-////						Logger.info("Advanced statistic log is initialized.");
-////					}
-//					
-//				  }
-//				Logger.trace("Hibernate initialization finished.");
-				
+			     							
 			} catch (ExceptionInInitializerError e) {
 				throw new  ConfigurationException("config.17", null, e);
 				
@@ -247,7 +204,7 @@ public abstract class ConfigurationProviderImpl implements ConfigurationProvider
 			if (!eGovUtilsConfigProp.isEmpty()) {
 				Logger.info("Start eGovUtils client implementation configuration ...");
 				eGovUtilsConfig = 
-						new EgovUtilPropertiesConfiguration(eGovUtilsConfigProp, rootConfigFileDir);
+						new EgovUtilPropertiesConfiguration(eGovUtilsConfigProp, getConfigurationRootDirectory().toURL().toString());
 			}
 			this.generateActiveProfiles(props);
 	
@@ -287,5 +244,18 @@ public abstract class ConfigurationProviderImpl implements ConfigurationProvider
 		Logger.debug("Set active Spring-Profiles to: " + activeProfiles);
 		return activeProfiles.toArray(new String[0]);
 	}
+	
+	public String getRootConfigFileDir() throws ConfigurationException {
+		try {
+			return getConfigurationRootDirectory().toURL().toString();
+			
+		} catch (MalformedURLException e) {
+			Logger.error("Can not read Config-Root Directory.", e);
+			throw new ConfigurationException("config.03", null, e);
+			
+		}
+		
+				
+	}
   
 }
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameter.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameter.java
deleted file mode 100644
index 59bd3893d..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameter.java
+++ /dev/null
@@ -1,938 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- * 
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- * 
- * 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.
- ******************************************************************************/
-/*
- * Copyright 2003 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.config.auth;
-
-import java.io.IOException;
-import java.io.Serializable;
-import java.security.PrivateKey;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import org.apache.commons.lang.SerializationUtils;
-
-import at.gv.egovernment.moa.id.auth.exception.BuildException;
-import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants;
-import at.gv.egovernment.moa.id.commons.MOAIDConstants;
-import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.commons.api.IStorkConfig;
-import at.gv.egovernment.moa.id.commons.api.data.BPKDecryptionParameters;
-import at.gv.egovernment.moa.id.commons.api.data.CPEPS;
-import at.gv.egovernment.moa.id.commons.api.data.SAML1ConfigurationParameters;
-import at.gv.egovernment.moa.id.commons.api.data.StorkAttribute;
-import at.gv.egovernment.moa.id.commons.api.data.StorkAttributeProviderPlugin;
-import at.gv.egovernment.moa.id.commons.api.exceptions.ConfigurationException;
-import at.gv.egovernment.moa.id.commons.config.MOAIDConfigurationConstants;
-import at.gv.egovernment.moa.id.commons.utils.KeyValueUtils;
-import at.gv.egovernment.moa.id.commons.validation.TargetValidator;
-import at.gv.egovernment.moa.id.data.EncryptedData;
-import at.gv.egovernment.moa.id.util.ConfigurationEncrytionUtil;
-import at.gv.egovernment.moa.logging.Logger;
-import at.gv.egovernment.moa.util.Base64Utils;
-import at.gv.egovernment.moa.util.MiscUtil;
-
-	
-
-/**
- * Configuration parameters belonging to an online application,
- * to use with the MOA ID Auth component.
- *
- * @author Thomas Lenz
- */
-public class OAAuthParameter implements IOAAuthParameters, Serializable{	
-	
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -6522544229837934376L;
-
-	final public static String DEFAULT_KEYBOXIDENTIFIER = "SecureSignatureKeypair";
-	
-	private Map<String, String> oaConfiguration;
-	private List<String> targetAreasWithNoInteralBaseIdRestriction = new ArrayList<String>();
-	private List<String> targetAreasWithNoBaseIdTransmissionRestriction = new ArrayList<String>();		
-		
-  public OAAuthParameter(final Map<String, String> oa, AuthConfiguration authConfig) {	  
-	  this.oaConfiguration = oa;
-	  
-	  //set oa specific restrictions
-	  targetAreasWithNoInteralBaseIdRestriction = KeyValueUtils.getListOfCSVValues(
-			  authConfig.getBasicMOAIDConfiguration(
-					  CONFIG_KEY_RESTRICTIONS_BASEID_INTERNAL, 
-					  MOAIDAuthConstants.PREFIX_CDID));
-	  
-	  targetAreasWithNoBaseIdTransmissionRestriction = KeyValueUtils.getListOfCSVValues(
-			  authConfig.getBasicMOAIDConfiguration(
-					  CONFIG_KEY_RESTRICTIONS_BASEID_TRANSMISSION, 
-					  MOAIDAuthConstants.PREFIX_CDID));
-	  
-	  if (Logger.isTraceEnabled()) {
-		  Logger.trace("Internal policy for OA: " + getPublicURLPrefix());
-		  for (String el : targetAreasWithNoInteralBaseIdRestriction)
-			  Logger.trace(" Allow baseID processing for prefix " + el);		  
-		  for (String el : targetAreasWithNoBaseIdTransmissionRestriction)
-			  Logger.trace(" Allow baseID transfer for prefix " + el);
-		  		  
-	  }
-  }
-
-  
-  public Map<String, String> getFullConfiguration() {
-	  return Collections.unmodifiableMap(this.oaConfiguration);
-  }
-  
-  public String getConfigurationValue(String key) {
-	  return this.oaConfiguration.get(key);
-  }
-  
-  @Override
-  public boolean hasBaseIdInternalProcessingRestriction() throws ConfigurationException {
-	  String targetAreaIdentifier = getAreaSpecificTargetIdentifier();
-	  for (String el : targetAreasWithNoInteralBaseIdRestriction) {
-		  if (targetAreaIdentifier.startsWith(el))
-			  return false;
-		  
-	  }	  
-	  return true;
-	  
-  }
-
-  @Override
-  public boolean hasBaseIdTransferRestriction() throws ConfigurationException {
-	  String targetAreaIdentifier = getAreaSpecificTargetIdentifier();
-	  for (String el : targetAreasWithNoBaseIdTransmissionRestriction) {
-		  if (targetAreaIdentifier.startsWith(el))
-			  return false;
-		  
-	  }	  
-	  return true;
-	  
-  }
-    
-  @Override
-  public String getAreaSpecificTargetIdentifier() throws ConfigurationException {	  
-	  if (getBusinessService())
-		  return getIdentityLinkDomainIdentifier();
-	  else
-		  return MOAIDAuthConstants.PREFIX_CDID + getTarget();
-	  		  
-  }
-  
-  @Override
-  public String getAreaSpecificTargetIdentifierFriendlyName() throws ConfigurationException{
-	  if (getBusinessService())
-		  return getIdentityLinkDomainIdentifierType();
-	  else
-		  return getTargetFriendlyName();
-	  
-  }
-  
-  
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getIdentityLinkDomainIdentifier()
- */
-//@Override
-private String getIdentityLinkDomainIdentifier() {
-	String type = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_TYPE);
-	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_VALUE);
-	if (MiscUtil.isNotEmpty(type) && MiscUtil.isNotEmpty(value)) {
-		if (MOAIDConstants.IDENIFICATIONTYPE_STORK.equals(type)) {
-			return MOAIDConstants.PREFIX_STORK + "AT" + "+" + value;
-		
-		} else if (MOAIDConstants.IDENIFICATIONTYPE_EIDAS.equals(type)) {
-			return MOAIDConstants.PREFIX_EIDAS + value;
-						
-		} else {
-			return MOAIDConstants.PREFIX_WPBK + type + "+" + value;
-			
-		}		
-	}
-	
-	return null;
-}
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getIdentityLinkDomainIdentifierType()
- */
-//@Override
-private String getIdentityLinkDomainIdentifierType() {
-	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_TYPE);
-	if (MiscUtil.isNotEmpty(value))
-		return MOAIDConfigurationConstants.BUSINESSSERVICENAMES.get(value);
-	
-	else
-		return null;	
-}
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getTarget()
- */
-//@Override
-private String getTarget() {
-	if (Boolean.parseBoolean(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_USE_OWN)))
-		return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_OWN_TARGET);
-		
-	else {
-		if (Boolean.parseBoolean(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_USE_SUB))) {
-			return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_TARGET)
-					+ "-"
-					+ oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_TARGET_SUB);
-			
-		} else {
-			return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_TARGET);
-		}		
-	}
-}
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getTargetFriendlyName()
- */
-//@Override
-private String getTargetFriendlyName() {
-	if (Boolean.parseBoolean(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_USE_OWN)))
-		return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_OWN_NAME);
-		
-	else
-		return TargetValidator.getTargetFriendlyName(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_TARGET));
-
-}
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getKeyBoxIdentifier()
- */
-@Override
-public String getKeyBoxIdentifier() {
-	String keyBoxId = oaConfiguration.get(
-			MOAIDConfigurationConstants.SERVICE_AUTH_BKU_KEYBOXIDENTIFIER);
-	if (MiscUtil.isNotEmpty(keyBoxId))
-		return keyBoxId;
-	else
-		return DEFAULT_KEYBOXIDENTIFIER;
-	
-}
-
-	/* (non-Javadoc)
-	 * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getSAML1Parameter()
-	 */
-	@Override
-	public SAML1ConfigurationParameters getSAML1Parameter() {		
-		SAML1ConfigurationParameters returnValue = new SAML1ConfigurationParameters();
-		if (oaConfiguration.containsKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_ENABLED))
-			returnValue.setActive(
-					Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_ENABLED)));
-		
-		if (oaConfiguration.containsKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_AUTHBLOCK))
-			returnValue.setProvideAuthBlock(
-					Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_AUTHBLOCK)));
-		
-		if (oaConfiguration.containsKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_IDL))
-			returnValue.setProvideIdl(
-					Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_IDL)));
-		
-		if (oaConfiguration.containsKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_BASEID))
-			returnValue.setProvideBaseId(
-					Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_BASEID)));
-		
-		if (oaConfiguration.containsKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_CERTIFICATE))
-			returnValue.setProvideCertificate(
-					Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_CERTIFICATE)));
-		
-		if (oaConfiguration.containsKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_MANDATE))
-			returnValue.setProvideMandate(
-					Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_MANDATE)));
-		
-		if (oaConfiguration.containsKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_RETURNERROR))
-			returnValue.setProvideAllErrors(
-					Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_RETURNERROR)));
-		
-		return returnValue;
-	}
-		
-	/* (non-Javadoc)
-	 * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getTemplateURL()
-	 */
-	@Override
-	public List<String> getTemplateURL() {
-		List<String> list = new ArrayList<String>();
-		
-		if (oaConfiguration.containsKey(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_TEMPLATE_FIRST_VALUE))
-			list.add(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_TEMPLATE_FIRST_VALUE));
-		
-		if (oaConfiguration.containsKey(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_TEMPLATE_SECOND_VALUE))
-			list.add(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_TEMPLATE_SECOND_VALUE));
-		
-		if (oaConfiguration.containsKey(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_TEMPLATE_THIRD_VALUE))
-			list.add(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_TEMPLATE_THIRD_VALUE));
-		
-		return list;
-	}
-	
-	/* (non-Javadoc)
-	 * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getAditionalAuthBlockText()
-	 */
-	@Override
-	public String getAditionalAuthBlockText() {
-		return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_AUTHBLOCKTEXT);
-		
-	}
-	
-	/* (non-Javadoc)
-	 * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getBKUURL(java.lang.String)
-	 */
-	@Override
-	public String getBKUURL(String bkutype) {
-		if (bkutype.equals(THIRDBKU)) {
-			return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_THIRD);
-			
-		} else if (bkutype.equals(HANDYBKU)) {
-			return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_HANDY);
-			
-		} else if (bkutype.equals(LOCALBKU)) {
-			return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_LOCAL);
-			
-		} else if (bkutype.equals(ONLINEBKU)) {
-			return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_THIRD);
-			
-		}
-		
-		
-			
-		Logger.warn("BKU Type does not match: " 
-				+ THIRDBKU + " or " + HANDYBKU + " or " + LOCALBKU);
-		return null;
-	}
-	
-	/* (non-Javadoc)
-	 * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getBKUURL()
-	 */
-	@Override
-	public List<String> getBKUURL() {		
-		List<String> list = new ArrayList<String>();
-	
-		if (oaConfiguration.containsKey(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_THIRD))
-			list.add(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_THIRD));
-		
-		if (oaConfiguration.containsKey(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_HANDY))
-			list.add(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_HANDY));
-		
-		if (oaConfiguration.containsKey(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_LOCAL))
-			list.add(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_LOCAL));
-
-		return list;
-	}
-	
-	
-	/* (non-Javadoc)
-	 * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#useSSO()
-	 */
-	@Override
-	public boolean useSSO() {
-		try {
-			return Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_SSO_ENABLED));
-			
-		} catch (Exception e) {
-			Logger.warn("Use SSO configuration parameter is not parseable.", e);
-			return false;
-		}
-		
-	}
-	
-	/* (non-Javadoc)
-	 * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#useSSOQuestion()
-	 */
-	@Override
-	public boolean useSSOQuestion() {
-		try {
-			return Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_SSO_USERREQUEST));
-			
-		} catch (Exception e) {
-			Logger.warn("SSO user question configuration parameter is not parseable.", e);
-			return true;
-		}		
-	}
-	
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getMandateProfiles()
- */
-@Override
-public List<String> getMandateProfiles() {
-	String profileConfig = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_MANDATES_OVS_PROFILES);
-	 
-	if (MiscUtil.isNotEmpty(profileConfig)) {
-		List<String> list = new ArrayList<String>();
-		String profilesArray[] = profileConfig.split(",");  	 		 
-	    for(int i = 0; i < profilesArray.length; i++) {
-	    	list.add(profilesArray[i].trim());
-	    	
-	    }
-	    return list;
-	    
-	}
-	
-	return null;
-}
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#isShowMandateCheckBox()
- */
-@Override
-public boolean isShowMandateCheckBox() {
-	try {
-		return Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_MANDATES_OVS_USE));
-				
-	} catch (Exception e) {
-		Logger.warn("Enable mandates configuration parameter is not parseable.", e);
-		return true;
-	}
-}
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#isOnlyMandateAllowed()
- */
-@Override
-public boolean isOnlyMandateAllowed() {
-	try {
-		return Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_MANDATES_OVS_ONLY));
-		
-	} catch (Exception e) {
-		Logger.warn("Use ONLY mandates configuration parameter is not parseable.", e);
-		return false;
-	}
-}
-
-	/* (non-Javadoc)
-	 * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#isShowStorkLogin()
-	 */
-	@Override
-	public boolean isShowStorkLogin() {
-		try {
-			return Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ENABLED));
-			
-		} catch (Exception e) {
-			Logger.warn("Enable STORK login configuration parameter is not parseable.", e);
-			return false;
-		}
-	}
-
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getQaaLevel()
- */
-@Override
-public String getQaaLevel() {
-		String eidasLoALevel = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_MINQAALEVEL);	
-		if (MiscUtil.isEmpty(eidasLoALevel))
-			return MOAIDConstants.eIDAS_LOA_HIGH;		
-		else
-			return eidasLoALevel;
-		
-}
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getRequestedAttributes()
- */
-@Override
-public Collection<StorkAttribute> getRequestedSTORKAttributes() {
-	Map<String, Integer> attrMap = new HashMap<String, Integer>();
-	Map<String, StorkAttribute> resultMap = new HashMap<String, StorkAttribute>();
-	
-	Set<String> configKeys = oaConfiguration.keySet();	
-	for (String el : configKeys) {
-		if (el.startsWith(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST)) {
-			String index = KeyValueUtils.getFirstChildAfterPrefix(el, MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST);
-			if (!attrMap.containsKey(index)) {
-				String isRequested = oaConfiguration.get(
-						MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST
-						+ "." + index + "."
-						+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST_REQUESTED);
-				
-				if (MiscUtil.isNotEmpty(isRequested) && Boolean.parseBoolean(isRequested)) {
-					StorkAttribute attr = new StorkAttribute(
-							oaConfiguration.get(
-									MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST
-										+ "." + index + "."
-										+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST_NAME),
-									Boolean.valueOf(oaConfiguration.get(
-											MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST
-											+ "." + index + "."
-											+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST_MANDATORY)));
-					attrMap.put(index, 0);
-					resultMap.put(attr.getName(), attr);
-				}
-			}			
-		}		
-	}
-			
-	//add mandatory attributes from general config
-	try {
-		for (StorkAttribute el : AuthConfigurationProviderFactory.getInstance().getStorkConfig().getStorkAttributes()) {
-			if (el.getMandatory())
-				resultMap.put(el.getName(), el);
-			
-		}
-				
-	} catch (Exception e) {
-		Logger.warn("Mandatory STORK attributes can not added.", e);
-		
-	}
-	
-	return resultMap.values();
-}
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#isRequireConsentForStorkAttributes()
- */
-@Override
-public boolean isRequireConsentForStorkAttributes() {
-	try{
-		if (isSTORKPVPGateway())
-			return false;
-
-		if (MiscUtil.isEmpty(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_REQUIRECONSENT))) {
-			Logger.info("isRequireConsentForStorkAttributes() is empty, returning default value 'true'");
-			return true;
-			
-		}
-		
-		return Boolean.parseBoolean(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_REQUIRECONSENT));
-	}catch(Exception e)
-	{
-		Logger.warn("isRequireConsentForStorkAttributes() failed, returning default value 'true'", e);
-		return true;
-	}
-}
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getStorkAPs()
- */
-@Override
-public Collection<StorkAttributeProviderPlugin> getStorkAPs() {
-	Map<String, StorkAttributeProviderPlugin> pluginMap = new HashMap<String, StorkAttributeProviderPlugin>();	
-	Set<String> configKeys = oaConfiguration.keySet();	
-	for (String el : configKeys) {
-		if (el.startsWith(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTPROVIDER_LIST)) {
-			String index = KeyValueUtils.getFirstChildAfterPrefix(el, MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTPROVIDER_LIST);
-			if (!pluginMap.containsKey(index)) {
-				StorkAttributeProviderPlugin attr = new StorkAttributeProviderPlugin(
-						oaConfiguration.get(
-								MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTPROVIDER_LIST
-									+ "." + index + "."
-									+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTPROVIDER_LIST_NAME),
-						oaConfiguration.get(
-								MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTPROVIDER_LIST
-									+ "." + index + "."
-									+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTPROVIDER_LIST_URL),
-						oaConfiguration.get(
-								MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTPROVIDER_LIST
-									+ "." + index + "."
-									+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTPROVIDER_LIST_ATTRIBUTES));
-				pluginMap.put(index, attr);
-			}			
-		}		
-	}
-		
-	return pluginMap.values();
-}
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getBKUSelectionTemplate()
- */
-@Override
-public byte[] getBKUSelectionTemplate() {
-	try {
-		String bkuSelectionTemplateBase64 = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_BKUSELECTION_DATA);	
-		if (MiscUtil.isNotEmpty(bkuSelectionTemplateBase64)) {
-			return  Base64Utils.decode(bkuSelectionTemplateBase64, false);
-			
-		}
-		
-	} catch (Exception e) {
-		Logger.warn("OA specific BKU selection template is not decodeable", e);
-		
-	}
-	
-	return null;	
-}
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getSendAssertionTemplate()
- */
-@Override
-public byte[] getSendAssertionTemplate() {
-	try {
-		String bkuSelectionTemplateBase64 = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_SENDASSERTION_DATA);	
-		if (MiscUtil.isNotEmpty(bkuSelectionTemplateBase64)) {
-			return  Base64Utils.decode(bkuSelectionTemplateBase64, false);
-			
-		}
-		
-	} catch (Exception e) {
-		Logger.warn("OA specific BKU selection template is not decodeable", e);
-		
-	}
-	
-	return null;	
-}
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getPepsList()
- */
-@Override
-public Collection<CPEPS> getPepsList() {
-	Map<String, CPEPS> cPEPSMap = new HashMap<String, CPEPS>();
-	try {
-		IStorkConfig availableSTORKConfig = AuthConfigurationProviderFactory.getInstance().getStorkConfig();	
-		if (availableSTORKConfig != null) {	
-			Set<String> configKeys = oaConfiguration.keySet();	
-			
-			for (String el : configKeys) {
-				if (el.startsWith(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST)) {
-					String index = KeyValueUtils.getFirstChildAfterPrefix(el, MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST);
-					if (!cPEPSMap.containsKey(index)) {					
-						if (Boolean.parseBoolean(oaConfiguration.get(
-								MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST
-								+ "." + index + "."
-								+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST_ENABLED))) {
-							CPEPS availableCPEPS = availableSTORKConfig.getCPEPSWithFullName(
-									oaConfiguration.get(
-											MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST
-											+ "." + index + "."
-											+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST_COUNTRYCODE));
-					
-							if (availableCPEPS != null)
-								cPEPSMap.put(index, availableCPEPS);
-						}
-					}			
-				}		
-			}		
-		}
-		
-	} catch (ConfigurationException e) {
-		Logger.error("MOA-ID configuration is not accessable.", e);
-		
-	}
-	
-	return cPEPSMap.values();
-}
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getIDPAttributQueryServiceURL()
- */
-@Override
-public String getIDPAttributQueryServiceURL() {
-	return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_ATTRIBUTQUERY_URL);
-
-}
-
-@Override
-public boolean isInboundSSOInterfederationAllowed() {
-	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_SSO_INBOUND);
-	if (MiscUtil.isNotEmpty(value))
-		return Boolean.parseBoolean(value);	
-	else
-		return false;	
-}
-
-@Override
-public boolean isOutboundSSOInterfederationAllowed() {
-	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_SSO_OUTBOUND);
-	if (MiscUtil.isNotEmpty(value))
-		return Boolean.parseBoolean(value);	
-	else
-		return false;	
-}
-
-@Override
-public boolean isPassivRequestUsedForInterfederation() {
-	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_PASSIVEREQUEST);
-	if (MiscUtil.isNotEmpty(value))
-		return Boolean.parseBoolean(value);	
-	else
-		return false;		
-}
-
-@Override
-public boolean isPerformLocalAuthenticationOnInterfederationError() {
-	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_LOCALAUTHONERROR);
-	if (MiscUtil.isNotEmpty(value))
-		return Boolean.parseBoolean(value);	
-	else
-		return false;	
-}
-
-@Override
-public boolean isInterfederationSSOStorageAllowed() {
-	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_SSO_STORE);
-	if (MiscUtil.isNotEmpty(value))
-		return Boolean.parseBoolean(value);	
-	else
-		return false;		
-}
-
-public boolean isIDPPublicService() throws ConfigurationException {
-	return !hasBaseIdTransferRestriction();
-	
-}
-
-
-public String getSTORKPVPForwardEntity() {
-	return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_FORWARD_IDPIDENTIFIER);
-	
-}
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#isTestCredentialEnabled()
- */
-@Override
-public boolean isTestCredentialEnabled() {
-	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TESTCREDENTIALS_ENABLED);
-	if (MiscUtil.isNotEmpty(value))
-		return Boolean.parseBoolean(value);	
-	else
-		return false;	
-}
-
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getTestCredentialOIDs()
- */
-@Override
-public List<String> getTestCredentialOIDs() {
-	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TESTCREDENTIALS_OIDs);
-	if (MiscUtil.isNotEmpty(value)) {
-		List<String> list = new ArrayList<String>();
-		String profilesArray[] = value.split(",");  	 		 
-	    for(int i = 0; i < profilesArray.length; i++) {
-	    	list.add(profilesArray[i].trim());
-	    	
-	    }
-	    return list;
-	
-	} else
-		return null;	
-}
-
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getBPKDecBpkDecryptionParameters()
- */
-@Override
-public PrivateKey getBPKDecBpkDecryptionKey() {
-
-	try {		
-		EncryptedData encdata = new EncryptedData(
-				Base64Utils.decode(
-					oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_FOREIGNBPK_DECRYPT_BLOB), false), 
-				Base64Utils.decode(
-						oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_FOREIGNBPK_DECRYPT_IV), false));
-		
-		byte[] serializedData = ConfigurationEncrytionUtil.getInstance().decrypt(encdata);
-		BPKDecryptionParameters data = 
-				(BPKDecryptionParameters) SerializationUtils.deserialize(serializedData);
-		
-		return data.getPrivateKey();
-				
-	} catch (BuildException e) {
-		Logger.error("Can not decrypt key information for bPK decryption", e);
-		
-	} catch (NullPointerException e) {
-		Logger.error("No keyInformation found for bPK decryption");
-		
-	} catch (IOException e) {
-		Logger.error("Can not decode key information for bPK decryption.", e);
-	}
-	
-	return null;
-	
-}
-
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getPublicURLPrefix()
- */
-@Override
-public String getPublicURLPrefix() {
-	return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_UNIQUEIDENTIFIER);
-}
-
-
-private boolean getBusinessService() {
-	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_BUSINESSSERVICE);
-	if (MiscUtil.isNotEmpty(value))
-		return Boolean.parseBoolean(value);	
-	else
-		return true;	
-}
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#isInderfederationIDP()
- */
-@Override
-public boolean isInderfederationIDP() {
-	String value = oaConfiguration.get(MOAIDConfigurationConstants.PREFIX_MOAID_SERVICES);
-	return MOAIDConfigurationConstants.PREFIX_IIDP.equals(value);
-	
-}
-
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#isSTORKPVPGateway()
- */
-@Override
-public boolean isSTORKPVPGateway() {
-	String value = oaConfiguration.get(MOAIDConfigurationConstants.PREFIX_MOAID_SERVICES);
-	return MOAIDConfigurationConstants.PREFIX_GATEWAY.equals(value);
-}
-
-
-
-
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getFriendlyName()
- */
-@Override
-public String getFriendlyName() {
-	return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_FRIENDLYNAME);
-}
-
-
-///* (non-Javadoc)
-// * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getOaType()
-// */
-//@Override
-//public String getOaType() {
-//	if (getBusinessService())
-//		return "businessService";
-//	else
-//		return "publicService";
-//}
-
-
-/**
- * 
- * @return true/false if bPK or wbPK should not be visible in AuthBlock 
- */
-public boolean isRemovePBKFromAuthBlock() {
-	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_AUTHBLOCK_REMOVEBPK);
-	if (MiscUtil.isNotEmpty(value))
-		return Boolean.parseBoolean(value);	
-	else
-		return false;	
-}
-
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getReversionsLoggingEventCodes()
- */
-@Override
-public List<Integer> getReversionsLoggingEventCodes() {
-	String isEnabled = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_REVERSION_LOGS_ENABLED);
-	if (MiscUtil.isNotEmpty(isEnabled) && Boolean.parseBoolean(isEnabled)) {
-		String eventCodes = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_REVERSION_LOGS_EVENTCODES);
-		if (MiscUtil.isNotEmpty(eventCodes)) {
-			String[] codes = eventCodes.split(",");
-			List<Integer> result = new ArrayList<Integer>();
-			for (String el : codes) {
-				try {
-					result.add(Integer.valueOf(el.trim()));
-					
-				} catch (NumberFormatException e) {
-					Logger.warn("EventCode can not parsed to Integer.", e);
-					
-				}
-			}
-			if (!result.isEmpty())
-				return result;
-			
-		}		
-	}
-	return null;
-}
-
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#isUseIDLTestTrustStore()
- */
-@Override
-public boolean isUseIDLTestTrustStore() {
-	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TESTCREDENTIALS_USETESTIDLTRUSTSTORE);
-	if (MiscUtil.isNotEmpty(value))
-		return Boolean.parseBoolean(value);	
-	else
-		return false;	
-}
-
-
-/* (non-Javadoc)
- * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#isUseAuthBlockTestTestStore()
- */
-@Override
-public boolean isUseAuthBlockTestTestStore() {
-	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TESTCREDENTIALS_USETESTAUTHBLOCKTRUSTSTORE);
-	if (MiscUtil.isNotEmpty(value))
-		return Boolean.parseBoolean(value);	
-	else
-		return false;	
-}
-
-public String toString() {
-	if (oaConfiguration != null)
-		return Arrays.asList(oaConfiguration).toString();
-	
-	return "Object not initialized";
-}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameterDecorator.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameterDecorator.java
new file mode 100644
index 000000000..f0477c1fb
--- /dev/null
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameterDecorator.java
@@ -0,0 +1,958 @@
+/*******************************************************************************
+ * Copyright 2014 Federal Chancellery Austria
+ * MOA-ID has been developed in a cooperation between BRZ, the Federal
+ * Chancellery Austria - ICT staff unit, and Graz University of Technology.
+ * 
+ * Licensed under the EUPL, Version 1.1 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:
+ * http://www.osor.eu/eupl/
+ * 
+ * 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.
+ ******************************************************************************/
+/*
+ * Copyright 2003 Federal Chancellery Austria
+ * MOA-ID has been developed in a cooperation between BRZ, the Federal
+ * Chancellery Austria - ICT staff unit, and Graz University of Technology.
+ *
+ * Licensed under the EUPL, Version 1.1 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:
+ * http://www.osor.eu/eupl/
+ *
+ * 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.egovernment.moa.id.config.auth;
+
+import java.io.IOException;
+import java.io.Serializable;
+import java.security.PrivateKey;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.commons.lang.SerializationUtils;
+
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.EAAFConfigurationException;
+import at.gv.egiz.eaaf.core.impl.utils.KeyValueUtils;
+import at.gv.egovernment.moa.id.auth.exception.BuildException;
+import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants;
+import at.gv.egovernment.moa.id.commons.MOAIDConstants;
+import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
+import at.gv.egovernment.moa.id.commons.api.IStorkConfig;
+import at.gv.egovernment.moa.id.commons.api.data.BPKDecryptionParameters;
+import at.gv.egovernment.moa.id.commons.api.data.CPEPS;
+import at.gv.egovernment.moa.id.commons.api.data.SAML1ConfigurationParameters;
+import at.gv.egovernment.moa.id.commons.api.data.StorkAttribute;
+import at.gv.egovernment.moa.id.commons.api.data.StorkAttributeProviderPlugin;
+import at.gv.egovernment.moa.id.commons.api.exceptions.ConfigurationException;
+import at.gv.egovernment.moa.id.commons.config.MOAIDConfigurationConstants;
+import at.gv.egovernment.moa.id.commons.validation.TargetValidator;
+import at.gv.egovernment.moa.id.data.EncryptedData;
+import at.gv.egovernment.moa.id.util.ConfigurationEncrytionUtil;
+import at.gv.egovernment.moa.logging.Logger;
+import at.gv.egovernment.moa.util.Base64Utils;
+import at.gv.egovernment.moa.util.MiscUtil;
+
+	
+
+/**
+ * Configuration parameters belonging to an online application,
+ * to use with the MOA ID Auth component.
+ *
+ * @author Thomas Lenz
+ */
+public class OAAuthParameterDecorator implements IOAAuthParameters, Serializable{	
+	
+	private static final long serialVersionUID = -6522544229837934376L;
+	final public static String DEFAULT_KEYBOXIDENTIFIER = "SecureSignatureKeypair";
+	
+	
+	private ISPConfiguration spConfiguration;
+	
+		
+	public OAAuthParameterDecorator(ISPConfiguration spConfiguration) {
+		this.spConfiguration = spConfiguration;
+	}
+
+      
+  @Override
+  public boolean hasBaseIdInternalProcessingRestriction() throws EAAFConfigurationException {
+	  String targetAreaIdentifier = getAreaSpecificTargetIdentifier();
+	  for (String el : spConfiguration.getTargetsWithNoBaseIdInternalProcessingRestriction()) {
+		  if (targetAreaIdentifier.startsWith(el))
+			  return false;
+		  
+	  }	  
+	  return true;
+	  
+  }
+
+  @Override
+  public boolean hasBaseIdTransferRestriction() throws EAAFConfigurationException {
+	  String targetAreaIdentifier = getAreaSpecificTargetIdentifier();
+	  for (String el : spConfiguration.getTargetsWithNoBaseIdTransferRestriction()) {
+		  if (targetAreaIdentifier.startsWith(el))
+			  return false;
+		  
+	  }	  
+	  return true;
+	  
+  }
+    
+  @Override
+  public String getAreaSpecificTargetIdentifier() {	  
+	  if (getBusinessService())
+		  return getIdentityLinkDomainIdentifier();
+	  else
+		  return MOAIDAuthConstants.PREFIX_CDID + getTarget();
+	  		  
+  }
+  
+  @Override
+  public String getAreaSpecificTargetIdentifierFriendlyName() throws ConfigurationException{
+	  if (getBusinessService())
+		  return getIdentityLinkDomainIdentifierType();
+	  else
+		  return getTargetFriendlyName();
+	  
+  }
+  
+  
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getIdentityLinkDomainIdentifier()
+ */
+//@Override
+private String getIdentityLinkDomainIdentifier() {
+	String type = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_TYPE);
+	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_VALUE);
+	if (MiscUtil.isNotEmpty(type) && MiscUtil.isNotEmpty(value)) {
+		if (MOAIDConstants.IDENIFICATIONTYPE_STORK.equals(type)) {
+			return MOAIDConstants.PREFIX_STORK + "AT" + "+" + value;
+		
+		} else if (MOAIDConstants.IDENIFICATIONTYPE_EIDAS.equals(type)) {
+			return MOAIDConstants.PREFIX_EIDAS + value;
+						
+		} else {
+			return MOAIDConstants.PREFIX_WPBK + type + "+" + value;
+			
+		}		
+	}
+	
+	return null;
+}
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getIdentityLinkDomainIdentifierType()
+ */
+//@Override
+private String getIdentityLinkDomainIdentifierType() {
+	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_TYPE);
+	if (MiscUtil.isNotEmpty(value))
+		return MOAIDConfigurationConstants.BUSINESSSERVICENAMES.get(value);
+	
+	else
+		return null;	
+}
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getTarget()
+ */
+//@Override
+private String getTarget() {
+	if (Boolean.parseBoolean(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_USE_OWN)))
+		return spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_OWN_TARGET);
+		
+	else {
+		if (Boolean.parseBoolean(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_USE_SUB))) {
+			return spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_TARGET)
+					+ "-"
+					+ spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_TARGET_SUB);
+			
+		} else {
+			return spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_TARGET);
+		}		
+	}
+}
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getTargetFriendlyName()
+ */
+//@Override
+private String getTargetFriendlyName() {
+	if (Boolean.parseBoolean(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_USE_OWN)))
+		return spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_OWN_NAME);
+		
+	else
+		return TargetValidator.getTargetFriendlyName(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_TARGET));
+
+}
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getKeyBoxIdentifier()
+ */
+@Override
+public String getKeyBoxIdentifier() {
+	String keyBoxId = spConfiguration.getConfigurationValue(
+			MOAIDConfigurationConstants.SERVICE_AUTH_BKU_KEYBOXIDENTIFIER);
+	if (MiscUtil.isNotEmpty(keyBoxId))
+		return keyBoxId;
+	else
+		return DEFAULT_KEYBOXIDENTIFIER;
+	
+}
+
+	/* (non-Javadoc)
+	 * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getSAML1Parameter()
+	 */
+	@Override
+	public SAML1ConfigurationParameters getSAML1Parameter() {		
+		SAML1ConfigurationParameters returnValue = new SAML1ConfigurationParameters();
+		if (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_ENABLED))
+			returnValue.setActive(
+					Boolean.valueOf(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_ENABLED)));
+		
+		if (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_AUTHBLOCK))
+			returnValue.setProvideAuthBlock(
+					Boolean.valueOf(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_AUTHBLOCK)));
+		
+		if (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_IDL))
+			returnValue.setProvideIdl(
+					Boolean.valueOf(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_IDL)));
+		
+		if (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_BASEID))
+			returnValue.setProvideBaseId(
+					Boolean.valueOf(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_BASEID)));
+		
+		if (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_CERTIFICATE))
+			returnValue.setProvideCertificate(
+					Boolean.valueOf(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_CERTIFICATE)));
+		
+		if (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_MANDATE))
+			returnValue.setProvideMandate(
+					Boolean.valueOf(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_MANDATE)));
+		
+		if (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_RETURNERROR))
+			returnValue.setProvideAllErrors(
+					Boolean.valueOf(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_RETURNERROR)));
+		
+		return returnValue;
+	}
+		
+	/* (non-Javadoc)
+	 * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getTemplateURL()
+	 */
+	@Override
+	public List<String> getTemplateURL() {
+		List<String> list = new ArrayList<String>();
+		
+		if (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_TEMPLATE_FIRST_VALUE))
+			list.add(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_TEMPLATE_FIRST_VALUE));
+		
+		if (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_TEMPLATE_SECOND_VALUE))
+			list.add(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_TEMPLATE_SECOND_VALUE));
+		
+		if (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_TEMPLATE_THIRD_VALUE))
+			list.add(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_TEMPLATE_THIRD_VALUE));
+		
+		return list;
+	}
+	
+	/* (non-Javadoc)
+	 * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getAditionalAuthBlockText()
+	 */
+	@Override
+	public String getAditionalAuthBlockText() {
+		return spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_AUTHBLOCKTEXT);
+		
+	}
+	
+	/* (non-Javadoc)
+	 * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getBKUURL(java.lang.String)
+	 */
+	@Override
+	public String getBKUURL(String bkutype) {
+		if (bkutype.equals(THIRDBKU)) {
+			return spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_THIRD);
+			
+		} else if (bkutype.equals(HANDYBKU)) {
+			return spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_HANDY);
+			
+		} else if (bkutype.equals(LOCALBKU)) {
+			return spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_LOCAL);
+			
+		} else if (bkutype.equals(ONLINEBKU)) {
+			return spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_THIRD);
+			
+		}
+		
+		
+			
+		Logger.warn("BKU Type does not match: " 
+				+ THIRDBKU + " or " + HANDYBKU + " or " + LOCALBKU);
+		return null;
+	}
+	
+	/* (non-Javadoc)
+	 * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getBKUURL()
+	 */
+	@Override
+	public List<String> getBKUURL() {		
+		List<String> list = new ArrayList<String>();
+	
+		if (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_THIRD))
+			list.add(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_THIRD));
+		
+		if (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_HANDY))
+			list.add(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_HANDY));
+		
+		if (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_LOCAL))
+			list.add(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_LOCAL));
+
+		return list;
+	}
+	
+	
+	/* (non-Javadoc)
+	 * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#useSSO()
+	 */
+	@Override
+	public boolean useSSO() {
+		try {
+			return Boolean.valueOf(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_SSO_ENABLED));
+			
+		} catch (Exception e) {
+			Logger.warn("Use SSO configuration parameter is not parseable.", e);
+			return false;
+		}
+		
+	}
+	
+	/* (non-Javadoc)
+	 * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#useSSOQuestion()
+	 */
+	@Override
+	public boolean useSSOQuestion() {
+		try {
+			return Boolean.valueOf(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_SSO_USERREQUEST));
+			
+		} catch (Exception e) {
+			Logger.warn("SSO user question configuration parameter is not parseable.", e);
+			return true;
+		}		
+	}
+	
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getMandateProfiles()
+ */
+@Override
+public List<String> getMandateProfiles() {
+	String profileConfig = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_MANDATES_OVS_PROFILES);
+	 
+	if (MiscUtil.isNotEmpty(profileConfig)) {
+		List<String> list = new ArrayList<String>();
+		String profilesArray[] = profileConfig.split(",");  	 		 
+	    for(int i = 0; i < profilesArray.length; i++) {
+	    	list.add(profilesArray[i].trim());
+	    	
+	    }
+	    return list;
+	    
+	}
+	
+	return null;
+}
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#isShowMandateCheckBox()
+ */
+@Override
+public boolean isShowMandateCheckBox() {
+	try {
+		return Boolean.valueOf(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_MANDATES_OVS_USE));
+				
+	} catch (Exception e) {
+		Logger.warn("Enable mandates configuration parameter is not parseable.", e);
+		return true;
+	}
+}
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#isOnlyMandateAllowed()
+ */
+@Override
+public boolean isOnlyMandateAllowed() {
+	try {
+		return Boolean.valueOf(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_MANDATES_OVS_ONLY));
+		
+	} catch (Exception e) {
+		Logger.warn("Use ONLY mandates configuration parameter is not parseable.", e);
+		return false;
+	}
+}
+
+	/* (non-Javadoc)
+	 * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#isShowStorkLogin()
+	 */
+	@Override
+	public boolean isShowStorkLogin() {
+		try {
+			return Boolean.valueOf(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ENABLED));
+			
+		} catch (Exception e) {
+			Logger.warn("Enable STORK login configuration parameter is not parseable.", e);
+			return false;
+		}
+	}
+
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getQaaLevel()
+ */
+@Override
+public String getQaaLevel() {
+		String eidasLoALevel = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_MINQAALEVEL);	
+		if (MiscUtil.isEmpty(eidasLoALevel))
+			return MOAIDConstants.eIDAS_LOA_HIGH;		
+		else
+			return eidasLoALevel;
+		
+}
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getRequestedAttributes()
+ */
+@Override
+public Collection<StorkAttribute> getRequestedSTORKAttributes() {
+	Map<String, Integer> attrMap = new HashMap<String, Integer>();
+	Map<String, StorkAttribute> resultMap = new HashMap<String, StorkAttribute>();
+	
+	Set<String> configKeys = spConfiguration.getFullConfiguration().keySet();	
+	for (String el : configKeys) {
+		if (el.startsWith(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST)) {
+			String index = KeyValueUtils.getFirstChildAfterPrefix(el, MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST);
+			if (!attrMap.containsKey(index)) {
+				String isRequested = spConfiguration.getConfigurationValue(
+						MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST
+						+ "." + index + "."
+						+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST_REQUESTED);
+				
+				if (MiscUtil.isNotEmpty(isRequested) && Boolean.parseBoolean(isRequested)) {
+					StorkAttribute attr = new StorkAttribute(
+							spConfiguration.getConfigurationValue(
+									MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST
+										+ "." + index + "."
+										+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST_NAME),
+									Boolean.valueOf(spConfiguration.getConfigurationValue(
+											MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST
+											+ "." + index + "."
+											+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST_MANDATORY)));
+					attrMap.put(index, 0);
+					resultMap.put(attr.getName(), attr);
+				}
+			}			
+		}		
+	}
+			
+	//add mandatory attributes from general config
+	try {
+		for (StorkAttribute el : AuthConfigurationProviderFactory.getInstance().getStorkConfig().getStorkAttributes()) {
+			if (el.getMandatory())
+				resultMap.put(el.getName(), el);
+			
+		}
+				
+	} catch (Exception e) {
+		Logger.warn("Mandatory STORK attributes can not added.", e);
+		
+	}
+	
+	return resultMap.values();
+}
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#isRequireConsentForStorkAttributes()
+ */
+@Override
+public boolean isRequireConsentForStorkAttributes() {
+	try{
+		if (isSTORKPVPGateway())
+			return false;
+
+		if (MiscUtil.isEmpty(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_REQUIRECONSENT))) {
+			Logger.info("isRequireConsentForStorkAttributes() is empty, returning default value 'true'");
+			return true;
+			
+		}
+		
+		return Boolean.parseBoolean(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_REQUIRECONSENT));
+	}catch(Exception e)
+	{
+		Logger.warn("isRequireConsentForStorkAttributes() failed, returning default value 'true'", e);
+		return true;
+	}
+}
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getStorkAPs()
+ */
+@Override
+public Collection<StorkAttributeProviderPlugin> getStorkAPs() {
+	Map<String, StorkAttributeProviderPlugin> pluginMap = new HashMap<String, StorkAttributeProviderPlugin>();	
+	Set<String> configKeys = spConfiguration.getFullConfiguration().keySet();	
+	for (String el : configKeys) {
+		if (el.startsWith(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTPROVIDER_LIST)) {
+			String index = KeyValueUtils.getFirstChildAfterPrefix(el, MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTPROVIDER_LIST);
+			if (!pluginMap.containsKey(index)) {
+				StorkAttributeProviderPlugin attr = new StorkAttributeProviderPlugin(
+						spConfiguration.getConfigurationValue(
+								MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTPROVIDER_LIST
+									+ "." + index + "."
+									+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTPROVIDER_LIST_NAME),
+						spConfiguration.getConfigurationValue(
+								MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTPROVIDER_LIST
+									+ "." + index + "."
+									+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTPROVIDER_LIST_URL),
+						spConfiguration.getConfigurationValue(
+								MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTPROVIDER_LIST
+									+ "." + index + "."
+									+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTPROVIDER_LIST_ATTRIBUTES));
+				pluginMap.put(index, attr);
+			}			
+		}		
+	}
+		
+	return pluginMap.values();
+}
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getBKUSelectionTemplate()
+ */
+@Override
+public byte[] getBKUSelectionTemplate() {
+	try {
+		String bkuSelectionTemplateBase64 = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_BKUSELECTION_DATA);	
+		if (MiscUtil.isNotEmpty(bkuSelectionTemplateBase64)) {
+			return  Base64Utils.decode(bkuSelectionTemplateBase64, false);
+			
+		}
+		
+	} catch (Exception e) {
+		Logger.warn("OA specific BKU selection template is not decodeable", e);
+		
+	}
+	
+	return null;	
+}
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getSendAssertionTemplate()
+ */
+@Override
+public byte[] getSendAssertionTemplate() {
+	try {
+		String bkuSelectionTemplateBase64 = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_SENDASSERTION_DATA);	
+		if (MiscUtil.isNotEmpty(bkuSelectionTemplateBase64)) {
+			return  Base64Utils.decode(bkuSelectionTemplateBase64, false);
+			
+		}
+		
+	} catch (Exception e) {
+		Logger.warn("OA specific BKU selection template is not decodeable", e);
+		
+	}
+	
+	return null;	
+}
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getPepsList()
+ */
+@Override
+public Collection<CPEPS> getPepsList() {
+	Map<String, CPEPS> cPEPSMap = new HashMap<String, CPEPS>();
+	try {
+		IStorkConfig availableSTORKConfig = AuthConfigurationProviderFactory.getInstance().getStorkConfig();	
+		if (availableSTORKConfig != null) {	
+			Set<String> configKeys = spConfiguration.getFullConfiguration().keySet();	
+			
+			for (String el : configKeys) {
+				if (el.startsWith(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST)) {
+					String index = KeyValueUtils.getFirstChildAfterPrefix(el, MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST);
+					if (!cPEPSMap.containsKey(index)) {					
+						if (Boolean.parseBoolean(spConfiguration.getConfigurationValue(
+								MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST
+								+ "." + index + "."
+								+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST_ENABLED))) {
+							CPEPS availableCPEPS = availableSTORKConfig.getCPEPSWithFullName(
+									spConfiguration.getConfigurationValue(
+											MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST
+											+ "." + index + "."
+											+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST_COUNTRYCODE));
+					
+							if (availableCPEPS != null)
+								cPEPSMap.put(index, availableCPEPS);
+						}
+					}			
+				}		
+			}		
+		}
+		
+	} catch (ConfigurationException e) {
+		Logger.error("MOA-ID configuration is not accessable.", e);
+		
+	}
+	
+	return cPEPSMap.values();
+}
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getIDPAttributQueryServiceURL()
+ */
+@Override
+public String getIDPAttributQueryServiceURL() {
+	return spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_ATTRIBUTQUERY_URL);
+
+}
+
+@Override
+public boolean isInboundSSOInterfederationAllowed() {
+	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_SSO_INBOUND);
+	if (MiscUtil.isNotEmpty(value))
+		return Boolean.parseBoolean(value);	
+	else
+		return false;	
+}
+
+@Override
+public boolean isOutboundSSOInterfederationAllowed() {
+	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_SSO_OUTBOUND);
+	if (MiscUtil.isNotEmpty(value))
+		return Boolean.parseBoolean(value);	
+	else
+		return false;	
+}
+
+@Override
+public boolean isPassivRequestUsedForInterfederation() {
+	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_PASSIVEREQUEST);
+	if (MiscUtil.isNotEmpty(value))
+		return Boolean.parseBoolean(value);	
+	else
+		return false;		
+}
+
+@Override
+public boolean isPerformLocalAuthenticationOnInterfederationError() {
+	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_LOCALAUTHONERROR);
+	if (MiscUtil.isNotEmpty(value))
+		return Boolean.parseBoolean(value);	
+	else
+		return false;	
+}
+
+@Override
+public boolean isInterfederationSSOStorageAllowed() {
+	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_SSO_STORE);
+	if (MiscUtil.isNotEmpty(value))
+		return Boolean.parseBoolean(value);	
+	else
+		return false;		
+}
+
+public boolean isIDPPublicService() throws ConfigurationException {
+	try {
+		return !hasBaseIdTransferRestriction();
+		
+	} catch (EAAFConfigurationException e) {
+		throw new ConfigurationException("internal.00", new Object[] {}, e);
+		
+	}
+	
+}
+
+
+public String getSTORKPVPForwardEntity() {
+	return spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_FORWARD_IDPIDENTIFIER);
+	
+}
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#isTestCredentialEnabled()
+ */
+@Override
+public boolean isTestCredentialEnabled() {
+	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TESTCREDENTIALS_ENABLED);
+	if (MiscUtil.isNotEmpty(value))
+		return Boolean.parseBoolean(value);	
+	else
+		return false;	
+}
+
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getTestCredentialOIDs()
+ */
+@Override
+public List<String> getTestCredentialOIDs() {
+	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TESTCREDENTIALS_OIDs);
+	if (MiscUtil.isNotEmpty(value)) {
+		List<String> list = new ArrayList<String>();
+		String profilesArray[] = value.split(",");  	 		 
+	    for(int i = 0; i < profilesArray.length; i++) {
+	    	list.add(profilesArray[i].trim());
+	    	
+	    }
+	    return list;
+	
+	} else
+		return null;	
+}
+
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getBPKDecBpkDecryptionParameters()
+ */
+@Override
+public PrivateKey getBPKDecBpkDecryptionKey() {
+
+	try {		
+		EncryptedData encdata = new EncryptedData(
+				Base64Utils.decode(
+					spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_FOREIGNBPK_DECRYPT_BLOB), false), 
+				Base64Utils.decode(
+						spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_FOREIGNBPK_DECRYPT_IV), false));
+		
+		byte[] serializedData = ConfigurationEncrytionUtil.getInstance().decrypt(encdata);
+		BPKDecryptionParameters data = 
+				(BPKDecryptionParameters) SerializationUtils.deserialize(serializedData);
+		
+		return data.getPrivateKey();
+				
+	} catch (BuildException e) {
+		Logger.error("Can not decrypt key information for bPK decryption", e);
+		
+	} catch (NullPointerException e) {
+		Logger.error("No keyInformation found for bPK decryption");
+		
+	} catch (IOException e) {
+		Logger.error("Can not decode key information for bPK decryption.", e);
+	}
+	
+	return null;
+	
+}
+
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getPublicURLPrefix()
+ */
+@Override
+public String getPublicURLPrefix() {
+	return spConfiguration.getUniqueIdentifier();
+	
+}
+
+
+private boolean getBusinessService() {
+	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_BUSINESSSERVICE);
+	if (MiscUtil.isNotEmpty(value))
+		return Boolean.parseBoolean(value);	
+	else
+		return true;	
+}
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#isInderfederationIDP()
+ */
+@Override
+public boolean isInderfederationIDP() {
+	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.PREFIX_MOAID_SERVICES);
+	return MOAIDConfigurationConstants.PREFIX_IIDP.equals(value);
+	
+}
+
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#isSTORKPVPGateway()
+ */
+@Override
+public boolean isSTORKPVPGateway() {
+	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.PREFIX_MOAID_SERVICES);
+	return MOAIDConfigurationConstants.PREFIX_GATEWAY.equals(value);
+}
+
+
+
+
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getFriendlyName()
+ */
+@Override
+public String getFriendlyName() {
+	return spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_FRIENDLYNAME);
+}
+
+
+///* (non-Javadoc)
+// * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getOaType()
+// */
+//@Override
+//public String getOaType() {
+//	if (getBusinessService())
+//		return "businessService";
+//	else
+//		return "publicService";
+//}
+
+
+/**
+ * 
+ * @return true/false if bPK or wbPK should not be visible in AuthBlock 
+ */
+public boolean isRemovePBKFromAuthBlock() {
+	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_AUTHBLOCK_REMOVEBPK);
+	if (MiscUtil.isNotEmpty(value))
+		return Boolean.parseBoolean(value);	
+	else
+		return false;	
+}
+
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#getReversionsLoggingEventCodes()
+ */
+@Override
+public List<Integer> getReversionsLoggingEventCodes() {
+	String isEnabled = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_REVERSION_LOGS_ENABLED);
+	if (MiscUtil.isNotEmpty(isEnabled) && Boolean.parseBoolean(isEnabled)) {
+		String eventCodes = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_REVERSION_LOGS_EVENTCODES);
+		if (MiscUtil.isNotEmpty(eventCodes)) {
+			String[] codes = eventCodes.split(",");
+			List<Integer> result = new ArrayList<Integer>();
+			for (String el : codes) {
+				try {
+					result.add(Integer.valueOf(el.trim()));
+					
+				} catch (NumberFormatException e) {
+					Logger.warn("EventCode can not parsed to Integer.", e);
+					
+				}
+			}
+			if (!result.isEmpty())
+				return result;
+			
+		}		
+	}
+	return null;
+}
+
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#isUseIDLTestTrustStore()
+ */
+@Override
+public boolean isUseIDLTestTrustStore() {
+	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TESTCREDENTIALS_USETESTIDLTRUSTSTORE);
+	if (MiscUtil.isNotEmpty(value))
+		return Boolean.parseBoolean(value);	
+	else
+		return false;	
+}
+
+
+/* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.IOAAuthParameters#isUseAuthBlockTestTestStore()
+ */
+@Override
+public boolean isUseAuthBlockTestTestStore() {
+	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TESTCREDENTIALS_USETESTAUTHBLOCKTRUSTSTORE);
+	if (MiscUtil.isNotEmpty(value))
+		return Boolean.parseBoolean(value);	
+	else
+		return false;	
+}
+
+public String toString() {
+	if (spConfiguration.getFullConfiguration() != null)
+		return Arrays.asList(spConfiguration.getFullConfiguration()).toString();
+	
+	return "Object not initialized";
+}
+
+
+@Override
+public boolean containsConfigurationKey(String arg0) {
+	return spConfiguration.containsConfigurationKey(arg0);
+	
+}
+
+
+@Override
+public String getConfigurationValue(String arg0) {
+	return spConfiguration.getConfigurationValue(arg0);
+}
+
+
+@Override
+public Map<String, String> getFullConfiguration() {
+	return spConfiguration.getFullConfiguration();
+}
+
+
+@Override
+/**
+ * THIS METHODE IS NOT SUPPORTED IN THIS IMPLEMENTATION 
+ */
+public List<String> getTargetsWithNoBaseIdInternalProcessingRestriction() {
+	return null;
+}
+
+
+@Override
+/**
+ * THIS METHODE IS NOT SUPPORTED IN THIS IMPLEMENTATION 
+ */
+public List<String> getTargetsWithNoBaseIdTransferRestriction() {
+	return null;
+}
+
+
+@Override
+/**
+ * THIS METHODE IS NOT SUPPORTED IN THIS IMPLEMENTATION 
+ */
+public String getUniqueIdentifier() {
+	return null;
+}
+
+
+}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/PropertyBasedAuthConfigurationProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/PropertyBasedAuthConfigurationProvider.java
index d3e340a90..1abbeb789 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/PropertyBasedAuthConfigurationProvider.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/PropertyBasedAuthConfigurationProvider.java
@@ -1,12 +1,6 @@
 package at.gv.egovernment.moa.id.config.auth;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
 import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -20,6 +14,10 @@ import java.util.Properties;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.EAAFConfigurationException;
+import at.gv.egiz.eaaf.core.impl.idp.conf.SPConfigurationImpl;
+import at.gv.egiz.eaaf.core.impl.utils.KeyValueUtils;
 import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants;
 import at.gv.egovernment.moa.id.commons.MOAIDConstants;
 import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
@@ -35,7 +33,6 @@ import at.gv.egovernment.moa.id.commons.db.dao.config.deprecated.MOASP;
 import at.gv.egovernment.moa.id.commons.db.dao.config.deprecated.OnlineApplication;
 import at.gv.egovernment.moa.id.commons.db.dao.config.deprecated.SecurityLayer;
 import at.gv.egovernment.moa.id.commons.db.dao.config.deprecated.VerifyIdentityLink;
-import at.gv.egovernment.moa.id.commons.utils.KeyValueUtils;
 import at.gv.egovernment.moa.id.config.ConfigurationProviderImpl;
 import at.gv.egovernment.moa.id.config.ConfigurationUtils;
 import at.gv.egovernment.moa.id.config.ConnectionParameter;
@@ -55,111 +52,77 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 
 	private static final boolean TRUST_MANAGER_REVOCATION_CHECKING_DEFAULT = true;
 
-	private MOAIDConfiguration configuration;
-	private final Properties properties = new Properties();
-	
+	private MOAIDConfiguration configuration; 
 	private boolean requireJDBCBackupImplementation = false;
 	
-	public PropertyBasedAuthConfigurationProvider(String configFileName) throws ConfigurationException {	    
-	    if (configFileName == null) {
-	    	configFileName = System.getProperty(ConfigurationProvider.CONFIG_PROPERTY_NAME);
-	    	
-	    	if (MiscUtil.isEmpty(configFileName))	    	
-	    		throw new ConfigurationException("config.01", null);
-	    }
-	    
-	    Logger.info("Loading MOA-ID-AUTH configuration " + configFileName);
-	    
-	    try {
-	    	URI fileURI = new URI(configFileName);	    	
-	    	//instance = new PropertyBasedAuthConfigurationProvider(fileURI);
-	    	initialize(fileURI);
-	    	
-	    } catch (URISyntaxException e){
-	    	Logger.error("MOA-ID-Auth configuration file does not starts with file:/ as prefix.", e);
-	    	throw new ConfigurationException("config24", new Object[]{MOAIDAuthConstants.FILE_URI_PREFIX, configFileName});
+	public PropertyBasedAuthConfigurationProvider(String configFileName) throws ConfigurationException, EAAFConfigurationException {	  
+		super(configFileName);		
+//		try {			
+			Logger.info("Loading MOA-ID-AUTH configuration " +  getConfigurationFilePath().toString());
+	    	initialize();
 	    	
-	    }
+//	    } catch (URISyntaxException e){
+//	    	Logger.error("MOA-ID-Auth configuration file does not starts with file:/ as prefix.", e);
+//	    	throw new ConfigurationException("config24", new Object[]{MOAIDAuthConstants.FILE_URI_PREFIX, configFileName});
+//	    	
+//	    }
 		
 	}
 
-//	/**
-//	 * The constructor with path to a properties file as argument.
-//	 *
-//	 * @param fileName the path to the properties file
-//	 * @throws ConfigurationException if an error occurs during loading the properties file.
-//	 */
-//	public PropertyBasedAuthConfigurationProvider(URI fileName) throws ConfigurationException {
-//		initialize(fileName);
-//		
-//	}
+	
+	//TODO: add EAAFCore configuration prefix if required
+	@Override
+	public String getApplicationSpecificKeyPrefix() {
+		return null;
+		
+	}
 
-	private void initialize(URI fileName) throws ConfigurationException {
-		File propertiesFile = new File(fileName);
-		rootConfigFileDir = propertiesFile.getParent();
-		try {
-		  rootConfigFileDir = new File(rootConfigFileDir).toURI().toURL().toString();
-		  
-		} catch (MalformedURLException t) {
-			throw new ConfigurationException("config.03", null, t);
-			
-		}
+	@Override
+	protected String getBackupConfigPath() {
+		return System.getProperty(ConfigurationProvider.CONFIG_PROPERTY_NAME);
 		
-		FileInputStream in = null;
-		try {
-			in = new FileInputStream(propertiesFile);
-			properties.load(in);			
-			super.initial(properties);
-			
-//			JPAPropertiesWithJavaConfig.setLocalProperties(configProp);		
-//			System.getProperties().setProperty("location", "file:" + fileName);
-//			context = new ClassPathXmlApplicationContext(
-//					new String[] {  "moaid.configuration.beans.xml",
-//									"configuration.beans.xml"
-//									});
-//			AutowireCapableBeanFactory acbFactory = context.getAutowireCapableBeanFactory();
-//			acbFactory.autowireBean(this);
-			
-			//Some databases do not allow the selection of a lob in SQL where expression  
-			String dbDriver = properties.getProperty("configuration.hibernate.connection.driver_class");					
-			if (MiscUtil.isNotEmpty(dbDriver)) {
-				for (String el:MOAIDConstants.JDBC_DRIVER_NEEDS_WORKAROUND) {
-					if (dbDriver.startsWith(el)) {
-						requireJDBCBackupImplementation = true;
-						Logger.info("JDBC driver '" + dbDriver 
-						+ "' is blacklisted --> Switch to alternative DB access methode implementation.");
-						
-					}					
-				}						
-			}
-			
-									
-		} catch (FileNotFoundException e) {
-			throw new ConfigurationException("config.03", null, e);
+	}
+	
+
+	/**
+	 * Provides configuration information regarding the online application behind the given URL, relevant to the MOA-ID Auth component.
+	 * 
+	 * @param oaURL URL requested for an online application
+	 * @return an <code>OAAuthParameter</code>, or <code>null</code> if none is applicable
+	 */
+	@Override
+	@Transactional
+	public ISPConfiguration getServiceProviderConfiguration(String spIdentifier) throws EAAFConfigurationException {
+		Map<String, String> oa = getActiveOnlineApplication(spIdentifier);
+		if (oa == null) {			
+			return null;
+		}
+
+		return new OAAuthParameterDecorator(new SPConfigurationImpl(oa, this));
 		
-		} catch (IOException e) {
-			throw new ConfigurationException("config.03", null, e);
-			
-		} catch (org.opensaml.xml.ConfigurationException e) {
-			Logger.error("OpenSAML initilalization FAILED. ", e);
-			throw new ConfigurationException("config.23", null, e);
-			
-		} catch (Exception e) {
-			Logger.error("General error during start-up process.", e);
-			throw new ConfigurationException("init.02", null, e);
-			
-			
-		} finally {
-			if (in != null)
-				try {
-					in.close();
-					
-				} catch (IOException e) {
-					Logger.warn("Close MOA-ID-Auth configuration file FAILED.", e);
+	}
+
+	/**
+	 * Provides configuration information regarding the online application behind the given URL, relevant to the MOA-ID Auth component.
+	 * 
+	 * @param oaURL URL requested for an online application
+	 * @return an <code>OAAuthParameter</code>, or <code>null</code> if none is applicable
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	@Transactional
+	public <T> T getServiceProviderConfiguration(String spIdentifier, final Class<T> decorator) throws EAAFConfigurationException {
+		ISPConfiguration spConfig = getServiceProviderConfiguration(spIdentifier);
+		if (spConfig != null && decorator != null) {
+			if (decorator.isInstance(spConfig))
+				return (T)spConfig;
+			else
+				Logger.error("SPConfig: " + spConfig.getClass().getName() + " is NOT instance of: " + decorator.getName());
 					
-				}			
 		}
 		
+		return null;
+		
 	}
 	
 	/**
@@ -171,14 +134,6 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 		this.configuration = configuration;
 	}
 
-	/**
-	 * Get the properties.
-	 * @return the properties
-	 */
-	private Properties getProperties() {
-		return properties;
-	}
-
 	/**
 	 * Method that avoids iterating over a {@link Collection} of type {@code T} which is actual {@code null}.
 	 * @param item the collection
@@ -225,23 +180,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 			
 		}
 	}
-	
-	public String getBasicMOAIDConfiguration(final String key) {
-		return properties.getProperty(key);
-		
-	}
-	
-	public String getBasicMOAIDConfiguration(final String key, final String defaultValue) {
-		return properties.getProperty(key, defaultValue);
-		
-	}
-		
-	public Map<String, String> getBasicMOAIDConfigurationWithPrefix(final String prefix) {
-		return KeyValueUtils.getSubSetWithPrefix(KeyValueUtils.concertPropertiesToMap(properties), prefix);
 		
-	}
-	
-	
 	/* (non-Javadoc)
 	 * @see at.gv.egovernment.moa.id.config.auth.AuthConfiguration#getPropertyWithKey(java.lang.String)
 	 */
@@ -399,22 +338,6 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 		return legacy;
 	}
 
-	/**
-	 * Provides configuration information regarding the online application behind the given URL, relevant to the MOA-ID Auth component.
-	 * 
-	 * @param oaURL URL requested for an online application
-	 * @return an <code>OAAuthParameter</code>, or <code>null</code> if none is applicable
-	 */
-	@Transactional
-	public OAAuthParameter getOnlineApplicationParameter(String oaURL) {
-		Map<String, String> oa = getActiveOnlineApplication(oaURL);
-		if (oa == null) {			
-			return null;
-		}
-
-		return new OAAuthParameter(oa, this);
-	}
-
 	/**
 	 * Returns a string with a url-reference to the VerifyAuthBlock trust profile id within the moa-sp part of the authentication component.
 	 * 
@@ -505,7 +428,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 					MOAIDConfigurationConstants.GENERAL_AUTH_MOASP_URL);
 			if (moaspURL != null) {
 				result = 
-						new ConnectionParameterMOASP(moaspURL, this.getProperties(), this.getRootConfigFileDir());
+						new ConnectionParameterMOASP(moaspURL, getFullConfigurationProperties(), getRootConfigFileDir());
 				
 			}
 			
@@ -541,7 +464,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 			}
 			
 			if (MiscUtil.isNotEmpty(serviceURL))
-				return new ConnectionParameterMandate(serviceURL, this.getProperties(), this.getRootConfigFileDir());
+				return new ConnectionParameterMandate(serviceURL, getFullConfigurationProperties(), getRootConfigFileDir());
 			
 			else
 				throw new ConfigurationException("service.09", new Object[]{"NO SZR-GW Service URL"});
@@ -577,7 +500,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 			}
 			
 			if (MiscUtil.isNotEmpty(serviceURL))
-				return new ConnectionParameterMandate(serviceURL, this.getProperties(), this.getRootConfigFileDir());
+				return new ConnectionParameterMandate(serviceURL, getFullConfigurationProperties(), getRootConfigFileDir());
 			
 			else
 				throw new ConfigurationException("service.06", new Object[]{"NO MIS Service URL"});
@@ -849,8 +772,9 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 	 * @return the MOASessionEncryptionKey or {@code null}
 	 */
 	public String getMOASessionEncryptionKey() {
-		String prop = properties.getProperty("configuration.moasession.key");
+		String prop = getFullConfigurationProperties().getProperty("configuration.moasession.key");
 		return MiscUtil.isNotEmpty(prop) ? prop : null;
+		
 	}
 
 	/**
@@ -859,7 +783,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 	 * @return the MOAConfigurationEncryptionKey or {@code null}
 	 */
 	public String getMOAConfigurationEncryptionKey() {
-		String prop = properties.getProperty("configuration.moaconfig.key");
+		String prop = getFullConfigurationProperties().getProperty("configuration.moaconfig.key");
 		return MiscUtil.isNotEmpty(prop) ? prop : null;
 	}
 
@@ -867,7 +791,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 	 * @return {@code true} if IdentityLinkResigning is set, {@code false} otherwise.
 	 */
 	public boolean isIdentityLinkResigning() {
-		String prop = properties.getProperty("configuration.resignidentitylink.active", "false");
+		String prop = getFullConfigurationProperties().getProperty("configuration.resignidentitylink.active", "false");
 		return Boolean.valueOf(prop);
 	}
 
@@ -877,7 +801,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 	 * @return the IdentityLinkResigningKey or {@code null}
 	 */
 	public String getIdentityLinkResigningKey() {
-		String prop = properties.getProperty("configuration.resignidentitylink.keygroup");
+		String prop = getFullConfigurationProperties().getProperty("configuration.resignidentitylink.keygroup");
 		return MiscUtil.isNotEmpty(prop) ? prop : null;
 	}
 
@@ -885,7 +809,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 	 * @return {@code true} if MonitoringActive is set, {@code false} otherwise.
 	 */
 	public boolean isMonitoringActive() {
-		String prop = properties.getProperty("configuration.monitoring.active", "false");
+		String prop = getFullConfigurationProperties().getProperty("configuration.monitoring.active", "false");
 		return Boolean.valueOf(prop);
 	}
 
@@ -895,7 +819,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 	 * @return the MonitoringTestIdentityLinkURL or {@code null}
 	 */
 	public String getMonitoringTestIdentityLinkURL() {
-		String prop = properties.getProperty("configuration.monitoring.test.identitylink.url");
+		String prop = getFullConfigurationProperties().getProperty("configuration.monitoring.test.identitylink.url");
 		return MiscUtil.isNotEmpty(prop) ? prop : null;
 	}
 
@@ -905,7 +829,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 	 * @return the MonitoringMessageSuccess or {@code null}
 	 */
 	public String getMonitoringMessageSuccess() {
-		String prop = properties.getProperty("configuration.monitoring.message.success");
+		String prop = getFullConfigurationProperties().getProperty("configuration.monitoring.message.success");
 		return MiscUtil.isNotEmpty(prop) ? prop : null;
 	}
 
@@ -913,7 +837,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 	 * @return {@code true} if AdvancedLoggingActive is set, {@code false} otherwise.
 	 */
 	public boolean isAdvancedLoggingActive() {
-		String prop = properties.getProperty("configuration.advancedlogging.active", "false");
+		String prop = getFullConfigurationProperties().getProperty("configuration.advancedlogging.active", "false");
 		return Boolean.valueOf(prop);
 	}
 
@@ -965,7 +889,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 	 * @return {@code true} if PVP2AssertionEncryptionActive is set, {@code false} otherwise.
 	 */
 	public boolean isPVP2AssertionEncryptionActive() {
-		String prop = this.getProperties().getProperty("protocols.pvp2.assertion.encryption.active", "true");
+		String prop = getFullConfigurationProperties().getProperty("protocols.pvp2.assertion.encryption.active", "true");
 		return Boolean.valueOf(prop);
 	}
 
@@ -973,7 +897,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 	 * @return {@code true} if CertifiacteQCActive is set, {@code false} otherwise.
 	 */
 	public boolean isCertifiacteQCActive() {
-		String prop = this.getProperties().getProperty("configuration.validation.certificate.QC.ignore", "false");
+		String prop = getFullConfigurationProperties().getProperty("configuration.validation.certificate.QC.ignore", "false");
 		return !Boolean.valueOf(prop);
 	}
 
@@ -993,7 +917,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 				Logger.warn("Error in MOA-ID Configuration. No STORK configuration found.");
 				
 			} else {
-				result = new STORKConfig(this.getProperties(), this.getRootConfigFileDir());
+				result = new STORKConfig(getFullConfigurationProperties(), this.getRootConfigFileDir());
 				
 			}	
 		} catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
@@ -1055,10 +979,10 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 	private Properties getGeneralProperiesConfig(final String propPrefix) {
 
 		Properties configProp = new Properties();
-		for (Object key : this.getProperties().keySet()) {
+		for (Object key : getFullConfigurationProperties().keySet()) {
 			if (key.toString().startsWith(propPrefix)) {
 				String propertyName = key.toString().substring(propPrefix.length());
-				configProp.put(propertyName, this.getProperties().get(key.toString()));
+				configProp.put(propertyName, getFullConfigurationProperties().get(key.toString()));
 			}
 		}
 		return configProp;
@@ -1087,7 +1011,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 	@Transactional
 	public String getTrustedCACertificates() {
 		try {
-			String path = rootConfigFileDir + configuration.getStringValue(
+			String path = getRootConfigFileDir() + configuration.getStringValue(
 					MOAIDConfigurationConstants.GENERAL_AUTH_TRUSTSTORE_URL);
 			if (MiscUtil.isNotEmpty(path))
 				return path;
@@ -1098,7 +1022,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 				
 			}
 			
-		} catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
+		} catch (at.gv.egiz.components.configuration.api.ConfigurationException | ConfigurationException e) {
 			Logger.warn("Error in MOA-ID Configuration. No TrustStoreDirectory defined.", e);
 			return null;
 		}		
@@ -1116,13 +1040,9 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 		Logger.trace("Get active OnlineApplication with ID " + id + " from database.");
 		Map<String, String> oaConfig = null;
 		try {
-			
-			//TODO:
 			//Some databases do not allow the selection of a lob in SQL where expression  
-			String dbDriver = properties.getProperty("configuration.hibernate.connection.driver_class");
 			if (requireJDBCBackupImplementation)
-				oaConfig = configuration.getOnlineApplicationBackupVersion(id);
-			
+				oaConfig = configuration.getOnlineApplicationBackupVersion(id);			
 			else
 				oaConfig = configuration.getOnlineApplication(id);
 									
@@ -1149,13 +1069,13 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 
 	  //Load document service url from moa properties
 	  public String getDocumentServiceUrl() {
-		  String prop = properties.getProperty("stork.documentservice.url", "false");
+		  String prop = getFullConfigurationProperties().getProperty("stork.documentservice.url", "false");
 		  return prop;  
 	  }
 	  
 
 	  public boolean isPVPSchemaValidationActive() {
-		  String prop = properties.getProperty("protocols.pvp2.schemavalidation", "true");
+		  String prop = getFullConfigurationProperties().getProperty("protocols.pvp2.schemavalidation", "true");
 		  return Boolean.valueOf(prop);	  
 	  }
 	  
@@ -1165,7 +1085,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 	   * @return true, if fake IdLs are available for stork
 	   */
 	  public boolean isStorkFakeIdLActive() {
-		  String prop = properties.getProperty("stork.fakeIdL.active", "false");
+		  String prop = getFullConfigurationProperties().getProperty("stork.fakeIdL.active", "false");
 		  return Boolean.valueOf(prop);
 	  }
 
@@ -1175,7 +1095,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 	   * @return the countries
 	   */
 	  public List<String> getStorkFakeIdLCountries() {
-		  String prop = properties.getProperty("stork.fakeIdL.countries", "");
+		  String prop = getFullConfigurationProperties().getProperty("stork.fakeIdL.countries", "");
 		  return Arrays.asList(prop.replaceAll(" ", "").split(","));
 	  }
 
@@ -1185,7 +1105,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 	   * @return the resigning key
 	   */
 	  public String getStorkFakeIdLResigningKey() {
-		  String prop = properties.getProperty("stork.fakeIdL.keygroup");
+		  String prop = getFullConfigurationProperties().getProperty("stork.fakeIdL.keygroup");
 		  if (MiscUtil.isNotEmpty(prop))
 			  return prop;
 		  else
@@ -1198,7 +1118,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 	 */
 	@Override
 	public List<String> getStorkNoSignatureCountries() {
-		  String prop = properties.getProperty("stork.fakeIdL.noSignatureCountries", "");
+		  String prop = getFullConfigurationProperties().getProperty("stork.fakeIdL.noSignatureCountries", "");
 		  return Arrays.asList(prop.replaceAll(" ", "").split(","));
 	}
 
@@ -1208,7 +1128,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 	@Override
 	@Deprecated
 	public boolean isHTTPAuthAllowed() {
-		  String prop = properties.getProperty("configuration.localhttpallowed.active", "false");
+		  String prop = getFullConfigurationProperties().getProperty("configuration.localhttpallowed.active", "false");
 		  return Boolean.valueOf(prop);
 	}
 
@@ -1220,7 +1140,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 		final String[] DEFAULTORDER = new String[] {RevocationSourceTypes.OCSP, RevocationSourceTypes.CRL};
 		List<String> result = new ArrayList<String>();
 		
-		String prop = properties.getProperty("configuration.ssl.validation.revocation.method.order");
+		String prop = getFullConfigurationProperties().getProperty("configuration.ssl.validation.revocation.method.order");
 		if (MiscUtil.isNotEmpty(prop)) {
 			String[] configOrder = prop.split(",");
 			for (String el : configOrder) {
@@ -1301,19 +1221,35 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
 		}
 		
 		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see at.gv.egovernment.moa.id.commons.api.AuthConfiguration#getBasicMOAIDConfigurationBoolean(java.lang.String, boolean)
-	 */
-	@Override
-	public boolean getBasicMOAIDConfigurationBoolean(String key, boolean defaultValue) {
-		String value = properties.getProperty(key);
 		
-		if (MiscUtil.isNotEmpty(value))
-			return Boolean.valueOf(value.trim());
+	}
+	
+	private void initialize() throws ConfigurationException {		 
+		try {
+			initial(getFullConfigurationProperties());
+			String dbDriver = getFullConfigurationProperties().getProperty("configuration.hibernate.connection.driver_class");					
+			if (MiscUtil.isNotEmpty(dbDriver)) {
+				for (String el:MOAIDConstants.JDBC_DRIVER_NEEDS_WORKAROUND) {
+					if (dbDriver.startsWith(el)) {
+						requireJDBCBackupImplementation = true;
+						Logger.info("JDBC driver '" + dbDriver 
+						+ "' is blacklisted --> Switch to alternative DB access methode implementation.");
+						
+					}					
+				}						
+			}
+			
+									
+		} catch (org.opensaml.xml.ConfigurationException e) {
+			Logger.error("OpenSAML initilalization FAILED. ", e);
+			throw new ConfigurationException("config.23", null, e);
+			
+		} catch (Exception e) {
+			Logger.error("General error during start-up process.", e);
+			throw new ConfigurationException("init.02", null, e);
 						
-		return defaultValue;
+		} 
+		
 	}
 
 }
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/data/DynamicOAAuthParameters.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/data/DynamicOAAuthParameters.java
index f3db82315..f401db8bf 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/data/DynamicOAAuthParameters.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/data/DynamicOAAuthParameters.java
@@ -59,7 +59,7 @@ public class DynamicOAAuthParameters implements IOAAuthParameters, Serializable{
 	 * @see at.gv.egovernment.moa.id.commons.api.IOAAuthParameters#hasBaseIdInternalProcessingRestriction()
 	 */
 	@Override
-	public boolean hasBaseIdInternalProcessingRestriction() throws ConfigurationException {
+	public boolean hasBaseIdInternalProcessingRestriction() {
 		return this.hasBaseIdProcessingRestriction;
 	}
 
@@ -67,7 +67,7 @@ public class DynamicOAAuthParameters implements IOAAuthParameters, Serializable{
 	 * @see at.gv.egovernment.moa.id.commons.api.IOAAuthParameters#hasBaseIdTransferRestriction()
 	 */
 	@Override
-	public boolean hasBaseIdTransferRestriction() throws ConfigurationException {
+	public boolean hasBaseIdTransferRestriction() {
 		return this.hasBaseIdTransfergRestriction;
 	}
 	
@@ -531,5 +531,29 @@ public class DynamicOAAuthParameters implements IOAAuthParameters, Serializable{
 		return false;
 	}
 
+	@Override
+	public boolean containsConfigurationKey(String arg0) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public List<String> getTargetsWithNoBaseIdInternalProcessingRestriction() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public List<String> getTargetsWithNoBaseIdTransferRestriction() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String getUniqueIdentifier() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
 	
 }
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationData.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationData.java
index 7f56f519b..14d78c88e 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationData.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationData.java
@@ -1,4 +1,4 @@
-/*
+/**
  * Copyright 2014 Federal Chancellery Austria
  * MOA-ID has been developed in a cooperation between BRZ, the Federal
  * Chancellery Austria - ICT staff unit, and Graz University of Technology.
@@ -34,6 +34,7 @@ import java.util.Map;
 import org.apache.commons.collections4.map.HashedMap;
 import org.w3c.dom.Element;
 
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
 import at.gv.egovernment.moa.id.commons.api.data.IIdentityLink;
 import at.gv.egovernment.moa.id.commons.api.data.IMISMandate;
 import at.gv.egovernment.moa.id.commons.api.exceptions.SessionDataStorageException;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/ExceptionContainer.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/ExceptionContainer.java
deleted file mode 100644
index 4820b6fdc..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/ExceptionContainer.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.data;
-
-import java.io.Serializable;
-
-import at.gv.egovernment.moa.id.commons.api.IRequest;
-
-/**
- * @author tlenz
- *
- */
-public class ExceptionContainer implements Serializable {
-
-	private static final long serialVersionUID = 5355860753609684995L;
-	private Throwable exceptionThrown = null;
-	private String uniqueSessionID = null;
-	private String uniqueTransactionID = null;
-	private String uniqueServiceProviderId = null;
-	
-	/**
-	 * 
-	 */
-	public ExceptionContainer(IRequest pendingReq, Throwable exception) {
-		if (pendingReq != null) {
-			this.uniqueSessionID = pendingReq.getUniqueSessionIdentifier();
-			this.uniqueTransactionID = pendingReq.getUniqueTransactionIdentifier();
-		
-			if (pendingReq.getOnlineApplicationConfiguration() != null)
-				this.uniqueServiceProviderId = pendingReq.getOnlineApplicationConfiguration().getPublicURLPrefix();
-			
-		}
-		
-		this.exceptionThrown = exception;		
-	}
-	
-	/**
-	 * @return the exceptionThrown
-	 */
-	public Throwable getExceptionThrown() {
-		return exceptionThrown;
-	}
-	/**
-	 * @return the uniqueSessionID
-	 */
-	public String getUniqueSessionID() {
-		return uniqueSessionID;
-	}
-	/**
-	 * @return the uniqueTransactionID
-	 */
-	public String getUniqueTransactionID() {
-		return uniqueTransactionID;
-	}
-
-	/**
-	 * @return the uniqueServiceProviderId
-	 */
-	public String getUniqueServiceProviderId() {
-		return uniqueServiceProviderId;
-	}
-	
-	
-	
-	
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/IAuthData.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/IAuthData.java
deleted file mode 100644
index cb3def678..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/IAuthData.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.data;
-
-import java.util.Date;
-import java.util.List;
-
-import org.w3c.dom.Element;
-
-import at.gv.egovernment.moa.id.commons.api.data.IIdentityLink;
-import at.gv.egovernment.moa.id.commons.api.data.IMISMandate;
-
-/**
- * @author tlenz
- *
- */
-public interface IAuthData {
-
-	 Date getIssueInstant();
-	 String getIssuer();
-	 boolean isBaseIDTransferRestrication();
-	 
-	 boolean isSsoSession();
-	 //boolean isInterfederatedSSOSession();
-	 boolean isUseMandate();
-	 
-	 String getFamilyName();
-	 String getGivenName();
-	 Date getDateOfBirth();
-	 String getFormatedDateOfBirth();
-
-	 String getBPK();
-	 String getBPKType();
-	 
-	 Date getSsoSessionValidTo();
-	 
-	 //String getInterfederatedIDP();
-	 
-	 String getIdentificationValue();
-	 String getIdentificationType();
-	 
-	 String getBkuURL();
-
-	 List<String> getEncbPKList();
-	 
-	 IIdentityLink getIdentityLink();
-	 byte[] getSignerCertificate();
-	 String getAuthBlock();
-
-	 //ISA 1.18 attributes
-	 String getPvpAttribute_OU();
-	 List<AuthenticationRole> getAuthenticationRoles();
-	 
-	 boolean isPublicAuthority();
-	 String getPublicAuthorityCode();
-	 boolean isQualifiedCertificate();
-
-	 IMISMandate getMISMandate();
-	 Element getMandate();
-	 String getMandateReferenceValue();
-
-	 @Deprecated
-	 /**
-	  * Return STORK QAA level
-	  * 
-	  * @return
-	  */
-	 String getQAALevel();
-	 
-	 /**
-	  * Return authentication QAA level from eIDAS
-	  * 
-	  * @return
-	  */
-	 public String getEIDASQAALevel();
-	 
-	 String getSessionIndex();
-	 String getNameID(); 
-	 String getNameIDFormat();
-	 
-	 boolean isForeigner();
-	 String getCcc();
-	 
-	 public <T> T getGenericData(String key, final Class<T> clazz);
-
-	 	 
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/SLOInformationImpl.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/SLOInformationImpl.java
index 2d84bf472..1d1e2f36a 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/SLOInformationImpl.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/SLOInformationImpl.java
@@ -26,6 +26,7 @@ import java.io.Serializable;
 
 import org.opensaml.saml2.metadata.SingleLogoutService;
 
+
 /**
  * @author tlenz
  *
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/IAction.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/IAction.java
deleted file mode 100644
index ae2771427..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/IAction.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.moduls;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import at.gv.egovernment.moa.id.commons.api.IRequest;
-import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.data.SLOInformationInterface;
-
-public interface IAction {
-	public SLOInformationInterface processRequest(IRequest req, HttpServletRequest httpReq, HttpServletResponse httpResp, IAuthData authData) 
-			throws MOAIDException;
-	public boolean needAuthentication(IRequest req, HttpServletRequest httpReq, HttpServletResponse httpResp);
-	
-	public String getDefaultActionName();
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/IModulInfo.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/IModulInfo.java
deleted file mode 100644
index b9b161bb6..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/IModulInfo.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.moduls;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import at.gv.egovernment.moa.id.commons.api.IRequest;
-
-
-public interface IModulInfo {
-	//public List<ServletInfo> getServlets();
-	public String getName();
-	public String getPath();
-		
-	public boolean generateErrorMessage(Throwable e,
-			HttpServletRequest request, HttpServletResponse response,
-			IRequest protocolRequest) throws Throwable;
-	
-	public boolean validate(HttpServletRequest request, 
-			HttpServletResponse response, IRequest pending);
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/IRequestStorage.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/IRequestStorage.java
deleted file mode 100644
index 987d92e16..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/IRequestStorage.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.moduls;
-
-import at.gv.egovernment.moa.id.commons.api.IRequest;
-import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
-import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;
-
-/**
- * @author tlenz
- *
- */
-public interface IRequestStorage {
-
-	public IRequest getPendingRequest(String pendingReqID);
-	
-	public void storePendingRequest(IRequest pendingRequest) throws MOAIDException;
-	
-	public void removePendingRequest(String requestID);
-	
-	public String changePendingRequestID(IRequest pendingRequest) throws MOAIDException, MOADatabaseException;
-	
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/NoPassivAuthenticationException.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/NoPassivAuthenticationException.java
deleted file mode 100644
index f1db466e9..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/NoPassivAuthenticationException.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.moduls;
-
-import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
-
-public class NoPassivAuthenticationException extends MOAIDException {
-
-	public NoPassivAuthenticationException() {
-		super("auth.18", null);
-	}
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 596920452166197688L;
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/RequestImpl.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/RequestImpl.java
deleted file mode 100644
index b87574d52..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/RequestImpl.java
+++ /dev/null
@@ -1,454 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.moduls;
-
-import java.io.Serializable;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Collection;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.opensaml.saml2.metadata.provider.MetadataProvider;
-
-import at.gv.egovernment.moa.id.advancedlogging.TransactionIDUtils;
-import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;
-import at.gv.egovernment.moa.id.auth.data.AuthenticationSessionWrapper;
-import at.gv.egovernment.moa.id.commons.MOAIDConstants;
-import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
-import at.gv.egovernment.moa.id.commons.api.data.AuthProzessDataConstants;
-import at.gv.egovernment.moa.id.commons.api.data.IAuthenticationSession;
-import at.gv.egovernment.moa.id.commons.api.exceptions.ConfigurationException;
-import at.gv.egovernment.moa.id.commons.api.exceptions.SessionDataStorageException;
-import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProviderFactory;
-import at.gv.egovernment.moa.id.util.HTTPUtils;
-import at.gv.egovernment.moa.id.util.Random;
-import at.gv.egovernment.moa.logging.Logger;
-import at.gv.egovernment.moa.util.MiscUtil;
-
-public abstract class RequestImpl implements IRequest, Serializable{
-		
-	public static final String DATAID_INTERFEDERATIOIDP_URL = "interIDPURL";
-	public static final String DATAID_INTERFEDERATIOIDP_RESPONSE = "interIDPResponse";
-	public static final String DATAID_REQUESTED_ATTRIBUTES = "requestedAttributes";
-	public static final String DATAID_INTERFEDERATIOIDP_ENTITYID = "interIDPEntityID";
-	
-	public static final String DATAID_REQUESTER_IP_ADDRESS = "requesterIP";
-	
-//	public static final String eIDAS_GENERIC_REQ_DATA_COUNTRY = "country";
-	public static final String eIDAS_GENERIC_REQ_DATA_LEVELOFASSURENCE = "eIDAS_LoA";
-	
-	
-	
-	private static final long serialVersionUID = 1L;
-
-	private String module = null;
-	private String action = null;
-	
-	private String requestID;
-	private String processInstanceId;
-	private String ssoMoaSessionId;
-	
-	private String uniqueTransactionIdentifer;
-	private String uniqueSessionIdentifer;
-	
-	private String oaURL;
-	private String authURL = null;
-
-	private IOAAuthParameters OAConfiguration = null;
-	
-	private boolean passiv = false;
-	private boolean force = false;
-	private boolean needSSO = false;
-	private boolean isAbortedByUser = false;
-	
-	//every request needs authentication by default
-	private boolean needAuthentication = true;
-	
-	//every request is not authenticated by default
-	private boolean isAuthenticated = false;
-		
-	private Map<String, Object> genericDataStorage = new HashMap<String, Object>();
-	
-	private IAuthenticationSession moaSSOSessionContainer = null;
-	
-	 	
-	/**
-	 * @throws ConfigurationException 
-	 * 
-	 */
-	public final void initialize(HttpServletRequest req) throws ConfigurationException {				
-		//set requestID
-		requestID = Random.nextLongRandom();
-				
-		//set unique transaction identifier for logging
-		uniqueTransactionIdentifer = Random.nextLongRandom();		
-		TransactionIDUtils.setTransactionId(uniqueTransactionIdentifer);
-		
-		//initialize session object
-		genericDataStorage.put(AuthProzessDataConstants.VALUE_CREATED, new Date());
-		genericDataStorage.put(AuthProzessDataConstants.VALUE_SESSIONID, Random.nextLongRandom());
-		
-		//check if End-Point is valid		
-		String authURLString = HTTPUtils.extractAuthURLFromRequest(req);
-		URL authURL;
-		try {
-			authURL = new URL(authURLString);
-			
-		} catch (MalformedURLException e) {
-			Logger.error("IDP AuthenticationServiceURL Prefix is not a valid URL." + authURLString, e);
-			throw new ConfigurationException("1299", null, e);
-			
-		}
-		
-		AuthConfiguration config = AuthConfigurationProviderFactory.getInstance();		
-		List<String> configuredPublicURLPrefix = config.getPublicURLPrefix();
-				
-		if (!config.isVirtualIDPsEnabled()) {
-			Logger.trace("Virtual IDPs are disabled. Use default IDP PublicURLPrefix from configuration: " + configuredPublicURLPrefix.get(0));
-			this.authURL = configuredPublicURLPrefix.get(0); 
-			
-		} else {
-			Logger.debug("Extract AuthenticationServiceURL: " + authURLString);
-			URL resultURL = null;
-			
-			for (String el : configuredPublicURLPrefix) {
-				try {
-					URL configuredURL = new URL(el);
-
-					//get Ports from URL
-					int configPort = configuredURL.getPort();					
-					if (configPort == -1)
-						configPort = configuredURL.getDefaultPort();
-					
-					int authURLPort = authURL.getPort();
-					if (authURLPort == -1)
-						authURLPort = authURL.getDefaultPort();
-					
-					//check AuthURL against ConfigurationURL
-					if (configuredURL.getHost().equals(authURL.getHost()) &&
-							configPort == authURLPort &&
-							configuredURL.getPath().equals(authURL.getPath())) {
-						Logger.debug("Select configurated PublicURLPrefix: " + configuredURL 
-								+ " for authURL: " + authURLString);
-						resultURL = configuredURL;
-					}
-					
-				} catch (MalformedURLException e) {
-					Logger.error("Configurated IDP PublicURLPrefix is not a valid URL." + el);
-					
-				}				
-			}
-			
-			if (resultURL == null) {
-				Logger.warn("Extract AuthenticationServiceURL: " + authURL + " is NOT found in configuration.");
-				throw new ConfigurationException("config.25", new Object[]{authURLString});
-				
-			} else {
-				this.authURL = resultURL.toExternalForm();
-				
-			}					
-		}
-				
-		//set unique session identifier
-		String uniqueID = (String) req.getAttribute(MOAIDConstants.UNIQUESESSIONIDENTIFIER);
-		if (MiscUtil.isNotEmpty(uniqueID))
-			uniqueSessionIdentifer = uniqueID;
-		
-		else
-			Logger.warn("No unique session-identifier FOUND, but it should be allready set into request!?!");
-		
-		//set requester's IP address
-		try {
-			setGenericDataToSession(DATAID_REQUESTER_IP_ADDRESS, req.getRemoteAddr());
-			
-		} catch (SessionDataStorageException e) {
-			Logger.warn("Can not store remote IP address to 'pendingRequest' during an exception." , e);
-			
-		}
-		
-	}
-	
-	/**
-	 * This method map the protocol specific requested attributes to PVP 2.1 attributes.
-	 * 
-	 * @return List of PVP 2.1 attribute names with maps all protocol specific attributes
-	 */
-	public abstract Collection<String> getRequestedAttributes(MetadataProvider metadataProvider);
-	
-	public void setOAURL(String value) {
-		oaURL = value;
-	}
-	
-	public String getOAURL() {
-		return oaURL;
-	}
-
-	public boolean isPassiv() {
-		return passiv;
-	}
-
-	public boolean forceAuth() {
-		return force;
-	}
-
-	public void setPassiv(boolean passiv) {
-		this.passiv = passiv;
-	}
-
-	public void setForce(boolean force) {
-		this.force = force;
-	}
-
-	public String requestedAction() {
-		return action;
-	}
-
-	public void setAction(String action) {
-		this.action = action;
-	}
-	
-	/**
-	 * @return the module
-	 */
-	public String requestedModule() {
-		return module;
-	}
-
-	/**
-	 * @param module the module to set
-	 */
-	public void setModule(String module) {
-		this.module = module;
-	}
-
-	public void setRequestID(String id) {
-		this.requestID = id;
-		
-	}
-
-	public String getRequestID() {
-		return requestID;
-	}
-	
-	public String getInternalSSOSessionIdentifier() {
-		return this.ssoMoaSessionId;
-	}
-	
-	/**
-	 * Set the internal SSO session identifier, which associated with this pending request
-	 * 
-	 * @param internalSSOSessionId 
-	 */
-	public void setInternalSSOSessionIdentifier(String internalSSOSessionId) {
-		this.ssoMoaSessionId = internalSSOSessionId;
-		
-	}
-	
-	public IAuthenticationSession getMOASession() {
-		//if SSO session information are set, use this
-		if (moaSSOSessionContainer != null)
-			return moaSSOSessionContainer;
-		
-		else
-			return new AuthenticationSessionWrapper(genericDataStorage);
-				
-	}
-	
-	public void populateMOASessionWithSSOInformation(IAuthenticationSession ssoSession) {
-		if (ssoSession instanceof AuthenticationSession) {
-			moaSSOSessionContainer = ssoSession;
-						
-		} else 
-			throw new IllegalStateException("Session information can only be populated with SSO information from database");
-		
-		
-	}
-	
-	
-	public IOAAuthParameters getOnlineApplicationConfiguration() {
-		return this.OAConfiguration;
-	
-	}
-	
-	public void setOnlineApplicationConfiguration(IOAAuthParameters oaConfig) {
-		this.OAConfiguration = oaConfig;
-		
-	}
-
-	public String getUniqueTransactionIdentifier() {
-		return this.uniqueTransactionIdentifer;
-		
-	}
-	
-	public String getUniqueSessionIdentifier() {
-		return this.uniqueSessionIdentifer;
-		
-	}
-	
-	public String getProcessInstanceId() {
-		return this.processInstanceId;
-		
-	}
-	
-	public void setUniqueTransactionIdentifier(String id) {
-		this.uniqueTransactionIdentifer = id;
-		
-	}
-	
-	public void setUniqueSessionIdentifier(String id) {
-		this.uniqueSessionIdentifer = id;
-		
-	}
-	
-	public void setProcessInstanceId(String id) {
-		this.processInstanceId = id;
-		
-	}
-	
-	/**
-	 * @return the authURL
-	 */
-	public String getAuthURL() {
-		return authURL;
-	}
-	
-	public String getAuthURLWithOutSlash() {
-		if (authURL.endsWith("/"))
-			return authURL.substring(0, authURL.length()-1);
-		else
-			return authURL;
-		
-	}
-
-	/**
-	 * @return the needAuthentication
-	 */
-	public boolean isNeedAuthentication() {
-		return needAuthentication;
-	}
-
-	/**
-	 * @param needAuthentication the needAuthentication to set
-	 */
-	public void setNeedAuthentication(boolean needAuthentication) {
-		this.needAuthentication = needAuthentication;
-	}
-
-	/**
-	 * @return the isAuthenticated
-	 */
-	public boolean isAuthenticated() {
-		return isAuthenticated;
-	}
-
-	/**
-	 * @param isAuthenticated the isAuthenticated to set
-	 */
-	public void setAuthenticated(boolean isAuthenticated) {
-		this.isAuthenticated = isAuthenticated;
-	}
-
-	public boolean needSingleSignOnFunctionality() {
-		return needSSO;
-	}
-	public void setNeedSingleSignOnFunctionality(boolean needSSO) {
-		this.needSSO = needSSO;
-		
-	}
-	
-	public boolean isAbortedByUser() {
-		return this.isAbortedByUser;
-	}
-
-	public void setAbortedByUser(boolean isAborted) {
-		this.isAbortedByUser = isAborted;
-		
-	}
-	
-	public Object getGenericData(String key) {
-		if (MiscUtil.isNotEmpty(key)) {
-			return genericDataStorage.get(key);
-			
-		} 
-		
-		Logger.warn("Can not load generic request-data with key='null'");
-		return null;		
-	}
-	
-	public <T> T getGenericData(String key, final Class<T> clazz) {
-		if (MiscUtil.isNotEmpty(key)) {
-			Object data =  genericDataStorage.get(key);
-			
-			if (data == null)
-				return null;
-			
-			try {
-				@SuppressWarnings("unchecked")
-				T test = (T) data;
-				return test;
-				
-			} catch (Exception e) {
-				Logger.warn("Generic request-data object can not be casted to requested type", e);
-				return null;
-				
-			}
-			
-		} 
-		
-		Logger.warn("Can not load generic request-data with key='null'");
-		return null;
-		
-	}
-	
-	public void setGenericDataToSession(String key, Object object) throws SessionDataStorageException {
-		if (MiscUtil.isEmpty(key)) {
-			Logger.warn("Generic request-data can not be stored with a 'null' key");
-			throw new SessionDataStorageException("Generic request-data can not be stored with a 'null' key", null);
-			
-		}
-		
-		if (object != null) {
-			if (!Serializable.class.isInstance(object)) {
-				Logger.warn("Generic request-data can only store objects which implements the 'Seralizable' interface");
-				throw new SessionDataStorageException("Generic request-data can only store objects which implements the 'Seralizable' interface", null);
-				
-			}						
-		}
-		
-		if (genericDataStorage.containsKey(key))
-			Logger.debug("Overwrite generic request-data with key:" + key);
-		else
-			Logger.trace("Add generic request-data with key:" + key + " to session.");
-		
-		genericDataStorage.put(key, object);
-		
-	}
-		
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/RequestStorage.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/RequestStorage.java
deleted file mode 100644
index 90ccb3c27..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/RequestStorage.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.moduls;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import at.gv.egovernment.moa.id.advancedlogging.TransactionIDUtils;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
-import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
-import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;
-import at.gv.egovernment.moa.id.process.dao.ProcessInstanceStoreDAO;
-import at.gv.egovernment.moa.id.storage.ITransactionStorage;
-import at.gv.egovernment.moa.id.util.Random;
-import at.gv.egovernment.moa.logging.Logger;
-
-@Service("RequestStorage")
-public class RequestStorage implements IRequestStorage{
-
-	@Autowired ITransactionStorage transactionStorage;
-	@Autowired ProcessInstanceStoreDAO processInstanceStore;
-	
-	@Override
-	public IRequest getPendingRequest(String pendingReqID) {
-		
-		try {
-			IRequest pendingRequest = transactionStorage.get(pendingReqID, IRequest.class);
-			if (pendingRequest == null) {
-				Logger.info("No PendingRequst found with pendingRequestID " + pendingReqID);			
-				return null;
-				
-			}
-					
-			//set transactionID and sessionID to Logger
-			TransactionIDUtils.setAllLoggingVariables(pendingRequest);
-						
-			return pendingRequest;
-		
-		} catch (MOADatabaseException | NullPointerException e) {
-			Logger.info("No PendingRequst found with pendingRequestID " + pendingReqID);			
-			return null;
-			
-		}
-	}
-
-	@Override
-	public void storePendingRequest(IRequest pendingRequest) throws MOAIDException {
-		try {			
-			if (pendingRequest instanceof IRequest) {
-				transactionStorage.put(((IRequest)pendingRequest).getRequestID(), pendingRequest, -1);
-												
-			} else {
-				throw new MOAIDException("auth.20", null);
-				
-			}
-			
-		} catch (MOADatabaseException e) {
-			Logger.warn("Pending Request with ID=" + ((IRequest)pendingRequest).getRequestID() +
-					" can not stored.", e);
-			throw new MOAIDException("auth.20", null);
-		}
-		
-	}
-	
-	@Override
-	public void removePendingRequest(String requestID) {
-		
-		if (requestID != null) {
-			
-			//remove process-management execution instance
-			try {
-				IRequest pendingReq = getPendingRequest(requestID);
-						
-				if (pendingReq != null && 
-						pendingReq.getProcessInstanceId() != null) {
-					processInstanceStore.remove(pendingReq.getProcessInstanceId());
-					
-				}
-
-			} catch (MOADatabaseException e) {
-				Logger.warn("Removing process associated with pending-request:" + requestID + " FAILED.", e);
-				
-			}
-				
-			transactionStorage.remove(requestID);
-			
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see at.gv.egovernment.moa.id.storage.IRequestStorage#changePendingRequestID(at.gv.egovernment.moa.id.moduls.IRequest)
-	 */
-	@Override
-	public String changePendingRequestID(IRequest pendingRequest) throws MOAIDException, MOADatabaseException {
-
-		if (pendingRequest instanceof RequestImpl) {
-			String newRequestID = Random.nextRandom();
-			String oldRequestID = pendingRequest.getRequestID();
-			
-			Logger.debug("Change pendingRequestID from " + pendingRequest.getRequestID() 
-				+ " to " + newRequestID);
-			
-			((RequestImpl)pendingRequest).setRequestID(newRequestID);			
-			transactionStorage.changeKey(oldRequestID, newRequestID, pendingRequest);
-			//only delete oldRequestID, no change.
-			
-			return newRequestID;
-						
-		} else {
-			Logger.error("PendingRequest object is not of type 'RequestImpl.class'");
-			throw new MOAIDException("internal.00", null);
-		}
-		
-	}
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/SSOManager.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/SSOManager.java
index 557d9af48..b36b5af30 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/SSOManager.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/SSOManager.java
@@ -31,11 +31,13 @@ import javax.servlet.http.HttpServletResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import at.gv.egiz.eaaf.core.api.IRequest;
+import at.gv.egiz.eaaf.core.impl.idp.controller.protocols.RequestImpl;
+import at.gv.egiz.eaaf.core.impl.utils.Random;
 import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;
 import at.gv.egovernment.moa.id.auth.data.AuthenticationSessionExtensions;
 import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants;
 import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
 import at.gv.egovernment.moa.id.commons.api.exceptions.ConfigurationException;
 import at.gv.egovernment.moa.id.commons.api.exceptions.SessionDataStorageException;
 import at.gv.egovernment.moa.id.commons.db.dao.session.AuthenticatedSessionStore;
@@ -43,7 +45,6 @@ import at.gv.egovernment.moa.id.commons.db.dao.session.InterfederationSessionSto
 import at.gv.egovernment.moa.id.commons.db.dao.session.OldSSOSessionIDStore;
 import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;
 import at.gv.egovernment.moa.id.storage.IAuthenticationSessionStoreage;
-import at.gv.egovernment.moa.id.util.Random;
 import at.gv.egovernment.moa.logging.Logger;
 import at.gv.egovernment.moa.util.MiscUtil;
 
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/opemsaml/MOAIDHTTPPostEncoder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/opemsaml/MOAIDHTTPPostEncoder.java
index b05e60e94..dbfeb5e90 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/opemsaml/MOAIDHTTPPostEncoder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/opemsaml/MOAIDHTTPPostEncoder.java
@@ -37,8 +37,8 @@ import org.opensaml.ws.message.encoder.MessageEncodingException;
 import org.opensaml.ws.transport.http.HTTPOutTransport;
 import org.opensaml.ws.transport.http.HTTPTransportUtils;
 
+import at.gv.egiz.eaaf.core.api.gui.IGUIBuilderConfiguration;
 import at.gv.egovernment.moa.id.auth.frontend.builder.GUIFormBuilderImpl;
-import at.gv.egovernment.moa.id.auth.frontend.builder.IGUIBuilderConfiguration;
 import at.gv.egovernment.moa.logging.Logger;
 
 /**
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ExecutionContextImpl.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ExecutionContextImpl.java
deleted file mode 100644
index 080990f71..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ExecutionContextImpl.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package at.gv.egovernment.moa.id.process;
-
-import java.io.Serializable;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import at.gv.egovernment.moa.id.process.api.ExecutionContext;
-
-/**
- * ExecutionContext implementation, related to a certain process instance.
- * 
- * @author tknall
- * 
- */
-public class ExecutionContextImpl implements ExecutionContext {
-
-	private static final long serialVersionUID = 1L;
-
-	private Map<String, Serializable> ctxData = Collections.synchronizedMap(new HashMap<String, Serializable>());
-
-	private String processInstanceId;
-
-	/**
-	 * Creates a new instance.
-	 */
-	public ExecutionContextImpl() {
-	}
-
-	/**
-	 * Creates a new instance and associated it with a certain process instance.
-	 */
-	public ExecutionContextImpl(String processInstanceId) {
-		this.processInstanceId = processInstanceId;
-	}
-
-	@Override
-	public void setProcessInstanceId(String processInstanceId) {
-		this.processInstanceId = processInstanceId;
-	}
-
-	@Override
-	public String getProcessInstanceId() {
-		return processInstanceId;
-	}
-
-	@Override
-	public Serializable get(String key) {
-		return ctxData.get(key);
-	}
-
-	@Override
-	public Serializable remove(String key) {
-		return ctxData.remove(key);
-	}
-
-	@Override
-	public void put(String key, Serializable object) {
-		ctxData.put(key, object);
-	}
-
-	@Override
-	public Set<String> keySet() {
-		return Collections.unmodifiableSet(ctxData.keySet());
-	}
-
-	@Override
-	public String toString() {
-		StringBuilder builder = new StringBuilder();
-		builder.append("ExecutionContextImpl [");
-		builder.append("id=").append(processInstanceId);
-		builder.append(", variables=");
-		builder.append(ctxData.keySet());
-		builder.append("]");
-		return builder.toString();
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ExpressionEvaluationContextImpl.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ExpressionEvaluationContextImpl.java
deleted file mode 100644
index f0d1c861d..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ExpressionEvaluationContextImpl.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package at.gv.egovernment.moa.id.process;
-
-import java.io.Serializable;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import at.gv.egovernment.moa.id.process.api.ExecutionContext;
-import at.gv.egovernment.moa.id.process.api.ExpressionEvaluationContext;
-
-/**
- * Context implementation used for expression evaluation only.
- * 
- * @author tknall
- * 
- */
-public class ExpressionEvaluationContextImpl implements ExpressionEvaluationContext {
-
-	private static final long serialVersionUID = 1L;
-
-	private Map<String, Serializable> ctxData;
-
-	/**
-	 * Creates a new instance and initializes it with data from a given process instance.
-	 * 
-	 * @param processInstance
-	 *            The process instance.
-	 */
-	ExpressionEvaluationContextImpl(ProcessInstance processInstance) {
-		ExecutionContext executionContext = processInstance.getExecutionContext();
-		Set<String> keys = executionContext.keySet();
-		ctxData = Collections.synchronizedMap(new HashMap<String, Serializable>(keys.size()));
-		for (String key : keys) {
-			ctxData.put(key, executionContext.get(key));
-		}
-	}
-
-	@Override
-	public Map<String, Serializable> getCtx() {
-		return Collections.unmodifiableMap(ctxData);
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessDefinitionParser.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessDefinitionParser.java
deleted file mode 100644
index 162ee624a..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessDefinitionParser.java
+++ /dev/null
@@ -1,224 +0,0 @@
-package at.gv.egovernment.moa.id.process;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Objects;
-
-import javax.xml.XMLConstants;
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLEventReader;
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamConstants;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.events.Attribute;
-import javax.xml.stream.events.StartElement;
-import javax.xml.stream.events.XMLEvent;
-import javax.xml.stream.util.EventReaderDelegate;
-import javax.xml.transform.stax.StAXSource;
-import javax.xml.transform.stream.StreamSource;
-import javax.xml.validation.Schema;
-import javax.xml.validation.SchemaFactory;
-import javax.xml.validation.Validator;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.xml.sax.SAXException;
-
-import at.gv.egovernment.moa.id.process.model.EndEvent;
-import at.gv.egovernment.moa.id.process.model.ProcessDefinition;
-import at.gv.egovernment.moa.id.process.model.ProcessNode;
-import at.gv.egovernment.moa.id.process.model.StartEvent;
-import at.gv.egovernment.moa.id.process.model.TaskInfo;
-import at.gv.egovernment.moa.id.process.model.Transition;
-
-/**
- * Parses an XML representation of a process definition as defined by the respective XML schema.
- * <p/
- * The parser is thread-safe.
- * @author tknall
- *
- */
-public class ProcessDefinitionParser {
-	
-	private static final String NS = "http://reference.e-government.gv.at/namespace/moa/process/definition/v1";
-	
-	private static Logger log = LoggerFactory.getLogger(ProcessDefinitionParser.class);
-
-	private static class LazyProcessDefinitionSchemaHolder {
-		private static final Schema PD_SCHEMA_INSTANCE;
-		static {
-			try (InputStream in = ProcessDefinitionParser.class.getResourceAsStream("ProcessDefinition.xsd")) {
-				log.trace("Compiling process definition schema.");
-				SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
-				// schema is thread-safe
-				PD_SCHEMA_INSTANCE = factory.newSchema(new StreamSource(in));
-			} catch (Exception e) {
-				throw new RuntimeException("Unable to compile process definition schema.", e);
-			}
-		}
-	}
-
-	/**
-	 * Parses an XML representation of a process definition. The representation is being validated in order to suffice
-	 * the related XML schema.
-	 * 
-	 * @param processDefinitionInputStream
-	 *            The process definition.
-	 * @return A new process definition.
-	 * @throws ProcessDefinitionParserException
-	 *             Thrown in case of error parsing the process definition.
-	 */
-	public ProcessDefinition parse(InputStream processDefinitionInputStream) throws ProcessDefinitionParserException {
-		XMLEventReader reader = null;
-		final ProcessDefinition pd = new ProcessDefinition();
-		log.debug("Parsing and validating process definition.");
-		try {
-
-			// Standard implementation of XMLInputFactory seems not to be thread-safe
-			XMLInputFactory inputFactory = XMLInputFactory.newInstance();
-			reader = inputFactory.createXMLEventReader(processDefinitionInputStream);
-
-			final List<StartElement> transitionElements = new ArrayList<>();
-			final List<StartEvent> startEvents = new ArrayList<>();
-			
-			reader = new EventReaderDelegate(reader) {
-
-				@Override
-				public XMLEvent nextEvent() throws XMLStreamException {
-					XMLEvent event = super.nextEvent();
-
-					switch (event.getEventType()) {
-					case XMLStreamConstants.START_ELEMENT:
-						StartElement element = event.asStartElement();
-						QName qname = element.getName();
-						
-						if (NS.equals(qname.getNamespaceURI())) {
-							log.trace("Found process description element '{}'.", qname.getLocalPart());
-							Attribute id = element.getAttributeByName(new QName("id"));
-							
-							switch (qname.getLocalPart()) {
-							case "ProcessDefinition":
-								if (id != null) {
-									pd.setId(id.getValue());
-								}
-								break;
-							case "StartEvent":
-								StartEvent startEvent = new StartEvent();
-								if (id != null) {
-									startEvent.setId(id.getValue());
-								}
-								startEvents.add(startEvent);
-								break;
-							case "EndEvent":
-								EndEvent endEvent = new EndEvent();
-								if (id != null) {
-									endEvent.setId(id.getValue());
-									pd.getEndEvents().put(id.getValue(), endEvent);
-								}
-								break;
-							case "Transition":
-								transitionElements.add(element);
-								break;
-							case "Task":
-								TaskInfo taskInfo = new TaskInfo();
-								if (id != null) {
-									taskInfo.setId(id.getValue());
-									pd.getTaskInfos().put(id.getValue(), taskInfo);
-								}
-								Attribute async = element.getAttributeByName(new QName("async"));
-								if (async != null) {
-									taskInfo.setAsync(Boolean.valueOf(async.getValue()));
-								}
-								Attribute implementingClass = element.getAttributeByName(new QName("class"));
-								if (implementingClass != null) {
-									taskInfo.setTaskImplementingClass(implementingClass.getValue());
-								}
-								break;
-							}
-							
-						}
-						
-						break;
-					}
-
-					return event;
-				}
-
-			};
-
-			// validator is not thread-safe
-			Validator validator = LazyProcessDefinitionSchemaHolder.PD_SCHEMA_INSTANCE.newValidator();
-			validator.validate(new StAXSource(reader));
-			log.trace("Process definition successfully schema validated.");
-
-			// perform some basic checks
-			log.trace("Building model and performing some plausibility checks.");
-			if (startEvents.size() != 1) {
-				throw new ProcessDefinitionParserException("A ProcessDefinition must contain exactly one single StartEvent.");
-			}
-			pd.setStartEvent(startEvents.get(0));
-			
-			// link transitions
-			Iterator<StartElement> transitions = transitionElements.iterator();
-			while (transitions.hasNext()) {
-				StartElement element = transitions.next();
-				Transition transition = new Transition();
-				Attribute id = element.getAttributeByName(new QName("id"));
-				if (id != null) {
-					transition.setId(id.getValue());
-				}
-				Attribute conditionExpression = element.getAttributeByName(new QName("conditionExpression"));
-				if (conditionExpression != null) {
-					transition.setConditionExpression(conditionExpression.getValue());
-				}
-				Attribute from = element.getAttributeByName(new QName("from"));
-				if (from != null) {
-					ProcessNode fromNode = pd.getProcessNode(from.getValue());
-					if (fromNode == null) {
-						throw new ProcessDefinitionParserException("Transition's 'from'-attribute refers to a non-existing event or task '" + from.getValue() + '.');
-					}
-					if (fromNode instanceof EndEvent) {
-						throw new ProcessDefinitionParserException("Transition cannot start from end event.");
-					}
-					transition.setFrom(fromNode);
-					fromNode.getOutgoingTransitions().add(transition);
-				}
-				Attribute to = element.getAttributeByName(new QName("to"));
-				if (to != null) {
-					ProcessNode toNode = pd.getProcessNode(to.getValue());
-					if (toNode == null) {
-						throw new ProcessDefinitionParserException("Transition's 'to'-attribute refers to a non-existing event or task '" + to.getValue() + '.');
-					}
-					transition.setTo(toNode);
-					toNode.getIncomingTransitions().add(transition);
-				}
-				if (transition.getConditionExpression() == null && Objects.equals(transition.getFrom(), transition.getTo())) {
-					throw new ProcessDefinitionParserException("Transition's 'from' equals its 'to'. Since no 'conditionExpression' has been set this will cause a loop.");
-				}
-			}
-			log.debug("Process definition '{}' successfully parsed.", pd.getId());
-			return pd;
-
-		} catch (ProcessDefinitionParserException e) {
-			throw e;
-		} catch (XMLStreamException|IOException e) {
-			throw new ProcessDefinitionParserException("Unable to read process definition from inputstream.", e);
-		} catch (SAXException e) {
-			throw new ProcessDefinitionParserException("Schema validation of process description failed.", e);
-		} catch (Exception e) {
-			throw new ProcessDefinitionParserException("Internal error creating process definition from inputstream.", e);
-		} finally {
-			if (reader != null) {
-				try {
-					reader.close();
-				} catch (XMLStreamException e) {
-					// error freeing resources
-				}
-			}
-		}
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessDefinitionParserException.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessDefinitionParserException.java
deleted file mode 100644
index 0c214750d..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessDefinitionParserException.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package at.gv.egovernment.moa.id.process;
-
-/**
- * Exception thrown in case of error parsing a process definition.
- * 
- * @author tknall
- * 
- */
-public class ProcessDefinitionParserException extends Exception {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Creates a new parser exception providing a {@code message} describing the reason and the {@code cause}.
-	 * 
-	 * @param message
-	 *            The message.
-	 * @param cause
-	 *            The cause.
-	 */
-	public ProcessDefinitionParserException(String message, Throwable cause) {
-		super(message, cause);
-	}
-
-	/**
-	 * Creates a new parser exception providing a {@code message} describing the reason.
-	 * 
-	 * @param message
-	 *            The message.
-	 */
-	public ProcessDefinitionParserException(String message) {
-		super(message);
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessEngine.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessEngine.java
deleted file mode 100644
index 44f622fa0..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessEngine.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package at.gv.egovernment.moa.id.process;
-
-
-import java.io.InputStream;
-
-import at.gv.egovernment.moa.id.commons.api.IRequest;
-import at.gv.egovernment.moa.id.process.api.ExecutionContext;
-import at.gv.egovernment.moa.id.process.model.ProcessDefinition;
-
-/**
- * Process engine providing means for starting and resuming processes.
- * 
- * @author tknall
- */
-public interface ProcessEngine {
-
-	/**
-	 * Registers a new process definition. Note that existing definitions with the same identifier will be replaced.
-	 * 
-	 * @param processDefinition
-	 *            The process definition to be registered.
-	 */
-	void registerProcessDefinition(ProcessDefinition processDefinition);
-
-	/**
-	 * Registers a new process definition given as {@link InputStream}. Note that existing definitions with the same identifier will be replaced.
-	 *
-	 * @param processDefinitionInputStream The input stream to the definition to be registered.
-	 * @throws ProcessDefinitionParserException Thrown in case of an error parsing the process definition.
-	 * @return The process definition's identifier.
-	 */
-	String registerProcessDefinition(InputStream processDefinitionInputStream) throws ProcessDefinitionParserException;
-
-	/**
-	 * Creates a process instance according to the referenced process definition, persists it into the database and returns it identifier.
-	 * <p/>
-	 * Note that the method returns the identifier of a process instance which will be needed in order to start a process or to continue
-	 * process execution after asynchronous task execution (refer to {@link #start(String)} and
-	 * {@link #signal(String)} for further information).
-	 * 
-	 * @param processDefinitionId
-	 *            The identifier of the respective process definition.
-	 * @param executionContext The execution context (may be {@code null}).
-	 * @return The id of the newly created process instance (never {@code null}).
-	 * @throws ProcessExecutionException
-	 *             Thrown in case of error, e.g. when a {@code processDefinitionId} is referenced that does not exist.
-	 */
-	String createProcessInstance(String processDefinitionId, ExecutionContext executionContext) throws ProcessExecutionException;
-
-	/**
-	 * Creates a process instance according to the referenced process definition, persists it into the database and returns it identifier.
-	 * <p/>
-	 * Note that the method returns the identifier of a process instance which will be needed in order to start a process or to continue
-	 * process execution after asynchronous task execution (refer to {@link #start(String)} and
-	 * {@link #signal(String)} for further information).
-	 * 
-	 * @param processDefinitionId
-	 *            The identifier of the respective process definition.
-	 * @return The id of the newly created process instance (never {@code null}).
-	 * @throws ProcessExecutionException
-	 *             Thrown in case of error, e.g. when a {@code processDefinitionId} is referenced that does not exist.
-	 */
-	String createProcessInstance(String processDefinitionId) throws ProcessExecutionException;
-
-	
-	/**
-	 * Delete a process instance 
-	 * 
-	 * @param processInstanceId
-	 *            The identifier of the respective process.
-	 * @throws ProcessExecutionException
-	 *             Thrown in case of error, e.g. when a {@code processInstanceId} is referenced that does not exist.
-	 */
-	void deleteProcessInstance(String processInstanceId) throws ProcessExecutionException;
-	
-	/**
-	 * Returns the process instance with a given {@code processInstanceId}.
-	 * 
-	 * @param processInstanceId
-	 *            The process instance id.
-	 * @return The process instance (never {@code null}).
-	 * @throws IllegalArgumentException
-	 *             In case the process instance does not/no longer exist.
-	 * @throws RuntimeException
-	 *             In case the process instance could not be retrieved from persistence.
-	 */
-	ProcessInstance getProcessInstance(String processInstanceId);
-
-	/**
-	 * Starts the process using the given {@code pendingReq}.
-	 * 
-	 * @param pendingReq
-	 *            The protocol request for which a process should be started.
-	 * @throws ProcessExecutionException
-	 *             Thrown in case of error.
-	 */
-	void start(IRequest pendingReq) throws ProcessExecutionException;
-
-
-	/**
-	 * Resumes process execution after an asynchronous task has been executed.
-	 * 
-	 * @param pendingReq
-	 *            The process instance id.
-	 * @throws ProcessExecutionException
-	 *             Thrown in case of error.
-	 */
-	void signal(IRequest pendingReq) throws ProcessExecutionException;
-
-}
\ No newline at end of file
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessEngineImpl.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessEngineImpl.java
deleted file mode 100644
index 76e6605c1..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessEngineImpl.java
+++ /dev/null
@@ -1,420 +0,0 @@
-package at.gv.egovernment.moa.id.process;
-
-import java.io.InputStream;
-import java.io.Serializable;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Predicate;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.ApplicationContext;
-
-import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
-import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;
-import at.gv.egovernment.moa.id.process.api.ExecutionContext;
-import at.gv.egovernment.moa.id.process.api.ExpressionEvaluationContext;
-import at.gv.egovernment.moa.id.process.api.ExpressionEvaluator;
-import at.gv.egovernment.moa.id.process.api.Task;
-import at.gv.egovernment.moa.id.process.dao.ProcessInstanceStore;
-import at.gv.egovernment.moa.id.process.dao.ProcessInstanceStoreDAO;
-import at.gv.egovernment.moa.id.process.model.EndEvent;
-import at.gv.egovernment.moa.id.process.model.ProcessDefinition;
-import at.gv.egovernment.moa.id.process.model.ProcessNode;
-import at.gv.egovernment.moa.id.process.model.StartEvent;
-import at.gv.egovernment.moa.id.process.model.TaskInfo;
-import at.gv.egovernment.moa.id.process.model.Transition;
-import at.gv.egovernment.moa.util.MiscUtil;
-
-/**
- * Process engine implementation allowing starting and continuing processes as well as providing means for cleanup actions.
- */
-public class ProcessEngineImpl implements ProcessEngine {
-
-	private Logger log = LoggerFactory.getLogger(getClass());
-
-	@Autowired ProcessInstanceStoreDAO piStoreDao;
-	@Autowired ApplicationContext context;
-	
-	private ProcessDefinitionParser pdp = new ProcessDefinitionParser();
-
-	private Map<String, ProcessDefinition> processDefinitions = new ConcurrentHashMap<String, ProcessDefinition>();
-
-	private final static String MDC_CTX_PI_NAME = "processInstanceId";
-	private final static String MDC_CTX_TASK_NAME = "taskId";
-
-	private ExpressionEvaluator transitionConditionExpressionEvaluator;
-
-	@Override
-	public void registerProcessDefinition(ProcessDefinition processDefinition) {
-		log.info("Registering process definition '{}'.", processDefinition.getId());
-		processDefinitions.put(processDefinition.getId(), processDefinition);
-	}
-
-	@Override
-	public String registerProcessDefinition(InputStream processDefinitionInputStream) throws ProcessDefinitionParserException{
-		ProcessDefinition pd = pdp.parse(processDefinitionInputStream);
-		registerProcessDefinition(pd);
-		return pd.getId();
-	}
-
-	/**
-	 * Sets the process definitions.
-	 *
-	 * @param processDefinitions
-	 *            The process definitions.
-	 * @throws IllegalArgumentException
-	 *             In case the process definitions contain definitions with the same identifier.
-	 */
-	public void setProcessDefinitions(Iterable<ProcessDefinition> processDefinitions) {
-		this.processDefinitions.clear();
-		for (ProcessDefinition pd : processDefinitions) {
-			if (this.processDefinitions.containsKey(pd.getId())) {
-				throw new IllegalArgumentException("Duplicate process definition identifier '" + pd.getId() + "'.");
-			}
-			registerProcessDefinition(pd);
-		}
-	}
-
-	/**
-	 * Sets an expression evaluator that should be used to process transition condition expressions.
-	 * @param transitionConditionExpressionEvaluator The expression evaluator.
-	 */
-	public void setTransitionConditionExpressionEvaluator(
-			ExpressionEvaluator transitionConditionExpressionEvaluator) {
-		this.transitionConditionExpressionEvaluator = transitionConditionExpressionEvaluator;
-	}
-
-
-	@Override
-	public String createProcessInstance(String processDefinitionId, ExecutionContext executionContext) throws ProcessExecutionException {
-		// look for respective process definition
-		ProcessDefinition pd = processDefinitions.get(processDefinitionId);
-		if (pd == null) {
-			throw new ProcessExecutionException("Unable to find process definition for process '" + processDefinitionId + "'.");
-		}
-		// create and keep process instance
-		ProcessInstance pi = new ProcessInstance(pd, executionContext);
-		log.info("Creating process instance from process definition '{}': {}", processDefinitionId, pi.getId());
-
-		try {
-			saveOrUpdateProcessInstance(pi);
-		} catch (MOADatabaseException e) {
-			throw new ProcessExecutionException("Unable to persist process instance.", e);
-		}
-
-		return pi.getId();
-	}
-
-	@Override
-	public String createProcessInstance(String processDefinitionId) throws ProcessExecutionException {
-		return createProcessInstance(processDefinitionId, null);
-	}
-
-	@Override
-	public void start(IRequest pendingReq) throws ProcessExecutionException {
-		try {
-			if (MiscUtil.isEmpty(pendingReq.getProcessInstanceId())) {
-				log.error("Pending-request with id:" + pendingReq.getRequestID() 
-					+ " includes NO 'ProcessInstanceId'");
-				throw new ProcessExecutionException("Pending-request with id:" + pendingReq.getRequestID() 
-					+ " includes NO 'ProcessInstanceId'");
-			}
-			
-			ProcessInstance pi = loadProcessInstance(pendingReq.getProcessInstanceId());
-
-			if (pi == null ) {
-				throw new ProcessExecutionException("Process instance '" + pendingReq.getProcessInstanceId() + "' does not exist.");
-				
-			}
-			
-			MDC.put(MDC_CTX_PI_NAME, pi.getId());
-
-			if (!ProcessInstanceState.NOT_STARTED.equals(pi.getState())) {
-				throw new ProcessExecutionException("Process instance '" + pi.getId() + "' has already been started (current state is " + pi.getState() + ").");
-			}
-			log.info("Starting process instance '{}'.", pi.getId());
-			// execute process
-			pi.setState(ProcessInstanceState.STARTED);
-			execute(pi, pendingReq);
-
-			//store ProcessInstance if it is not already ended
-			if (!ProcessInstanceState.ENDED.equals(pi.getState()))
-				saveOrUpdateProcessInstance(pi);
-				
-		} catch (MOADatabaseException e) {
-			throw new ProcessExecutionException("Unable to load/save process instance.", e);
-
-		} finally {
-			MDC.remove(MDC_CTX_PI_NAME);
-		}
-	}
-	
-	@Override
-	public void signal(IRequest pendingReq) throws ProcessExecutionException {
-
-		try {
-			if (MiscUtil.isEmpty(pendingReq.getProcessInstanceId())) {
-				log.error("Pending-request with id:" + pendingReq.getRequestID() 
-					+ " includes NO 'ProcessInstanceId'");
-				throw new ProcessExecutionException("Pending-request with id:" + pendingReq.getRequestID() 
-					+ " includes NO 'ProcessInstanceId'");
-			}
-			
-			ProcessInstance pi = loadProcessInstance(pendingReq.getProcessInstanceId());
-
-			if (pi == null ) {
-				throw new ProcessExecutionException("Process instance '" + pendingReq.getProcessInstanceId() + "' does not exist.");
-				
-			}
-			
-			MDC.put(MDC_CTX_PI_NAME, pi.getId());
-
-			if (!ProcessInstanceState.SUSPENDED.equals(pi.getState())) {
-				throw new ProcessExecutionException("Process instance '" + pi.getId() + "' has not been suspended (current state is " + pi.getState() + ").");
-			}
-
-			log.info("Waking up process instance '{}'.", pi.getId());
-			pi.setState(ProcessInstanceState.STARTED);
-
-			//put pending-request ID on execution-context because it could be changed
-			pi.getExecutionContext().put(MOAIDAuthConstants.PARAM_TARGET_PENDINGREQUESTID, pendingReq.getRequestID());
-			
-			execute(pi, pendingReq);
-
-			//store ProcessInstance if it is not already ended
-			if (!ProcessInstanceState.ENDED.equals(pi.getState()))
-				saveOrUpdateProcessInstance(pi);
-						
-		} catch (MOADatabaseException e) {
-			throw new ProcessExecutionException("Unable to load/save process instance.", e);
-
-		} finally {
-			MDC.remove(MDC_CTX_PI_NAME);
-		}
-	}
-	
-
-	/**
-	 * Instantiates a task implementation given by a {@link TaskInfo}.
-	 * @param ti The task info.
-	 * @return A Task implementation or {@code null} if the task info does not reference any task implementing classes.
-	 * @throws ProcessExecutionException Thrown in case of error (when the referenced class does not implement {@link Task} for instance).
-	 */
-	private Task createTaskInstance(TaskInfo ti) throws ProcessExecutionException {
-		String clazz = StringUtils.trimToNull(ti.getTaskImplementingClass());
-		Task task = null;
-		
-		if (clazz != null) {
-			log.debug("Instantiating task implementing class '{}'.", clazz);
-			Object instanceClass = null;
-			try {
-				instanceClass = context.getBean(clazz);
-				
-			} catch (Exception e) {
-				throw new ProcessExecutionException("Unable to get class '" + clazz + "' associated with task '" + ti.getId() + "' .", e);
-				
-			}
-			if (instanceClass == null || !(instanceClass instanceof Task)) {
-				throw new ProcessExecutionException("Class '" + clazz + "' associated with task '" + ti.getId() + "' is not assignable to " + Task.class.getName() + ".");
-				
-			}
-			try {
-				task = (Task) instanceClass;
-				
-			} catch (Exception e) {
-				throw new ProcessExecutionException("Unable to instantiate class '" + clazz + "' associated with task '" + ti.getId() + "' .", e);
-			}
-		}
-
-		return task;
-	}
-
-	/**
-	 * Starts/executes a given process instance.
-	 * @param pi The process instance.
-	 * @param pendingReq 
-	 * @throws ProcessExecutionException Thrown in case of error.
-	 */
-	private void execute(final ProcessInstance pi, IRequest pendingReq) throws ProcessExecutionException {
-		if (ProcessInstanceState.ENDED.equals(pi.getState())) {
-			throw new ProcessExecutionException("Process for instance '" + pi.getId() + "' has already been ended.");
-		}
-		ProcessDefinition pd = pi.getProcessDefinition();
-		ProcessNode processNode = pd.getProcessNode(pi.getNextId());
-		log.debug("Processing node '{}'.", processNode.getId());
-		
-		// distinguish process node types StartEvent, TaskInfo and EndEvent
-		
-		if (processNode instanceof TaskInfo) {
-			// TaskInfo types need to be executed
-			TaskInfo ti = (TaskInfo) processNode;
-			MDC.put(MDC_CTX_TASK_NAME, ti.getId());
-			try {
-				log.info("Processing task '{}'.", ti.getId());
-				Task task = createTaskInstance(ti);
-				if (task != null) {
-					try {
-						log.info("Executing task implementation for task '{}'.", ti.getId());
-						log.debug("Execution context before task execution: {}", pi.getExecutionContext().keySet());
-						pendingReq = task.execute(pendingReq, pi.getExecutionContext());
-						log.info("Returned from execution of task '{}'.", ti.getId());
-						log.debug("Execution context after task execution: {}", pi.getExecutionContext().keySet());
-					} catch (Throwable t) {
-						throw new ProcessExecutionException("Error executing task '" + ti.getId() + "'.", t);
-					}
-				} else {
-					log.debug("No task implementing class set.");
-				}
-			} finally {
-				MDC.remove(MDC_CTX_TASK_NAME);
-			}
-			
-		} else if (processNode instanceof EndEvent) {
-			log.info("Finishing process instance '{}'.", pi.getId());
-
-			try {
-				piStoreDao.remove(pi.getId());
-				
-			} catch (MOADatabaseException e) {
-				throw new ProcessExecutionException("Unable to remove process instance.", e);
-				
-			}
-			pi.setState(ProcessInstanceState.ENDED);
-			log.debug("Final process context: {}", pi.getExecutionContext().keySet());
-			return;
-		}
-		
-		final ExpressionEvaluationContext expressionContext = new ExpressionEvaluationContextImpl(pi);
-		
-		// traverse pointer
-		Transition t = CollectionUtils.find(processNode.getOutgoingTransitions(), new Predicate<Transition>() {
-			@Override
-			public boolean evaluate(Transition transition) {
-				if (transitionConditionExpressionEvaluator != null && transition.getConditionExpression() != null) {
-					log.trace("Evaluating transition expression '{}'.", transition.getConditionExpression());
-					return transitionConditionExpressionEvaluator.evaluate(expressionContext, transition.getConditionExpression());
-				}
-				return true;
-			}
-		});
-		if (t == null) {
-			throw new ProcessExecutionException("No valid transition starting from process node '" + processNode.getId()+ "'.");
-		}
-		log.trace("Found suitable transition: {}", t);
-		// update pointer
-		log.trace("Shifting process token from '{}' to '{}'.", pi.getNextId(), t.getTo().getId());
-		pi.setNextId(t.getTo().getId());
-		
-		// inspect current task
-		if (t.getTo() instanceof TaskInfo && (((TaskInfo) t.getTo()).isAsync())) {
-			// immediately return in case of asynchonous task
-			log.info("Suspending process instance '{}' for asynchronous task '{}'.", pi.getId(), t.getTo().getId());
-			pi.setState(ProcessInstanceState.SUSPENDED);
-			return;
-		}
-		
-		// continue execution in case of StartEvent or Task
-		if (processNode instanceof StartEvent || processNode instanceof TaskInfo) {
-			execute(pi, pendingReq);
-		}
-	}
-
-	@Override
-	public ProcessInstance getProcessInstance(String processInstanceId) {
-
-		ProcessInstance processInstance;
-		try {
-			processInstance = loadProcessInstance(processInstanceId);
-
-		} catch (MOADatabaseException e) {
-			throw new RuntimeException("The process instance '" + processInstanceId + "' could not be retrieved.", e);
-		}
-
-		if (processInstance == null) {
-			throw new IllegalArgumentException("The process instance '" + processInstanceId + "' does not/no longer exist.");
-		}
-
-		return processInstance;
-	}
-
-	/**
-	 * Persists a {@link ProcessInstance} to the database.
-	 * @param processInstance The object to persist.
-	 * @throws MOADatabaseException Thrown if an error occurs while accessing the database.
-	 */
-	private void saveOrUpdateProcessInstance(ProcessInstance processInstance) throws MOADatabaseException {
-		ProcessInstanceStore store = new ProcessInstanceStore();
-
-		ExecutionContext ctx = processInstance.getExecutionContext();
-
-		Map<String, Serializable> ctxData = new HashMap<String, Serializable>();
-		for (String key : ctx.keySet()) {
-			ctxData.put(key, ctx.get(key));
-		}
-		store.setExecutionContextData(ctxData);
-
-		store.setNextTaskId(processInstance.getNextId());
-		store.setProcessDefinitionId(processInstance.getProcessDefinition().getId());
-
-		store.setProcessInstanceId(processInstance.getId());
-		store.setProcessState(processInstance.getState());
-
-		piStoreDao.saveOrUpdate(store);
-	}
-
-	/**
-	 * Load a {@link ProcessInstance} with a certain id from the database.
-	 * @param processInstanceId The process instance id
-	 * @return The process instance corresponding to the id or {@code null} if no such object is found.
-	 * @throws MOADatabaseException Thrown if an error occurs while accessing the database.
-	 */
-	private ProcessInstance loadProcessInstance(String processInstanceId) throws MOADatabaseException {
-
-		ProcessInstanceStore piStore = piStoreDao.load(processInstanceId);
-
-		if (piStore == null) {
-			return null;
-		}
-
-		ExecutionContext executionContext = new ExecutionContextImpl(piStore.getProcessInstanceId());
-
-		Map<String, Serializable> executionContextData = piStore.getExecutionContextData();
-		for (String key : executionContextData.keySet()) {
-			executionContext.put(key, executionContextData.get(key));
-		}
-
-		ProcessInstance pi = new ProcessInstance(processDefinitions.get(piStore.getProcessDefinitionId()), executionContext);
-		pi.setNextId(piStore.getNextTaskId());
-		pi.setState(piStore.getProcessState());
-
-		return pi;
-	}
-
-	/* (non-Javadoc)
-	 * @see at.gv.egovernment.moa.id.process.ProcessEngine#deleteProcessInstance(java.lang.String)
-	 */
-	@Override
-	public void deleteProcessInstance(String processInstanceId) throws ProcessExecutionException {
-		if (MiscUtil.isEmpty(processInstanceId)) {
-			throw new ProcessExecutionException("Unable to remove process instance: ProcessInstanceId is empty");
-			
-		}
-			
-		try {
-			piStoreDao.remove(processInstanceId);
-			
-		} catch (MOADatabaseException e) {
-			throw new ProcessExecutionException("Unable to remove process instance.", e);
-			
-		}
-		
-	}
-	
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessExecutionException.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessExecutionException.java
deleted file mode 100644
index 821bbe6dc..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessExecutionException.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package at.gv.egovernment.moa.id.process;
-
-/**
- * Indicates a problem when executing a process.
- * 
- * @author tknall
- * 
- */
-public class ProcessExecutionException extends Exception {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Creates a new process execution exception providing a {@code message} describing the reason and the respective
-	 * {@code cause}.
-	 * 
-	 * @param message
-	 *            The message.
-	 * @param cause
-	 *            The cause.
-	 */
-	public ProcessExecutionException(String message, Throwable cause) {
-		super(message, cause);
-	}
-
-	/**
-	 * Creates a new process execution exception providing a {@code message} describing the reason.
-	 * 
-	 * @param message
-	 *            The message.
-	 */
-	public ProcessExecutionException(String message) {
-		super(message);
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessInstance.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessInstance.java
deleted file mode 100644
index a6cf3b57f..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessInstance.java
+++ /dev/null
@@ -1,164 +0,0 @@
-package at.gv.egovernment.moa.id.process;
-
-import java.io.Serializable;
-import java.util.Date;
-
-import org.apache.commons.lang3.RandomStringUtils;
-import org.apache.commons.lang3.time.DurationFormatUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import at.gv.egovernment.moa.id.process.api.ExecutionContext;
-import at.gv.egovernment.moa.id.process.model.ProcessDefinition;
-import at.gv.egovernment.moa.id.process.support.SecureRandomHolder;
-
-/**
- * Represents a process being executed. The process instance provides information about the process and its state.
- * 
- * @author tknall
- * 
- */
-public class ProcessInstance implements Serializable {
-
-	private static final long serialVersionUID = 1L;
-	private static final int RND_ID_LENGTH = 22;
-
-	private ProcessDefinition processDefinition;
-	private String nextId;
-	private Date lru;
-	private ExecutionContext executionContext;
-	private ProcessInstanceState state = ProcessInstanceState.NOT_STARTED;
-
-	private Logger log = LoggerFactory.getLogger(getClass());
-
-	/**
-	 * Creates a new process instance, based on a given process definition and a
-	 * given execution context. If the given execution context is {@code null} a new execution context will be created.<p/>
-	 * The process instance id of the execution context will be newly generated if it is {@code null} in the execution context.
-	 * 
-	 * @param processDefinition
-	 *            The process definition.
-	 * @param executionContext
-	 *            The execution context (may be {@code null}). If {@code null} a new execution context will be created internally.
-	 */
-	ProcessInstance(ProcessDefinition processDefinition, ExecutionContext executionContext) {
-		this.processDefinition = processDefinition;
-		nextId = processDefinition.getStartEvent().getId();
-		if (executionContext == null) {
-			executionContext = new ExecutionContextImpl();
-		}
-		if (executionContext.getProcessInstanceId() == null) {
-			String pdIdLocalPart = RandomStringUtils.random(RND_ID_LENGTH, 0, 0, true, true, null,
-					SecureRandomHolder.getInstance());
-			executionContext.setProcessInstanceId(this.processDefinition.getId() + "-" + pdIdLocalPart);
-		} else {
-			log.debug("Using process instance id from execution context.");
-		}
-		log.debug("Creating process instance with id '{}'.", executionContext.getProcessInstanceId());
-		this.executionContext = executionContext;
-		touch();
-	}
-
-	/**
-	 * Returns the underlying process definition.
-	 * 
-	 * @return The underlying process definition.
-	 */
-	ProcessDefinition getProcessDefinition() {
-		touch();
-		return processDefinition;
-	}
-
-	/**
-	 * Returns the id of the process node to be executed next.
-	 * 
-	 * @return The process node pointer indicating the process node to be executed next.
-	 */
-	public String getNextId() {
-		touch();
-		return nextId;
-	}
-
-	/**
-	 * Sets the internal pointer to the process node to be executed next.
-	 * 
-	 * @param nextId
-	 *            The process node id to be executed next.
-	 */
-	void setNextId(String nextId) {
-		touch();
-		this.nextId = nextId;
-	}
-
-	/**
-	 * Returns the current state of the process instance.
-	 * 
-	 * @return The current state.
-	 */
-	public ProcessInstanceState getState() {
-		touch();
-		return state;
-	}
-
-	/**
-	 * Sets the current state of the process instance.
-	 * 
-	 * @param state
-	 *            The current state.
-	 */
-	void setState(ProcessInstanceState state) {
-		touch();
-		this.state = state;
-	}
-
-	public String getId() {
-		touch();
-		return executionContext.getProcessInstanceId();
-	}
-
-	/**
-	 * Updates the last recently used date of the process instance.
-	 */
-	private void touch() {
-		lru = new Date();
-	}
-
-	/**
-	 * Returns the date the process instance has been accessed last.
-	 * 
-	 * @return The last recently used date.
-	 */
-	Date getLru() {
-		return lru;
-	}
-
-	/**
-	 * Returns the associated execution context.
-	 * @return The execution context (never {@code null}).
-	 */
-	public ExecutionContext getExecutionContext() {
-		touch();
-		return executionContext;
-	}
-
-	@Override
-	public String toString() {
-		StringBuilder builder = new StringBuilder();
-		builder.append("ProcessInstance [");
-		builder.append("id=").append(executionContext.getProcessInstanceId());
-		builder.append(", idle since=").append(
-				DurationFormatUtils.formatDurationWords(new Date().getTime() - this.lru.getTime(), true, true));
-		if (processDefinition != null) {
-			builder.append(", processDefinition.id=");
-			builder.append(processDefinition.getId());
-		}
-		if (nextId != null) {
-			builder.append(", nextId=");
-			builder.append(nextId);
-		}
-		builder.append(", executionContext=").append(executionContext);
-		builder.append("]");
-		return builder.toString();
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessInstanceState.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessInstanceState.java
deleted file mode 100644
index 2765283a0..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/ProcessInstanceState.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package at.gv.egovernment.moa.id.process;
-
-/**
- * Represents a certain process instance state.
- * @author tknall
- *
- */
-public enum ProcessInstanceState {
-	
-	/**
-	 * Indicates that the process with this process instance has not yet been started.
-	 */
-	NOT_STARTED,
-	
-	/**
-	 * Indicates that the process is currently running.
-	 */
-	STARTED,
-	
-	/**
-	 * Indicates that the process has been suspended until being waken up by someonce calling {@code signal}.
-	 */
-	SUSPENDED,
-	
-	/**
-	 * Indicates that the process has been completed.
-	 */
-	ENDED
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/api/ExecutionContext.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/api/ExecutionContext.java
deleted file mode 100644
index 4a9dfc336..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/api/ExecutionContext.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package at.gv.egovernment.moa.id.process.api;
-
-import java.io.Serializable;
-import java.util.Set;
-
-/**
- * Encapsulates data needed for or provided by task execution.
- * 
- * @author tknall
- * 
- */
-public interface ExecutionContext extends Serializable {
-
-	/**
-	 * Returns the identifier of underlying process instance.
-	 * 
-	 * @return The identifier of the process instance.
-	 */
-	String getProcessInstanceId();
-
-	/**
-	 * Sets the identifier of underlying process instance.
-	 * 
-	 * @param processInstanceId
-	 *            The identifier of the process instance.
-	 */
-	void setProcessInstanceId(String processInstanceId);
-
-	/**
-	 * Stores a serializable object using {@code key}.
-	 * 
-	 * @param key
-	 *            The key under that the {@code object} should be stored.
-	 * @param object The object to be stored.
-	 */
-	void put(String key, Serializable object);
-
-	/**
-	 * Returns an serializable object stored within this process context using {@code key}.
-	 * 
-	 * @param key
-	 *            The key that has been used to store the serializable object (may be {@code null}).
-	 * @return The object or {@code null} in case the key does not relate to a stored object or the stored object itself
-	 *         was {@code null}.
-	 */
-	Serializable get(String key);
-	
-	/**
-	 * Removes the object stored using {@code key}.
-	 * @param key
-	 *            The key that has been used to store the serializable object (may be {@code null}).
-	 * @return The object that has been removed or {@code null} there was no object stored using {@code key}.
-	 */
-	Serializable remove(String key);
-
-	/**
-	 * Returns an unmodifiable set containing the stored keys.
-	 * 
-	 * @return The keyset (never {@code null}).
-	 */
-	Set<String> keySet();
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/api/ExpressionEvaluationContext.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/api/ExpressionEvaluationContext.java
deleted file mode 100644
index 94854dcad..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/api/ExpressionEvaluationContext.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package at.gv.egovernment.moa.id.process.api;
-
-import java.io.Serializable;
-import java.util.Map;
-
-import at.gv.egovernment.moa.id.process.model.Transition;
-
-/**
- * Context used for evaluation of condition expressions set for {@linkplain Transition Transitions}.
- * 
- * @author tknall
- * 
- */
-public interface ExpressionEvaluationContext extends Serializable {
-
-	/**
-	 * Returns the context data map used for expression evaluation.
-	 * 
-	 * @return An unmodifiable map (never {@code null}).
-	 */
-	Map<String, Serializable> getCtx();
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/api/ExpressionEvaluator.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/api/ExpressionEvaluator.java
deleted file mode 100644
index fe0743201..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/api/ExpressionEvaluator.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package at.gv.egovernment.moa.id.process.api;
-
-/**
- * Evaluates a given {@code expression} returning a boolean value.
- * 
- * @author tknall
- */
-public interface ExpressionEvaluator {
-
-	/**
-	 * Evaluates a given {@code expression} returning a boolean value.
-	 * 
-	 * @param expressionContext
-	 *            The context which can be used for evaluation of the expression.
-	 * @param expression
-	 *            The expression resulting in a boolean (must not be {@code null}).
-	 * @return A boolean value.
-	 * @throws IllegalArgumentException
-	 *             In case of an invalid {@code expression}.
-	 * @throws NullPointerException
-	 *             In case of a {@code null} expression.
-	 */
-	boolean evaluate(ExpressionEvaluationContext expressionContext, String expression);
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/api/Task.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/api/Task.java
deleted file mode 100644
index cff85ad60..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/api/Task.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package at.gv.egovernment.moa.id.process.api;
-
-import at.gv.egovernment.moa.id.auth.modules.TaskExecutionException;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
-
-
-/**
- * Represents a single task to be performed upon process execution.
- * 
- * @author tknall
- * 
- */
-public interface Task {
-
-	/**
-	 * Executes this task.
-	 * @param pendingReq 
-	 * 			  Provides the current processed protocol request
-	 * @param executionContext
-	 *            Provides execution related information.
-	 * @return The pending-request object, because Process-management works recursive
-	 * @throws Exception An exception upon task execution.
-	 */
-	IRequest execute(IRequest pendingReq, ExecutionContext executionContext) throws TaskExecutionException;
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStore.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStore.java
deleted file mode 100644
index 3620f2950..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStore.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package at.gv.egovernment.moa.id.process.dao;
-
-import java.io.Serializable;
-import java.util.Map;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.Id;
-import javax.persistence.Lob;
-import javax.persistence.Table;
-
-import org.hibernate.internal.util.SerializationHelper;
-
-import at.gv.egovernment.moa.id.process.ProcessInstanceState;
-
-@Entity
-@Table(name = "processinstance")
-public class ProcessInstanceStore implements Serializable{
-
-	private static final long serialVersionUID = -6147519767313903808L;
-
-	/**
-	 * A process instance identifier qualifies as natural primary key by satisfying these requirements
-	 * ("unique, constant, required"):
-	 * <ul>
-	 * <li>unique value</li>
-	 * <li>never changes (immutable)</li>
-	 * <li>never {@code null}</li>
-	 * </ul>
-	 */
-	@Id
-	private String processInstanceId;
-
-	@Column(name = "processDefinitionId", nullable = false)
-	private String processDefinitionId;
-
-	@Column(name = "nextTaskId", nullable = false)
-	private String nextTaskId;
-
-	@Column(name = "processState", nullable = false)
-	@Enumerated(value = EnumType.STRING)
-	private ProcessInstanceState processState;
-
-	@Column(name = "executionContextData", nullable = false)
-	@Lob
-	private byte[] executionContextData;
-
-	public String getProcessInstanceId() {
-		return processInstanceId;
-	}
-
-	public String getProcessDefinitionId() {
-		return processDefinitionId;
-	}
-
-	public String getNextTaskId() {
-		return nextTaskId;
-	}
-
-	public ProcessInstanceState getProcessState() {
-		return processState;
-	}
-
-	@SuppressWarnings("unchecked")
-	public Map<String, Serializable> getExecutionContextData() {
-		return  (Map<String, Serializable>) SerializationHelper.deserialize(executionContextData);
-	}
-
-	public void setProcessInstanceId(String processInstanceId) {
-		this.processInstanceId = processInstanceId;
-	}
-
-	public void setProcessDefinitionId(String processDefinitionId) {
-		this.processDefinitionId = processDefinitionId;
-	}
-
-	public void setNextTaskId(String nextTaskId) {
-		this.nextTaskId = nextTaskId;
-	}
-
-	public void setProcessState(ProcessInstanceState processState) {
-		this.processState = processState;
-	}
-
-	public void setExecutionContextData(Map<String, Serializable> executionContextData) {
-		this.executionContextData = SerializationHelper.serialize((Serializable) executionContextData);
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStoreDAO.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStoreDAO.java
deleted file mode 100644
index 57ce70c08..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStoreDAO.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package at.gv.egovernment.moa.id.process.dao;
-
-import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;
-import at.gv.egovernment.moa.id.process.ProcessInstance;
-
-public interface ProcessInstanceStoreDAO {
-
-	/**
-	 * Stores a {@link ProcessInstance} defined by {@code pIStore} in the
-	 * database.
-	 * 
-	 * @param pIStore
-	 *            the {@link ProcessInstanceStore} to persist.
-	 * @throws MOADatabaseException
-	 *             is thrown if a problem occurs while accessing the database.
-	 */
-	void saveOrUpdate(ProcessInstanceStore pIStore) throws MOADatabaseException;
-
-	/**
-	 * Returns a {@link ProcessInstanceStore}, defined by
-	 * {@code processInstanceID} from the database, or {@code null} if the
-	 * object could not be found.
-	 * 
-	 * @param processInstanceId
-	 *            the id of the {@code ProcessInstanceStore} to retrieve.
-	 * @return a ProcessInstanceStore, or {@code null}.
-	 * @throws MOADatabaseException
-	 *             is thrown if a problem occurs while accessing the database.
-	 */
-	ProcessInstanceStore load(String processInstanceId) throws MOADatabaseException;
-
-	/**
-	 * Deletes the {@link ProcessInstance} corresponding with the
-	 * {@code processInstanceId}.
-	 * 
-	 * @param processInstanceId
-	 *            the id of the {@code ProcessInstance} to be deleted.
-	 * @throws MOADatabaseException
-	 *             is thrown if a problem occurs while accessing the database.
-	 */
-	void remove(String processInstanceId) throws MOADatabaseException;
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStoreDAOImpl.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStoreDAOImpl.java
deleted file mode 100644
index 428931b5e..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStoreDAOImpl.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package at.gv.egovernment.moa.id.process.dao;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;
-import at.gv.egovernment.moa.id.storage.ITransactionStorage;
-
-/**
- * Database backed implementation of the {@link ProcessInstanceStoreDAO}
- * interface.
- */
-@Service("ProcessInstanceStoreage")
-public class ProcessInstanceStoreDAOImpl implements ProcessInstanceStoreDAO {
-
-	private Logger log = LoggerFactory.getLogger(getClass());
-
-	@Autowired ITransactionStorage transactionStorage;
-	
-	@Override
-	public void saveOrUpdate(ProcessInstanceStore pIStore) throws MOADatabaseException {
-		try {
-			transactionStorage.put(pIStore.getProcessInstanceId(), pIStore, -1);
-			
-//			MOASessionDBUtils.saveOrUpdate(pIStore);
-			log.debug("Store process instance with='{}' in the database.", pIStore.getProcessInstanceId());
-		} catch (MOADatabaseException e) {
-			log.warn("ProcessInstanceStore could not be persisted to the database.");
-			throw e;
-		}
-	}
-
-	@Override
-	public ProcessInstanceStore load(String processInstanceId) throws MOADatabaseException {
-
-		log.debug("Retrieve the ProcessInstanceStore for id='{}' from the database.", processInstanceId);
-		
-		
-//		Session session = MOASessionDBUtils.getCurrentSession();
-//
-		ProcessInstanceStore result = null;
-//		Transaction tx = null;
-//		synchronized (session) {
-			try {
-
-				result = transactionStorage.get(processInstanceId, ProcessInstanceStore.class);
-				
-//				tx = session.beginTransaction();
-//				// select all where processInstanceId equals processInstanceId
-//				Criteria criteria = session.createCriteria(ProcessInstanceStore.class);
-//				criteria.add(Restrictions.eq("processInstanceId", processInstanceId));
-//				result = (ProcessInstanceStore) criteria.uniqueResult();
-//				tx.commit();
-//
-			} catch (Exception e) {
-				log.error("There are multiple persisted processes with the same process instance id '{}'",
-					processInstanceId);
-//				if (tx != null) {
-//					tx.rollback();
-//				}
-				throw e;
-			} finally {
-				//MOASessionDBUtils.closeSession();
-			}
-//		}
-		if (result != null) {
-			log.debug("Found process instance store for instance '{}'.", processInstanceId);
-		} else {
-			log.debug("Unable to find process instance store for instance '{}'.", processInstanceId);
-		}
-		return result;
-	}
-
-	@Override
-	public void remove(String processInstanceId) throws MOADatabaseException {
-
-		log.debug("Delete the ProcessInstanceStore for id='{}' from the database.", processInstanceId);		
-		//ProcessInstanceStore toBeDeleted = load(processInstanceId);
-				
-		if (transactionStorage.containsKey(processInstanceId)) {
-			transactionStorage.remove(processInstanceId);
-//			if (!MOASessionDBUtils.delete(toBeDeleted)) {
-//				log.warn("Could not delete the ProcessInstanceStore with process instance id '{}'", processInstanceId);
-//				throw new MOADatabaseException("Could not delete the ProcessInstanceStore with process instance id '"
-//						+ processInstanceId + "'.");
-//			}
-		} else 
-			log.trace("ProcessInstanceStore for id='{}' was not found and could therefore not be deleted.", processInstanceId);
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/EndEvent.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/EndEvent.java
deleted file mode 100644
index 49fb082ea..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/EndEvent.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package at.gv.egovernment.moa.id.process.model;
-
-import java.io.Serializable;
-
-import org.apache.commons.collections4.CollectionUtils;
-
-/**
- * Represents an end event. Process execution terminates when an end event is reached.
- * 
- * @author tknall
- */
-public class EndEvent extends ProcessNode implements Serializable {
-
-	private static final long serialVersionUID = 1L;
-
-	@Override
-	public String toString() {
-		StringBuilder builder = new StringBuilder();
-		builder.append("EndEvent [");
-		if (getId() != null) {
-			builder.append("id=");
-			builder.append(getId());
-		}
-		if (CollectionUtils.isNotEmpty(getIncomingTransitions())) {
-			if (builder.length() > 0) {
-				builder.append(", ");
-			}
-			builder.append("incomingTransitions=");
-			builder.append(getIncomingTransitions());
-		}
-		if (CollectionUtils.isNotEmpty(getOutgoingTransitions())) {
-			if (builder.length() > 0) {
-				builder.append(", ");
-			}
-			builder.append("outgoingTransitions=");
-			builder.append(getOutgoingTransitions());
-		}
-		builder.append("]");
-		return builder.toString();
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/ProcessDefinition.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/ProcessDefinition.java
deleted file mode 100644
index 518409ecf..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/ProcessDefinition.java
+++ /dev/null
@@ -1,158 +0,0 @@
-package at.gv.egovernment.moa.id.process.model;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Objects;
-
-import at.gv.egovernment.moa.id.process.ProcessDefinitionParser;
-
-/**
- * Represents a single process definition containing
- * <ul>
- * <li>a {@link StartEvent},</li>
- * <li>one or more {@linkplain TaskInfo Tasks},</li>
- * <li>one or more {@linkplain EndEvent EndEvents} and</li>
- * <li>some {@linkplain Transition Transitions} linking StartEvents, Tasks and EndEvents.
- * </ul>
- * 
- * @author tknall
- * 
- */
-public class ProcessDefinition {
-
-	private String id;
-	private StartEvent startEvent;
-	private Map<String, TaskInfo> taskInfos = new LinkedHashMap<>();
-	private Map<String, EndEvent> endEvents = new LinkedHashMap<>();
-
-	/**
-	 * Returns the unique identifier of the process definition.
-	 * 
-	 * @return The unique identifier (never {@code null} if process definition comes from
-	 *         {@link ProcessDefinitionParser}).
-	 */
-	public String getId() {
-		return id;
-	}
-
-	/**
-	 * Sets the unique identifier of the process definition.
-	 * 
-	 * @param id
-	 *            The unique identifier.
-	 */
-	public void setId(String id) {
-		this.id = id;
-	}
-
-	/**
-	 * Returns the start event of the process definition.
-	 * 
-	 * @return The start event (never {@code null} if process definition comes from {@link ProcessDefinitionParser}).
-	 */
-	public StartEvent getStartEvent() {
-		return startEvent;
-	}
-
-	/**
-	 * Sets the start event of the process definition.
-	 * 
-	 * @param startEvent
-	 *            The start event.
-	 */
-	public void setStartEvent(StartEvent startEvent) {
-		this.startEvent = startEvent;
-	}
-
-	/**
-	 * Returns a map containing the tasks of the process definition.
-	 * 
-	 * @return The tasks (map is never {@code null} if process definition comes from {@link ProcessDefinitionParser}).
-	 */
-	public Map<String, TaskInfo> getTaskInfos() {
-		return taskInfos;
-	}
-
-	/**
-	 * Sets the map containing the tasks.
-	 * 
-	 * @param taskInfos
-	 *            The map containing the tasks.
-	 */
-	public void setTaskInfos(Map<String, TaskInfo> taskInfos) {
-		this.taskInfos = taskInfos;
-	}
-
-	/**
-	 * Returns a map containing the end events of the process description.
-	 * 
-	 * @return The map containing the end events (map is never {@code null} if process definition comes from
-	 *         {@link ProcessDefinitionParser}).
-	 */
-	public Map<String, EndEvent> getEndEvents() {
-		return endEvents;
-	}
-
-	/**
-	 * Sets a map containing the end events of the process description.
-	 * 
-	 * @param endEvents
-	 *            The map containing the end events.
-	 */
-	public void setEndEvents(Map<String, EndEvent> endEvents) {
-		this.endEvents = endEvents;
-	}
-
-	/**
-	 * Returns the process node associated with the given {@code id}.
-	 * 
-	 * @param id
-	 *            The identifier of the process node.
-	 * @return The process node (may be {code null} when no process node with the given {@code id} exists).
-	 */
-	public ProcessNode getProcessNode(String id) {
-		Objects.requireNonNull(id, "Identifier must not be null.");
-		if (startEvent != null && id.equals(startEvent.getId())) {
-			return startEvent;
-		}
-		TaskInfo task = taskInfos.get(id);
-		if (task != null) {
-			return task;
-		}
-		return endEvents.get(id);
-	}
-
-	@Override
-	public String toString() {
-		StringBuilder builder = new StringBuilder();
-		if (id != null) {
-			builder.append("id=");
-			builder.append(id);
-		}
-		if (startEvent != null) {
-			if (builder.length() > 0) {
-				builder.append(", ");
-			}
-			builder.append("startEvent=");
-			builder.append(startEvent);
-		}
-		if (taskInfos != null && !taskInfos.isEmpty()) {
-			if (builder.length() > 0) {
-				builder.append(", ");
-			}
-			builder.append("tasksInfos=");
-			builder.append(taskInfos.values());
-		}
-		if (endEvents != null && !endEvents.isEmpty()) {
-			if (builder.length() > 0) {
-				builder.append(", ");
-			}
-			builder.append("endEvents=");
-			builder.append(endEvents.values());
-		}
-		builder.insert(0, "ProcessDefinition [");
-		builder.append("]");
-		return builder.toString();
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/ProcessNode.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/ProcessNode.java
deleted file mode 100644
index 42f2e3cc2..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/ProcessNode.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package at.gv.egovernment.moa.id.process.model;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import at.gv.egovernment.moa.id.process.ProcessDefinitionParser;
-
-/**
- * Represents a {@link StartEvent}, an {@link EndEvent} or a {@linkplain TaskInfo Task}.
- * @author tknall
- *
- */
-public abstract class ProcessNode {
-
-	private String id;
-	private List<Transition> outgoingTransitions = new ArrayList<>();
-	private List<Transition> incomingTransitions = new ArrayList<>();
-
-	/**
-	 * Returns the unique identifier of the process node.
-	 * 
-	 * @return The unique identifier (never {@code null} if process node comes from a process definition from
-	 *         {@link ProcessDefinitionParser}).
-	 */
-	public String getId() {
-		return id;
-	}
-
-	/**
-	 * Sets the unique identifier of the process node.
-	 * @param id The unique identifier.
-	 */
-	public void setId(String id) {
-		this.id = id;
-	}
-
-	/**
-	 * Returns a list of transitions pointing from this process node to another one.
-	 * @return A list of transitions (never {@code null} if process node comes from a process definition from {@link ProcessDefinitionParser}).
-	 */
-	public List<Transition> getOutgoingTransitions() {
-		return outgoingTransitions;
-	}
-
-	/**
-	 * Sets the list of transitions pointing from this process node to another one.
-	 * @param outgoingTransitions The list of transitions originating from this process node.
-	 */
-	public void setOutgoingTransitions(List<Transition> outgoingTransitions) {
-		this.outgoingTransitions = outgoingTransitions;
-	}
-
-	/**
-	 * Returns a list of transitions pointing from another process node to this one.
-	 * @return A list of transitions (never {@code null} if process node comes from a process definition from {@link ProcessDefinitionParser}).
-	 */
-	public List<Transition> getIncomingTransitions() {
-		return incomingTransitions;
-	}
-
-	/**
-	 * Sets the list of transitions pointing from another process node to this one.
-	 * @param incomingTransitions A list of transitions pointing to this process node.
-	 */
-	public void setIncomingTransitions(List<Transition> incomingTransitions) {
-		this.incomingTransitions = incomingTransitions;
-	}
-	
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/StartEvent.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/StartEvent.java
deleted file mode 100644
index 60175e09c..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/StartEvent.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package at.gv.egovernment.moa.id.process.model;
-
-import java.io.Serializable;
-
-import org.apache.commons.collections4.CollectionUtils;
-
-/**
- * Represents a start event. Each process description contains a single start event. Process execution starts with a
- * start event.
- * 
- * @author tknall
- * 
- */
-public class StartEvent extends ProcessNode implements Serializable {
-
-	private static final long serialVersionUID = 1L;
-
-	@Override
-	public String toString() {
-		StringBuilder builder = new StringBuilder();
-		builder.append("StartEvent [");
-		if (getId() != null) {
-			builder.append("id=");
-			builder.append(getId());
-		}
-		if (CollectionUtils.isNotEmpty(getIncomingTransitions())) {
-			if (builder.length() > 0) {
-				builder.append(", ");
-			}
-			builder.append("incomingTransitions=");
-			builder.append(getIncomingTransitions());
-		}
-		if (CollectionUtils.isNotEmpty(getOutgoingTransitions())) {
-			if (builder.length() > 0) {
-				builder.append(", ");
-			}
-			builder.append("outgoingTransitions=");
-
-			builder.append(getOutgoingTransitions());
-		}
-		builder.append("]");
-		return builder.toString();
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/TaskInfo.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/TaskInfo.java
deleted file mode 100644
index 78a9d6a0a..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/TaskInfo.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package at.gv.egovernment.moa.id.process.model;
-
-import java.io.Serializable;
-
-import org.apache.commons.collections4.CollectionUtils;
-
-import at.gv.egovernment.moa.id.process.api.Task;
-
-/**
- * Represents information about a single task to be performed upon process execution.
- * @author tknall
- *
- */
-public class TaskInfo extends ProcessNode implements Serializable {
-
-	private static final long serialVersionUID = 1L;
-	private static final boolean DEFAULT_ASYNC = false;
-	
-	private String taskImplementingClass;
-	private boolean async = DEFAULT_ASYNC;
-	
-	/**
-	 * Determines if the task is marked asynchronous ({@code true}) or synchronous ({@code false}).
-	 * @return A flag indicating if the task should be executed asynchronously or synchronously. (Default: {@code false})
-	 */
-	public boolean isAsync() {
-		return async;
-	}
-
-	/**
-	 * Marks a task to executed asynchronously ({@code true}) or synchronously ({@code false}).
-	 * @param async The flag.
-	 */
-	public void setAsync(boolean async) {
-		this.async = async;
-	}
-
-	/**
-	 * Returns the class that implements the actual task (must implement {@link Task}).
-	 * @return The task implementing class.
-	 */
-	public String getTaskImplementingClass() {
-		return taskImplementingClass;
-	}
-
-	/**
-	 * Sets the class that implements the actual task (must implement {@link Task}).
-	 * @param taskImplementingClass The task implementing class.
-	 */
-	public void setTaskImplementingClass(String taskImplementingClass) {
-		this.taskImplementingClass = taskImplementingClass;
-	}
-
-	@Override
-	public String toString() {
-		StringBuilder builder = new StringBuilder();
-		if (getId() != null) {
-			builder.append("id=");
-			builder.append(getId());
-		}
-		if (async != DEFAULT_ASYNC) {
-			if (builder.length() > 0) {
-				builder.append(", ");
-			}
-			builder.append("async=");
-			builder.append(async);
-		}
-		if (taskImplementingClass != null) {
-			if (builder.length() > 0) {
-				builder.append(", ");
-			}
-			builder.append("taskImplementingClass=");
-			builder.append(taskImplementingClass);
-		}
-		if (CollectionUtils.isNotEmpty(getIncomingTransitions())) {
-			if (builder.length() > 0) {
-				builder.append(", ");
-			}
-			builder.append("incomingTransitions=");
-			builder.append(getIncomingTransitions());
-		}
-		if (CollectionUtils.isNotEmpty(getOutgoingTransitions())) {
-			if (builder.length() > 0) {
-				builder.append(", ");
-			}
-			builder.append("outgoingTransitions=");
-			builder.append(getOutgoingTransitions());
-		}
-		builder.insert(0, "TaskInfo [");
-		builder.append("]");
-		return builder.toString();
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/Transition.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/Transition.java
deleted file mode 100644
index bc3005534..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/model/Transition.java
+++ /dev/null
@@ -1,136 +0,0 @@
-package at.gv.egovernment.moa.id.process.model;
-
-import java.io.Serializable;
-
-import at.gv.egovernment.moa.id.process.ProcessDefinitionParser;
-
-/**
- * Represents a single transition from a {@link StartEvent} or {@linkplain TaskInfo Task} to another
- * {@linkplain TaskInfo Task} or {@link EndEvent}.
- * 
- * @author tknall
- * 
- */
-public class Transition implements Serializable {
-
-	private static final long serialVersionUID = 1L;
-
-	private String id;
-	private String conditionExpression;
-	private ProcessNode from;
-	private ProcessNode to;
-
-	/**
-	 * Returns the process node (effectively a {@link StartEvent} or {@linkplain TaskInfo Task}) the transition is
-	 * pointing from.
-	 * 
-	 * @return The transition's source process node (never {@code null} if transition comes from a process definition
-	 *         from {@link ProcessDefinitionParser}).
-	 */
-	public ProcessNode getFrom() {
-		return from;
-	}
-
-	/**
-	 * Sets the process node the transition is pointing from.
-	 * 
-	 * @param from
-	 *            The transition's source process node.
-	 */
-	public void setFrom(ProcessNode from) {
-		this.from = from;
-	}
-
-	/**
-	 * Returns the process node (effectively a {@linkplain TaskInfo Task} or {@link EndEvent}) the transition is
-	 * pointing to.
-	 * 
-	 * @return The transition's destination process node (never {@code null} if transition comes from a process
-	 *         definition from {@link ProcessDefinitionParser}).
-	 */
-	public ProcessNode getTo() {
-		return to;
-	}
-
-	/**
-	 * Sets the process node the transition is pointing to.
-	 * 
-	 * @param to
-	 *            The transition's destination process node.
-	 */
-	public void setTo(ProcessNode to) {
-		this.to = to;
-	}
-
-	/**
-	 * Returns the unique identifier of the transition.
-	 * 
-	 * @return The unique identifier (may be {@code null}).
-	 */
-	public String getId() {
-		return id;
-	}
-
-	/**
-	 * Sets the unique identifier of the transition.
-	 * 
-	 * @param id
-	 *            The unique identifier.
-	 */
-	public void setId(String id) {
-		this.id = id;
-	}
-
-	/**
-	 * Returns the condition expression for this transition.
-	 * 
-	 * @return The condition expression (may be {@code null}).
-	 */
-	public String getConditionExpression() {
-		return conditionExpression;
-	}
-
-	/**
-	 * Sets the condition expression for this transition.
-	 * 
-	 * @param conditionExpression
-	 *            The condition expression.
-	 */
-	public void setConditionExpression(String conditionExpression) {
-		this.conditionExpression = conditionExpression;
-	}
-
-	@Override
-	public String toString() {
-		StringBuilder builder = new StringBuilder();
-		if (id != null) {
-			builder.append("id=");
-			builder.append(id);
-		}
-		if (from != null) {
-			if (builder.length() > 0) {
-				builder.append(", ");
-			}
-			builder.append("from.id=");
-			builder.append(from.getId());
-		}
-		if (to != null) {
-			if (builder.length() > 0) {
-				builder.append(", ");
-			}
-			builder.append("to.id=");
-			builder.append(to.getId());
-		}
-		if (conditionExpression != null) {
-			if (builder.length() > 0) {
-				builder.append(", ");
-			}
-			builder.append("conditionExpression=");
-			builder.append(conditionExpression);
-		}
-		builder.insert(0, "Transition [");
-		builder.append("]");
-		return builder.toString();
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/spring/SpringExpressionEvaluator.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/spring/SpringExpressionEvaluator.java
deleted file mode 100644
index 5b30c7172..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/spring/SpringExpressionEvaluator.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package at.gv.egovernment.moa.id.process.spring;
-
-import java.util.Objects;
-
-import javax.annotation.PostConstruct;
-
-import org.apache.commons.lang3.BooleanUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.expression.BeanFactoryResolver;
-import org.springframework.expression.Expression;
-import org.springframework.expression.ExpressionParser;
-import org.springframework.expression.spel.standard.SpelExpressionParser;
-import org.springframework.expression.spel.support.StandardEvaluationContext;
-
-import at.gv.egovernment.moa.id.process.api.ExpressionEvaluationContext;
-import at.gv.egovernment.moa.id.process.api.ExpressionEvaluator;
-import at.gv.egovernment.moa.id.process.model.Transition;
-
-/**
- * Expression evaluator for processing {@link Transition} conditions allowing to reference Spring beans from the
- * application context.
- * 
- * @author tknall
- * 
- */
-public class SpringExpressionEvaluator implements ExpressionEvaluator {
-
-	private Logger log = LoggerFactory.getLogger(getClass());
-	private ExpressionParser parser = new SpelExpressionParser();
-	private StandardEvaluationContext evaluationContext = new StandardEvaluationContext();
-
-	@Autowired(required = false)
-	private ApplicationContext ctx;
-
-	@PostConstruct
-	private void init() {
-		if (ctx != null) {
-			evaluationContext.setBeanResolver(new BeanFactoryResolver(ctx));
-		}
-	}
-
-	@Override
-	public boolean evaluate(ExpressionEvaluationContext expressionContext, String expression) {
-		Objects.requireNonNull(expression, "Expression must not be null.");
-		log.trace("Evaluating '{}'.", expression);
-
-		Expression expr = parser.parseExpression(expression);
-		Boolean result = expr.getValue(evaluationContext, expressionContext, Boolean.class);
-		if (result == null) {
-			log.warn("Evaluation of '{}' results in null-value.", expression);
-		} else {
-			log.debug("Expression '{}' -> {}", expression, result);
-		}
-
-		return BooleanUtils.isTrue(result);
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/springweb/AbstractAuthSourceServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/springweb/AbstractAuthSourceServlet.java
deleted file mode 100644
index 738b58834..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/springweb/AbstractAuthSourceServlet.java
+++ /dev/null
@@ -1,116 +0,0 @@
-package at.gv.egovernment.moa.id.process.springweb;
-
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.NoSuchBeanDefinitionException;
-import org.springframework.beans.factory.NoUniqueBeanDefinitionException;
-import org.springframework.web.context.WebApplicationContext;
-import org.springframework.web.context.support.WebApplicationContextUtils;
-
-import at.gv.egovernment.moa.id.process.ProcessEngine;
-import at.gv.egovernment.moa.id.process.ProcessInstance;
-import at.gv.egovernment.moa.id.process.api.ExecutionContext;
-
-/**
- * Abstract HttpServlet that provides means for retrieving the process engine (Spring Web required) as well as
- * retrieving the underlying process instance and execution context evaluating a certain request parameter.
- * 
- * @author tknall
- * 
- */
-public abstract class AbstractAuthSourceServlet extends HttpServlet {
-
-	private static final long serialVersionUID = 1L;
-
-	private ProcessEngine processEngine;
-	
-	/**
-	 * Returns the name of the request parameter representing the respective instance id.
-	 * <p/>Default is {@code processInstanceId}.
-	 * @return The request parameter name.
-	 */
-	public String getProcessInstanceIdParameterName() {
-		return "processInstanceId";
-	}
-
-	/**
-	 * Returns the underlying process engine instance.
-	 * 
-	 * @return The process engine (never {@code null}).
-	 * @throws NoSuchBeanDefinitionException
-	 *             if no {@link ProcessEngine} bean was found.
-	 * @throws NoUniqueBeanDefinitionException
-	 *             if more than one {@link ProcessEngine} bean was found.
-	 * @throws BeansException
-	 *             if a problem getting the {@link ProcessEngine} bean occurred.
-	 * @throws IllegalStateException
-	 *             if the Spring WebApplicationContext was not found, which means that the servlet is used outside a
-	 *             Spring web environment.
-	 */
-	public synchronized ProcessEngine getProcessEngine() {
-		if (processEngine == null) {
-			WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
-			if (ctx == null) {
-				throw new IllegalStateException(
-						"Unable to find Spring WebApplicationContext. Servlet needs to be executed within a Spring web environment.");
-			}
-			processEngine = ctx.getBean(ProcessEngine.class);
-		}
-		return processEngine;
-	}
-
-	/**
-	 * Retrieves the process instance referenced by the request parameter {@link #getProcessInstanceIdParameterName()}.
-	 * 
-	 * @param request
-	 *            The HttpServletRequest.
-	 * @return The process instance (never {@code null}).
-	 * @throws NoSuchBeanDefinitionException
-	 *             if no {@link ProcessEngine} bean was found.
-	 * @throws NoUniqueBeanDefinitionException
-	 *             if more than one {@link ProcessEngine} bean was found.
-	 * @throws BeansException
-	 *             if a problem getting the {@link ProcessEngine} bean occurred.
-	 * @throws IllegalStateException
-	 *             if the Spring WebApplicationContext was not found, which means that the servlet is used outside a
-	 *             Spring web environment.
-	 * @throws IllegalArgumentException
-	 *             in case the process instance id referenced by the request parameter
-	 *             {@link #getProcessInstanceIdParameterName()} does not exist.
-	 */
-	public ProcessInstance getProcessInstance(HttpServletRequest request) {
-		String processInstanceId = StringUtils.trimToNull(request.getParameter(getProcessInstanceIdParameterName()));
-		if (processInstanceId == null) {
-			throw new IllegalArgumentException("Missing request parameter '" + getProcessInstanceIdParameterName() + "'.");
-		}
-		return getProcessEngine().getProcessInstance(processInstanceId);
-	}
-
-	/**
-	 * Retrieves the execution context for the respective process instance referenced by the request parameter
-	 * {@link #getProcessInstanceIdParameterName()}.
-	 * 
-	 * @param request
-	 *            The HttpServletRequest.
-	 * @return The execution context (never {@code null}).
-	 * @throws NoSuchBeanDefinitionException
-	 *             if no {@link ProcessEngine} bean was found.
-	 * @throws NoUniqueBeanDefinitionException
-	 *             if more than one {@link ProcessEngine} bean was found.
-	 * @throws BeansException
-	 *             if a problem getting the {@link ProcessEngine} bean occurred.
-	 * @throws IllegalStateException
-	 *             if the Spring WebApplicationContext was not found, which means that the servlet is used outside a
-	 *             Spring web environment.
-	 * @throws IllegalArgumentException
-	 *             in case the process instance id referenced by the request parameter
-	 *             {@link #getProcessInstanceIdParameterName()} does not exist.
-	 */
-	public ExecutionContext getExecutionContext(HttpServletRequest request) {
-		return getProcessInstance(request).getExecutionContext();
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/springweb/MoaIdTask.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/springweb/MoaIdTask.java
deleted file mode 100644
index dd0d87dd7..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/springweb/MoaIdTask.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package at.gv.egovernment.moa.id.process.springweb;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.web.context.request.RequestAttributes;
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
-import org.springframework.web.filter.RequestContextFilter;
-
-import at.gv.egovernment.moa.id.auth.modules.TaskExecutionException;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
-import at.gv.egovernment.moa.id.process.api.ExecutionContext;
-import at.gv.egovernment.moa.id.process.api.Task;
-
-/**
- * Abstract task implementation providing {@link HttpServletRequest} and {@link HttpServletResponse}.
- * <p/>
- * Note that this abstract task requires the Spring (web) framework including a {@link RequestContextFilter} to be set
- * within {@code web.xml}.
- * 
- * <pre>
- * ...
- * &lt;filter&gt;
- *   &lt;filter-name&gt;requestContextFilter&lt;/filter-name&gt;
- *   &lt;filter-class&gt;org.springframework.web.filter.RequestContextFilter&lt;/filter-class&gt;
- * &lt;/filter&gt;
- * &lt;filter-mapping&gt;
- *   &lt;filter-name&gt;requestContextFilter&lt;/filter-name&gt;
- *   &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
- * &lt;/filter-mapping&gt;
- * ...
- * </pre>
- * 
- * @author tknall
- * @author tlenz
- * 
- */
-public abstract class MoaIdTask implements Task {
-
-	/**
-	 * Executes the task providing the underlying {@link ExecutionContext} {@code executionContext} as well as the
-	 * respective {@link HttpServletRequest} and {@link HttpServletResponse}.
-	 * 
-	 * @param executionContext
-	 *            The execution context (never {@code null}).
-	 * @param request
-	 *            The HttpServletRequest (never {@code null}).
-	 * @param response
-	 *            The HttpServletResponse (never {@code null}).
-	 * @throws IllegalStateException
-	 *             Thrown in case the task is nur being run within the required environment. Refer to javadoc for
-	 *             further information.
-	 * @throws Exception
-	 *             Thrown in case of error executing the task.
-	 */
-	public abstract void execute(ExecutionContext executionContext, HttpServletRequest request,
-			HttpServletResponse response) throws TaskExecutionException;
-
-	/**
-	 * Executes the task providing the underlying {@link ExecutionContext} {@code executionContext} 
-	 * and the {@link IRequest} {@code pendingReq }as well as the
-	 * respective {@link HttpServletRequest} and {@link HttpServletResponse}.
-	 * 
-	 * This method sets the pending-request object of the task implementation and starts the 
-	 * {@code execute} method of the task
-	 * 
-	 * @param pendingReq The pending-request object (never {@code null}).
-	 * @param executionContext The execution context (never {@code null}).
-	 * @param request The HttpServletRequest (never {@code null}).
-	 * @param response The HttpServletResponse (never {@code null}).
-	 * @return The pending-request object, because Process-management works recursive
-	 * 
-	 * @throws IllegalStateException
-	 *             Thrown in case the task is being run within the required environment. Refer to javadoc for
-	 *             further information.
-	 * @throws Exception
-	 *             Thrown in case of error executing the task.
-	 */
-	protected abstract IRequest internalExecute(IRequest pendingReq, ExecutionContext executionContext, HttpServletRequest request,
-			HttpServletResponse response) throws TaskExecutionException;
-	
-	@Override
-	public IRequest execute(IRequest pendingReq, ExecutionContext executionContext) throws TaskExecutionException {
-		RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
-		if (requestAttributes != null && requestAttributes instanceof ServletRequestAttributes) {
-			HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest();
-			HttpServletResponse response = ((ServletRequestAttributes) requestAttributes).getResponse();
-			if (request == null || response == null) {
-				throw new IllegalStateException(
-						"Spring's RequestContextHolder did not provide HttpServletResponse. Did you forget to set the required org.springframework.web.filter.RequestContextFilter in your web.xml.");
-			}
-			return internalExecute(pendingReq, executionContext, request, response);
-		} else {
-			throw new IllegalStateException("Task needs to be executed within a Spring web environment.");
-		}
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/springweb/SpringWebExpressionEvaluator.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/springweb/SpringWebExpressionEvaluator.java
deleted file mode 100644
index af6822ba6..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/springweb/SpringWebExpressionEvaluator.java
+++ /dev/null
@@ -1,143 +0,0 @@
-package at.gv.egovernment.moa.id.process.springweb;
-
-import java.io.Serializable;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Objects;
-
-import javax.annotation.PostConstruct;
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.commons.lang3.ArrayUtils;
-import org.apache.commons.lang3.BooleanUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.expression.BeanFactoryResolver;
-import org.springframework.expression.Expression;
-import at.gv.egovernment.moa.id.process.api.ExecutionContext;
-import org.springframework.expression.ExpressionParser;
-import org.springframework.expression.spel.standard.SpelExpressionParser;
-import org.springframework.expression.spel.support.StandardEvaluationContext;
-
-import at.gv.egovernment.moa.id.process.api.ExpressionEvaluationContext;
-import at.gv.egovernment.moa.id.process.api.ExpressionEvaluator;
-import at.gv.egovernment.moa.id.process.model.Transition;
-
-/**
- * Expression evaluator for processing {@link Transition} conditions allowing to
- * <ul>
- * <li>reference Spring beans from the application context using {@code @myBeanName...},</li>
- * <li>{@link ExecutionContext} properties using {@code ctx['property']},</li>
- * <li>Multi valued {@link HttpServletRequest} parameters using {@code requestParameters['foo']} (keep in mind that this
- * expression returns an array of String values) and</li>
- * <li>Single valued {@link HttpServletRequest} parameters using {@code requestParameter['foo']}</li>
- * </ul>
- * 
- * @author tknall
- * 
- */
-public class SpringWebExpressionEvaluator implements ExpressionEvaluator {
-
-	private Logger log = LoggerFactory.getLogger(getClass());
-	private ExpressionParser parser = new SpelExpressionParser();
-	private StandardEvaluationContext evaluationContext = new StandardEvaluationContext();
-
-	@Autowired(required = false)
-	private ApplicationContext ctx;
-
-	@Autowired(required = false)
-	private HttpServletRequest request;
-
-	@PostConstruct
-	private void init() {
-		if (ctx != null) {
-			evaluationContext.setBeanResolver(new BeanFactoryResolver(ctx));
-		}
-	}
-
-	/**
-	 * Evaluation context that provides access to {@link HttpServletRequest} parameters using
-	 * {@code requestParameter['foo']} for single value parameters or {@code requestParameters['foo']} for multi value
-	 * parameters. Basic calls to {@code ctx} will be delegated.
-	 * 
-	 * @author tknall
-	 * 
-	 */
-	private class SpringWebExpressionEvaluationContext implements ExpressionEvaluationContext {
-
-		private static final long serialVersionUID = 1L;
-
-		/**
-		 * Creates a new expression evaluation context, providing access to HttpServletRequest parameter(s).
-		 * 
-		 * @param delegate
-		 *            The original {@link ExpressionEvaluationContext} to be delegated to for {@code ctx['foo']}
-		 *            expressions.
-		 */
-		public SpringWebExpressionEvaluationContext(ExpressionEvaluationContext delegate) {
-			this.delegate = delegate;
-		}
-
-		private ExpressionEvaluationContext delegate;
-
-		@Override
-		public Map<String, Serializable> getCtx() {
-			return delegate.getCtx();
-		}
-
-		@SuppressWarnings("unused")
-		public Map<String, String> getRequestParameter() {
-			if (request != null) {
-				Map<String, String> singleValueMap = new HashMap<String, String>();
-				Iterator<Entry<String, String[]>> it = request.getParameterMap().entrySet().iterator();
-				while (it.hasNext()) {
-					Entry<String, String[]> entry = it.next();
-					if (ArrayUtils.isNotEmpty(entry.getValue())) {
-						singleValueMap.put(entry.getKey(), entry.getValue()[0]);
-					}
-				}
-				return singleValueMap;
-			} else {
-				return Collections.<String, String> emptyMap();
-			}
-		}
-
-		@SuppressWarnings("unused")
-		public Map<String, String[]> getRequestParameters() {
-			if (request != null) {
-				return request.getParameterMap();
-			} else {
-				return Collections.<String, String[]> emptyMap();
-			}
-		}
-
-	}
-
-	@Override
-	public boolean evaluate(ExpressionEvaluationContext expressionContext, String expression) {
-		Objects.requireNonNull(expression, "Expression must not be null.");
-		log.trace("Evaluating '{}'.", expression);
-
-		Expression expr = parser.parseExpression(expression);
-		Boolean result = null;
-		try {
-			result = expr.getValue(evaluationContext, new SpringWebExpressionEvaluationContext(expressionContext),
-					Boolean.class);
-			if (result == null) {
-				log.warn("Evaluation of '{}' results in null-value.", expression);
-			} else {
-				log.debug("Expression '{}' -> {}", expression, result);
-			}
-		} catch (Exception e) {
-			log.warn("Expression '{}' could not be processed.", expression, e);
-		}
-
-		return BooleanUtils.isTrue(result);
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/support/SecureRandomHolder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/support/SecureRandomHolder.java
deleted file mode 100644
index 72677739a..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/support/SecureRandomHolder.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package at.gv.egovernment.moa.id.process.support;
-
-import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
-
-/**
- * Holder for a secure random instance following the initialization on demand holder design pattern. The secure random
- * instance is a singleton that is initialized on first usage.
- * 
- * @author tknall
- * 
- */
-public class SecureRandomHolder {
-
-	private SecureRandomHolder() {
-	}
-
-	private static final SecureRandom SRND_INSTANCE;
-	static {
-		try {
-			SRND_INSTANCE = SecureRandom.getInstance("SHA1PRNG");
-		} catch (NoSuchAlgorithmException e) {
-			throw new RuntimeException("Unable to instantiate SHA1PRNG.", e);
-		}
-	}
-
-	/**
-	 * Returns a secure random generator instance.
-	 * @return The secure random instance.
-	 */
-	public static SecureRandom getInstance() {
-		return SecureRandomHolder.SRND_INSTANCE;
-	}
-
-}
\ No newline at end of file
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/AbstractAuthProtocolModulController.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/AbstractAuthProtocolModulController.java
deleted file mode 100644
index 9b30368e3..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/AbstractAuthProtocolModulController.java
+++ /dev/null
@@ -1,309 +0,0 @@
-/*
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.protocols;
-
-import java.io.IOException;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.ApplicationContext;
-
-import at.gv.egovernment.moa.id.advancedlogging.MOAIDEventConstants;
-import at.gv.egovernment.moa.id.auth.builder.AuthenticationDataBuilder;
-import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;
-import at.gv.egovernment.moa.id.auth.exception.AuthenticationException;
-import at.gv.egovernment.moa.id.auth.servlet.AbstractController;
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
-import at.gv.egovernment.moa.id.commons.api.data.IAuthenticationSession;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.data.SLOInformationInterface;
-import at.gv.egovernment.moa.id.moduls.AuthenticationManager;
-import at.gv.egovernment.moa.id.moduls.IAction;
-import at.gv.egovernment.moa.id.moduls.IModulInfo;
-import at.gv.egovernment.moa.id.moduls.RequestImpl;
-import at.gv.egovernment.moa.id.moduls.SSOManager;
-import at.gv.egovernment.moa.id.storage.IAuthenticationSessionStoreage;
-import at.gv.egovernment.moa.logging.Logger;
-import at.gv.egovernment.moa.util.MiscUtil;
-
-/**
- * @author tlenz
- *
- */
-
-public abstract class AbstractAuthProtocolModulController extends AbstractController implements IModulInfo {
-
-	public static final String FINALIZEPROTOCOL_ENDPOINT = "finalizeAuthProtocol";	
-	
-	@Autowired protected ApplicationContext applicationContext;	
-	@Autowired private SSOManager ssomanager; 
-	@Autowired protected AuthenticationManager authmanager;
-	@Autowired protected IAuthenticationSessionStoreage authenticatedSessionStorage;
-	@Autowired private AuthenticationDataBuilder authDataBuilder;
-		
-	/**
-	 * Initialize an authentication process for this protocol request
-	 * 
-	 * @param httpReq HttpServletRequest	
-	 * @param httpResp HttpServletResponse
-	 * @param protocolRequest Authentication request which is actually in process
-	 * @throws IOException 
-	 */
-	protected void performAuthentication(HttpServletRequest req, HttpServletResponse resp, 
-			RequestImpl pendingReq) throws IOException {
-		try {
-			if (pendingReq.isNeedAuthentication()) {
-				//request needs authentication --> start authentication process ...
-			
-				//load Parameters from OnlineApplicationConfiguration
-				IOAAuthParameters oaParam = pendingReq.getOnlineApplicationConfiguration();
-				
-				if (oaParam == null) {
-					throw new AuthenticationException("auth.00", new Object[] { pendingReq.getOAURL() });
-				}
-		
-				
-				AuthenticationSession ssoMoaSession = authmanager.doAuthentication(req, resp, pendingReq);
-				if (ssoMoaSession != null) {					
-					//authenticated MOASession already exists --> protocol-specific postProcessing can start directly 					
-					finalizeAuthenticationProcess(req, resp, pendingReq, ssoMoaSession);
-					
-					//transaction is finished, log transaction finished event
-					revisionsLogger.logEvent(MOAIDEventConstants.TRANSACTION_DESTROYED, pendingReq.getUniqueTransactionIdentifier());
-					
-				}
-							
-			} else {			
-				executeProtocolSpecificAction(req, resp, pendingReq, null);
-			
-			}
-			
-		} catch (Exception e) {
-			buildProtocolSpecificErrorResponse(e, req, resp, pendingReq);
-			
-			removeUserSession(pendingReq, req, resp);
-						
-		}		
-	}
-	
-	
-	protected String createNewSSOSessionCookie(HttpServletRequest req, HttpServletResponse resp, 
-			IRequest pendingReq, IAuthenticationSession moaSession) {
-		Logger.debug("Add SSO information to MOASession.");
-		
-		//Store SSO information into database
-		String newSSOSessionId = ssomanager.createSSOSessionInformations(moaSession.getSessionID(), 
-				pendingReq.getOAURL());
-
-		//set SSO cookie to response
-		if (MiscUtil.isNotEmpty(newSSOSessionId)) {
-			ssomanager.setSSOSessionID(req, resp, newSSOSessionId);
-	
-		} else {
-			ssomanager.deleteSSOSessionID(req, resp);
-		
-		}
-		
-		return newSSOSessionId;
-	}
-	
-	/**
-	 * Finalize the requested protocol operation
-	 * 
-	 * @param httpReq HttpServletRequest	
-	 * @param httpResp HttpServletResponse
-	 * @param protocolRequest Authentication request which is actually in process
-	 * @param moaSession MOASession object, which is used to generate the protocol specific authentication information
-	 * @throws Exception 
-	 */
-	protected void finalizeAuthenticationProcess(HttpServletRequest req, HttpServletResponse resp, 
-			IRequest pendingReq, IAuthenticationSession moaSession) throws Exception {
-
-		String newSSOSessionId = null;
-		
-		//if Single Sign-On functionality is enabled for this request
-		if (pendingReq.needSingleSignOnFunctionality()) {
-			newSSOSessionId = createNewSSOSessionCookie(req, resp, pendingReq, moaSession);
-			
-		}
-		
-		//build authenticationdata from session information and OA configuration
-		IAuthData authData = authDataBuilder.buildAuthenticationData(pendingReq, moaSession);	
-			
-		//execute the protocol-specific action
-		SLOInformationInterface sloInformation = executeProtocolSpecificAction(req, resp, pendingReq, authData);
-		
-		//check if SSO 
-		boolean isSSOCookieSetted = MiscUtil.isNotEmpty(newSSOSessionId);
-		
-		//Store OA specific SSO session information if an SSO cookie is set
-		if (isSSOCookieSetted) { 		
-			try {
-				AuthenticationSession internalDBSSOSession = null;
-
-				//create new SSO session, if actually no SSO session exists
-				if (MiscUtil.isEmpty(pendingReq.getInternalSSOSessionIdentifier())) {
-					internalDBSSOSession = authenticatedSessionStorage.createInternalSSOSession(pendingReq);				
-					authenticatedSessionStorage.addSSOInformation(internalDBSSOSession.getSessionID(), 
-							newSSOSessionId, sloInformation, pendingReq);
-				
-					//MOA SSO-session already exists only update is required
-				} else if (MiscUtil.isNotEmpty(pendingReq.getInternalSSOSessionIdentifier()) && 
-							moaSession instanceof AuthenticationSession) {
-					authenticatedSessionStorage.addSSOInformation(moaSession.getSessionID(), 
-							newSSOSessionId, sloInformation, pendingReq);
-					
-				} else {
-					Logger.fatal("MOA-Session data object has a suspect or unsupported type:" + moaSession.getClass().getName()
-							+ " pendingReq_internalSsoId:" + pendingReq.getInternalSSOSessionIdentifier());
-					throw new AuthenticationException("1299", null);
-					
-				}
-											
-			} catch (AuthenticationException e) {
-				Logger.warn("SSO Session information can not be stored  -> SSO is not enabled!");				
-				authmanager.performOnlyIDPLogOut(req, resp, moaSession.getSessionID());
-				
-			}
-		
-		} else {
-			//remove MOASession from database
-			authmanager.performOnlyIDPLogOut(req, resp, moaSession.getSessionID());
-			
-		}
-	
-		//Advanced statistic logging
-		statisticLogger.logSuccessOperation(pendingReq, authData, isSSOCookieSetted);
-				
-	}
-	
-	/**
-	 * Executes the requested protocol action
-	 * 
-	 * @param httpReq HttpServletRequest	
-	 * @param httpResp HttpServletResponse
-	 * @param protocolRequest Authentication request which is actually in process
-	 * @param authData Service-provider specific authentication data
-	 * 
-	 * @return Return Single LogOut information or null if protocol supports no SSO
-	 * 
-	 * @throws Exception 
-	 */
-	private SLOInformationInterface executeProtocolSpecificAction(HttpServletRequest httpReq, HttpServletResponse httpResp, 
-			IRequest pendingReq, IAuthData authData) throws Exception {
-		try {
-		//	request needs no authentication --> start request processing
-			Class<?> clazz = Class.forName(pendingReq.requestedAction());
-			if (clazz == null || 
-					!IAction.class.isAssignableFrom(clazz)) {
-				Logger.fatal("Requested protocol-action processing Class is NULL or does not implement the IAction interface.");
-				throw new Exception("Requested protocol-action processing Class is NULL or does not implement the IAction interface.");
-				
-			}
-			
-			IAction protocolAction = (IAction) applicationContext.getBean(clazz);			 
-			return protocolAction.processRequest(pendingReq, httpReq, httpResp, authData);
-			
-		} catch (ClassNotFoundException e) {
-			Logger.fatal("Requested Auth. protocol processing Class is NULL or does not implement the IAction interface.");
-			throw new Exception("Requested Auth. protocol processing Class is NULL or does not implement the IAction interface.");
-		}
-		
-	}
-	
-	protected void removeUserSession(IRequest pendingReq, HttpServletRequest req, 
-			HttpServletResponse resp) {		
-		authmanager.performOnlyIDPLogOut(req, resp, pendingReq.getInternalSSOSessionIdentifier());
-				
-	}
-	
-	protected void buildProtocolSpecificErrorResponse(Throwable throwable, HttpServletRequest req, 
-			HttpServletResponse resp, IRequest protocolRequest) throws IOException {
-		try {
-			
-			Class<?> clazz = Class.forName(protocolRequest.requestedModule());
-			
-			if (clazz == null || 
-					!IModulInfo.class.isAssignableFrom(clazz)) {
-				Logger.fatal("Requested protocol module Class is NULL or does not implement the IModulInfo interface.");
-				throw new Exception("Requested protocol module Class is NULL or does not implement the IModulInfo interface.");
-				
-			}
-							
-			IModulInfo handlingModule = (IModulInfo) applicationContext.getBean(clazz);
-												
-			if (handlingModule.generateErrorMessage(
-					throwable, req, resp, protocolRequest)) {
-		
-				//log Error to technical log
-				logExceptionToTechnicalLog(throwable);
-				
-				//log Error Message
-				statisticLogger.logErrorOperation(throwable, protocolRequest);
-				
-				//write revision log entries
-				revisionsLogger.logEvent(protocolRequest, MOAIDEventConstants.TRANSACTION_ERROR, protocolRequest.getUniqueTransactionIdentifier());
-				
-				return;
-				
-			} else {
-				handleErrorNoRedirect(throwable, req, resp, true);
-				
-			}
-			
-		} catch (Throwable e) {
-			handleErrorNoRedirect(throwable, req, resp, true);
-			
-		}
-		
-	}
-	
-	/* (non-Javadoc)
-	 * @see at.gv.egovernment.moa.id.moduls.IModulInfo#getName()
-	 */
-	@Override
-	public abstract String getName();
-
-	/* (non-Javadoc)
-	 * @see at.gv.egovernment.moa.id.moduls.IModulInfo#getPath()
-	 */
-	@Override
-	public abstract String getPath();
-
-	/* (non-Javadoc)
-	 * @see at.gv.egovernment.moa.id.moduls.IModulInfo#generateErrorMessage(java.lang.Throwable, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, at.gv.egovernment.moa.id.moduls.IRequest)
-	 */
-	@Override
-	public abstract boolean generateErrorMessage(Throwable e, HttpServletRequest request, HttpServletResponse response,
-			IRequest protocolRequest) throws Throwable;
-
-	/* (non-Javadoc)
-	 * @see at.gv.egovernment.moa.id.moduls.IModulInfo#validate(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, at.gv.egovernment.moa.id.moduls.IRequest)
-	 */
-	@Override
-	public abstract boolean validate(HttpServletRequest request, HttpServletResponse response, IRequest pending);
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/ProtocolFinalizationController.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/ProtocolFinalizationController.java
deleted file mode 100644
index 41a4c9835..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/ProtocolFinalizationController.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.protocols;
-
-import java.io.IOException;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.lang.StringEscapeUtils;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-
-import at.gv.egovernment.moa.id.advancedlogging.MOAIDEventConstants;
-import at.gv.egovernment.moa.id.auth.exception.AuthenticationException;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
-import at.gv.egovernment.moa.id.commons.api.data.IAuthenticationSession;
-import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
-import at.gv.egovernment.moa.id.data.ExceptionContainer;
-import at.gv.egovernment.moa.logging.Logger;
-
-/**
- * @author tlenz
- *
- */
-@Controller
-public class ProtocolFinalizationController extends AbstractAuthProtocolModulController {
-	
-	@RequestMapping(value = "/finalizeAuthProtocol", method = {RequestMethod.GET})
-	public void finalizeAuthProtocol(HttpServletRequest req, HttpServletResponse resp) throws MOAIDException, IOException {
-		
-		//read pendingRequest from http request
-		Object idObject = StringEscapeUtils.escapeHtml(req.getParameter(PARAM_TARGET_PENDINGREQUESTID));
-		IRequest pendingReq = null;
-		String pendingRequestID = null;
-		if (idObject != null && (idObject instanceof String)) {
-			pendingRequestID = (String) idObject;
-			pendingReq = requestStorage.getPendingRequest(pendingRequestID);
-			
-		}
- 				
-		//receive an authentication error
-		String errorid = StringEscapeUtils.escapeHtml(req.getParameter(ERROR_CODE_PARAM));
-		if (errorid != null) {
-			try {				
-				//load stored exception from database
-				ExceptionContainer container = transactionStorage.get(errorid, ExceptionContainer.class);								
-				if (container != null) {					
-					//remove exception if it was found
-					transactionStorage.remove(errorid);
-					
-					Throwable throwable = container.getExceptionThrown();
-					
-					if (pendingReq != null) {													
-						//build protocol-specific error message if possible
-						buildProtocolSpecificErrorResponse(throwable, req, resp, pendingReq);
-																
-						//remove active user-session
-						removeUserSession(pendingReq, req, resp);
-	
-						return;
-	
-					} else {
-						handleErrorNoRedirect(throwable, req, resp, true);
-	
-					}
-				} else {
-					handleErrorNoRedirect(new MOAIDException("auth.26", null), req, resp, false);
-					
-				}
-				
-			} catch (Throwable e) {
-				Logger.error(e);				
-				handleErrorNoRedirect(e, req, resp, false);
-			
-			}
-					
-			// receive a pending request 
-		} else {
-			if (pendingReq == null) {
-				Logger.error("No PendingRequest with ID " + pendingRequestID + " found.!");		
-				handleErrorNoRedirect(new MOAIDException("auth.28", new Object[]{pendingRequestID}), req, resp, false);							
-				return;
-				
-			}
-			try {
-				Logger.debug("Finalize PendingRequest with ID " + pendingRequestID);
-			
-				//get MOA session data object from pending request
-				IAuthenticationSession pendingMoaSession = pendingReq.getMOASession();
-				
-					//check if pending-request has 'abortedByUser' flag set
-				if (pendingReq.isAbortedByUser()) {
-					//send authentication aborted error to Service Provider
-					buildProtocolSpecificErrorResponse(
-							new AuthenticationException("auth.21", new Object[] {}), 
-							req, resp, pendingReq);
-					
-					//do not remove the full active SSO-Session 
-					// in case of only one Service-Provider authentication request is aborted   
-					if ( !(pendingMoaSession.isAuthenticated() 
-							&& pendingReq.needSingleSignOnFunctionality()) ) {
-						removeUserSession(pendingReq, req, resp);
-						
-					}							
-
-					//check if MOASession and pending-request are authenticated					
-				} else if (pendingMoaSession.isAuthenticated() && pendingReq.isAuthenticated()) {				
-					finalizeAuthenticationProcess(req, resp, pendingReq, pendingMoaSession);
-
-				} else {
-					//suspect state: pending-request is not aborted but also are not authenticated 
-					Logger.error("MOASession oder Pending-Request are not authenticated --> Abort authentication process!");		
-					handleErrorNoRedirect(new MOAIDException("auth.20", null), req, resp, true);							
-									
-				}
-							
-			} catch (Exception e) {
-				Logger.error("Finalize authentication protocol FAILED." , e);
-				buildProtocolSpecificErrorResponse(e, req, resp, pendingReq);
-				
-				removeUserSession(pendingReq, req, resp);
-				
-			}		
-		}
-		
-		//remove pending-request
-		if (pendingReq != null) {
-			requestStorage.removePendingRequest(pendingReq.getRequestID());
-			revisionsLogger.logEvent(MOAIDEventConstants.TRANSACTION_DESTROYED, pendingReq.getUniqueTransactionIdentifier());
-			
-		}
-		
-	}
-
-	/* (non-Javadoc)
-	 * @see at.gv.egovernment.moa.id.protocols.AbstractProtocolModulController#getName()
-	 */
-	@Override
-	public String getName() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see at.gv.egovernment.moa.id.protocols.AbstractProtocolModulController#getPath()
-	 */
-	@Override
-	public String getPath() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see at.gv.egovernment.moa.id.protocols.AbstractProtocolModulController#generateErrorMessage(java.lang.Throwable, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, at.gv.egovernment.moa.id.moduls.IRequest)
-	 */
-	@Override
-	public boolean generateErrorMessage(Throwable e, HttpServletRequest request, HttpServletResponse response,
-			IRequest protocolRequest) throws Throwable {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see at.gv.egovernment.moa.id.protocols.AbstractProtocolModulController#validate(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, at.gv.egovernment.moa.id.moduls.IRequest)
-	 */
-	@Override
-	public boolean validate(HttpServletRequest request, HttpServletResponse response, IRequest pending) {
-		// TODO Auto-generated method stub
-		return false;
-	}
-	
-	
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/BPKAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/BPKAttributeBuilder.java
index c13c5e288..9262e97c2 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/BPKAttributeBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/BPKAttributeBuilder.java
@@ -22,10 +22,12 @@
  *******************************************************************************/
 package at.gv.egovernment.moa.id.protocols.builder.attributes;
 
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.UnavailableAttributeException;
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
+import at.gv.egiz.eaaf.core.exceptions.UnavailableAttributeException;
 import at.gv.egovernment.moa.logging.Logger;
 import at.gv.egovernment.moa.util.Constants;
 import at.gv.egovernment.moa.util.MiscUtil;
@@ -36,8 +38,8 @@ public class BPKAttributeBuilder implements IPVPAttributeBuilder {
 		return BPK_NAME;
 	}
 	
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {
 		String bpk = authData.getBPK();
 		String type = authData.getBPKType();
 		
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/BirthdateAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/BirthdateAttributeBuilder.java
deleted file mode 100644
index f1d88f877..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/BirthdateAttributeBuilder.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.protocols.builder.attributes;
-
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
-
-public class BirthdateAttributeBuilder implements IPVPAttributeBuilder {
-		
-	public String getName() {
-		return BIRTHDATE_NAME;
-	}
-	
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
-		
-		if (authData.getDateOfBirth() != null) {			
-			DateFormat pvpDateFormat = new SimpleDateFormat(BIRTHDATE_FORMAT_PATTERN);
-			String dateString = pvpDateFormat.format(authData.getDateOfBirth());
-		
-			return g.buildStringAttribute(BIRTHDATE_FRIENDLY_NAME, BIRTHDATE_NAME, dateString);
-			
-		} else {
-			//build empty attribute if no Birthday date is found (STORK2)
-			return g.buildEmptyAttribute(BIRTHDATE_FRIENDLY_NAME, BIRTHDATE_NAME);
-			
-		}
-	}
-	
-	public <ATT> ATT buildEmpty(IAttributeGenerator<ATT> g) {
-		return g.buildEmptyAttribute(BIRTHDATE_FRIENDLY_NAME, BIRTHDATE_NAME);
-	}
-	
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDAuthBlock.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDAuthBlock.java
index 6f7c0dc97..d3b2a5c38 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDAuthBlock.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDAuthBlock.java
@@ -26,10 +26,12 @@ import java.io.IOException;
 
 import org.springframework.util.Base64Utils;
 
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.UnavailableAttributeException;
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
+import at.gv.egiz.eaaf.core.exceptions.UnavailableAttributeException;
 import at.gv.egovernment.moa.logging.Logger;
 import at.gv.egovernment.moa.util.MiscUtil;
 
@@ -39,8 +41,8 @@ public class EIDAuthBlock implements IPVPAttributeBuilder {
 		return EID_AUTH_BLOCK_NAME;
 	}
 	
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {
 		
 		try {
 			String authblock = authData.getAuthBlock();
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDCcsURL.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDCcsURL.java
index 623acd18e..f87a9b673 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDCcsURL.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDCcsURL.java
@@ -22,11 +22,12 @@
  *******************************************************************************/
 package at.gv.egovernment.moa.id.protocols.builder.attributes;
 
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.config.auth.OAAuthParameter;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.UnavailableAttributeException;
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
+import at.gv.egiz.eaaf.core.exceptions.UnavailableAttributeException;
 import at.gv.egovernment.moa.util.MiscUtil;
 
 public class EIDCcsURL implements IPVPAttributeBuilder {
@@ -35,8 +36,8 @@ public class EIDCcsURL implements IPVPAttributeBuilder {
 		return EID_CCS_URL_NAME;
 	}
 
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {
 		
 		String bkuurl = authData.getBkuURL();
 		if (MiscUtil.isNotEmpty(bkuurl))
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDCitizenQAALevelAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDCitizenQAALevelAttributeBuilder.java
index b254bc305..715bc376e 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDCitizenQAALevelAttributeBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDCitizenQAALevelAttributeBuilder.java
@@ -22,9 +22,13 @@
  *******************************************************************************/
 package at.gv.egovernment.moa.id.protocols.builder.attributes;
 
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
+import at.gv.egovernment.moa.id.protocols.pvp2x.PVPConstants;
+
 
 @Deprecated
 public class EIDCitizenQAALevelAttributeBuilder implements IPVPAttributeBuilder {
@@ -33,12 +37,12 @@ public class EIDCitizenQAALevelAttributeBuilder implements IPVPAttributeBuilder
 		return EID_CITIZEN_QAA_LEVEL_NAME;
 	}
 
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {
 		
 		String qaaLevel = null;
-		if (authData.getQAALevel().startsWith(STORK_QAA_PREFIX))
-			qaaLevel = authData.getQAALevel().substring(STORK_QAA_PREFIX.length());
+		if (authData.getQAALevel().startsWith(PVPConstants.STORK_QAA_PREFIX))
+			qaaLevel = authData.getQAALevel().substring(PVPConstants.STORK_QAA_PREFIX.length());
 		else
 			qaaLevel = authData.getQAALevel();
 		
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDIdentityLinkBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDIdentityLinkBuilder.java
deleted file mode 100644
index a01605986..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDIdentityLinkBuilder.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.protocols.builder.attributes;
-
-import java.io.IOException;
-
-import org.springframework.util.Base64Utils;
-
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.UnavailableAttributeException;
-import at.gv.egovernment.moa.logging.Logger;
-
-public class EIDIdentityLinkBuilder implements IPVPAttributeBuilder {
-
-	public String getName() {
-		return EID_IDENTITY_LINK_NAME;
-	}
-
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
-		try {
-			String ilAssertion = null;
-			
-			if (authData.getIdentityLink() == null)
-				throw new UnavailableAttributeException(EID_IDENTITY_LINK_NAME);
-			
-			ilAssertion = authData.getIdentityLink().getSerializedSamlAssertion();
-			
-			return g.buildStringAttribute(EID_IDENTITY_LINK_FRIENDLY_NAME,
-					EID_IDENTITY_LINK_NAME, Base64Utils.encodeToString(ilAssertion.getBytes("UTF-8")));
-			
-		} catch (IOException e) {
-			Logger.warn("IdentityLink serialization error.", e);
-			return g.buildEmptyAttribute(EID_IDENTITY_LINK_FRIENDLY_NAME,
-					EID_IDENTITY_LINK_NAME);
-		}
-		
-	}
-
-	public <ATT> ATT buildEmpty(IAttributeGenerator<ATT> g) {
-		return g.buildEmptyAttribute(EID_IDENTITY_LINK_FRIENDLY_NAME,
-				EID_IDENTITY_LINK_NAME);
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDIssuingNationAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDIssuingNationAttributeBuilder.java
deleted file mode 100644
index fc80ad7fe..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDIssuingNationAttributeBuilder.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.protocols.builder.attributes;
-
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
-import at.gv.egovernment.moa.util.MiscUtil;
-
-public class EIDIssuingNationAttributeBuilder implements IPVPAttributeBuilder {
-
-	public String getName() {
-		return EID_ISSUING_NATION_NAME;
-	}
-
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
-		String countryCode = authData.getCcc();
-		if (MiscUtil.isNotEmpty(countryCode))
-			return g.buildStringAttribute(EID_ISSUING_NATION_FRIENDLY_NAME,
-					EID_ISSUING_NATION_NAME, countryCode);
-		
-		else
-			return null;
-	}
-
-	public <ATT> ATT buildEmpty(IAttributeGenerator<ATT> g) {
-		return g.buildEmptyAttribute(EID_ISSUING_NATION_FRIENDLY_NAME,
-				EID_ISSUING_NATION_NAME);
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDSTORKTOKEN.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDSTORKTOKEN.java
index 71fc7966c..b38660a57 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDSTORKTOKEN.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDSTORKTOKEN.java
@@ -26,11 +26,13 @@ import java.io.IOException;
 
 import org.springframework.util.Base64Utils;
 
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
+import at.gv.egiz.eaaf.core.exceptions.UnavailableAttributeException;
 import at.gv.egovernment.moa.id.auth.data.AuthenticationSessionStorageConstants;
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.UnavailableAttributeException;
 import at.gv.egovernment.moa.logging.Logger;
 import at.gv.egovernment.moa.util.MiscUtil;
 
@@ -41,8 +43,8 @@ public class EIDSTORKTOKEN implements IPVPAttributeBuilder  {
 		return EID_STORK_TOKEN_NAME;
 	}
 
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {
 		
 		
 		if (!authData.isForeigner()) {
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDSectorForIDAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDSectorForIDAttributeBuilder.java
index c3300d60f..783e044f8 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDSectorForIDAttributeBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDSectorForIDAttributeBuilder.java
@@ -22,11 +22,12 @@
  *******************************************************************************/
 package at.gv.egovernment.moa.id.protocols.builder.attributes;
 
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.config.auth.OAAuthParameter;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.UnavailableAttributeException;
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
+import at.gv.egiz.eaaf.core.exceptions.UnavailableAttributeException;
 import at.gv.egovernment.moa.util.MiscUtil;
 
 public class EIDSectorForIDAttributeBuilder implements IPVPAttributeBuilder {
@@ -35,8 +36,8 @@ public class EIDSectorForIDAttributeBuilder implements IPVPAttributeBuilder {
 		return EID_SECTOR_FOR_IDENTIFIER_NAME;
 	}
 
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {		
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {		
 		String bpktype = authData.getBPKType();
 		
 		if (MiscUtil.isEmpty(authData.getBPKType()))
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDSignerCertificate.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDSignerCertificate.java
index 4b4296536..2f18c78e2 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDSignerCertificate.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDSignerCertificate.java
@@ -25,10 +25,12 @@ package at.gv.egovernment.moa.id.protocols.builder.attributes;
 
 import org.springframework.util.Base64Utils;
 
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.UnavailableAttributeException;
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
+import at.gv.egiz.eaaf.core.exceptions.UnavailableAttributeException;
 import at.gv.egovernment.moa.logging.Logger;
 
 public class EIDSignerCertificate implements IPVPAttributeBuilder {
@@ -37,8 +39,8 @@ public class EIDSignerCertificate implements IPVPAttributeBuilder {
 		return EID_SIGNER_CERTIFICATE_NAME;
 	}
 
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {
 		
 		try {
 			byte[] signerCertificate = authData.getSignerCertificate();
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDSourcePIN.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDSourcePIN.java
deleted file mode 100644
index b4846db12..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDSourcePIN.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.protocols.builder.attributes;
-
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributePolicyException;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.UnavailableAttributeException;
-import at.gv.egovernment.moa.util.MiscUtil;
-
-public class EIDSourcePIN implements IPVPAttributeBuilder  {
-
-	public String getName() {
-		return EID_SOURCE_PIN_NAME;
-	}
-
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
-		
-		if (authData.isBaseIDTransferRestrication())
-			throw new AttributePolicyException(EID_SOURCE_PIN_NAME);
-		
-		else {
-			if (MiscUtil.isEmpty(authData.getIdentificationValue()))
-				throw new UnavailableAttributeException(EID_SOURCE_PIN_NAME);
-			
-			return g.buildStringAttribute(EID_SOURCE_PIN_FRIENDLY_NAME, EID_SOURCE_PIN_NAME, authData.getIdentificationValue());
-		}
-	}
-
-	public <ATT> ATT buildEmpty(IAttributeGenerator<ATT> g) {
-		return g.buildEmptyAttribute(EID_SOURCE_PIN_FRIENDLY_NAME, EID_SOURCE_PIN_NAME);
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDSourcePINType.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDSourcePINType.java
deleted file mode 100644
index ccaecb3b6..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDSourcePINType.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.protocols.builder.attributes;
-
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.UnavailableAttributeException;
-
-public class EIDSourcePINType implements IPVPAttributeBuilder {
-
-	public String getName() {
-		return EID_SOURCE_PIN_TYPE_NAME;
-	}
-	
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
-		
-		if (authData.isBaseIDTransferRestrication())
-			throw new UnavailableAttributeException(EID_SOURCE_PIN_TYPE_NAME);
-		
-		else {
-			return g.buildStringAttribute(EID_SOURCE_PIN_TYPE_FRIENDLY_NAME, EID_SOURCE_PIN_TYPE_NAME, authData.getIdentificationType());
-		}
-	}
-
-	public <ATT> ATT buildEmpty(IAttributeGenerator<ATT> g) {
-		return g.buildEmptyAttribute(EID_SOURCE_PIN_TYPE_FRIENDLY_NAME, EID_SOURCE_PIN_TYPE_NAME);
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDeIDASQAALevelAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDeIDASQAALevelAttributeBuilder.java
deleted file mode 100644
index ca3dfa765..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EIDeIDASQAALevelAttributeBuilder.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.protocols.builder.attributes;
-
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
-
-public class EIDeIDASQAALevelAttributeBuilder implements IPVPAttributeBuilder {
-
-	public String getName() {
-		return EID_CITIZEN_EIDAS_QAA_LEVEL_NAME;
-	}
-
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
-		
-		return g.buildStringAttribute(EID_CITIZEN_EIDAS_QAA_LEVEL_FRIENDLY_NAME, 
-				EID_CITIZEN_EIDAS_QAA_LEVEL_NAME, authData.getEIDASQAALevel());
-	}
-	
-	
-	public <ATT> ATT buildEmpty(IAttributeGenerator<ATT> g) {
-		return g.buildEmptyAttribute(EID_CITIZEN_EIDAS_QAA_LEVEL_FRIENDLY_NAME, 
-				EID_CITIZEN_EIDAS_QAA_LEVEL_NAME);
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EncryptedBPKAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EncryptedBPKAttributeBuilder.java
index 9dfbe00b2..e91bc90d6 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EncryptedBPKAttributeBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/EncryptedBPKAttributeBuilder.java
@@ -22,13 +22,12 @@
  *******************************************************************************/
 package at.gv.egovernment.moa.id.protocols.builder.attributes;
 
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.config.auth.OAAuthParameter;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.UnavailableAttributeException;
-import at.gv.egovernment.moa.logging.Logger;
-import at.gv.egovernment.moa.util.Constants;
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
+import at.gv.egiz.eaaf.core.exceptions.UnavailableAttributeException;
 
 public class EncryptedBPKAttributeBuilder implements IPVPAttributeBuilder {
 	
@@ -36,8 +35,8 @@ public class EncryptedBPKAttributeBuilder implements IPVPAttributeBuilder {
 		return ENC_BPK_LIST_NAME;
 	}
 	
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {
 
 		if (authData.getEncbPKList() != null &&
 				authData.getEncbPKList().size() > 0) {
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/GivenNameAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/GivenNameAttributeBuilder.java
deleted file mode 100644
index af87a319a..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/GivenNameAttributeBuilder.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.protocols.builder.attributes;
-
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.config.auth.OAAuthParameter;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
-
-public class GivenNameAttributeBuilder implements IPVPAttributeBuilder {
-
-	public String getName() {
-		return GIVEN_NAME_NAME;
-	}
-
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
-		return g.buildStringAttribute(GIVEN_NAME_FRIENDLY_NAME, GIVEN_NAME_NAME, authData.getGivenName());
-	}
-	
-	public <ATT> ATT buildEmpty(IAttributeGenerator<ATT> g) {
-		return g.buildEmptyAttribute(GIVEN_NAME_FRIENDLY_NAME, GIVEN_NAME_NAME);
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/HolderOfKey.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/HolderOfKey.java
index 1d3faff2d..e1e7440e6 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/HolderOfKey.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/HolderOfKey.java
@@ -24,11 +24,13 @@ package at.gv.egovernment.moa.id.protocols.builder.attributes;
 
 import java.io.IOException;
 
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
+import at.gv.egiz.eaaf.core.exceptions.UnavailableAttributeException;
 import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants;
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.UnavailableAttributeException;
 import at.gv.egovernment.moa.logging.Logger;
 import at.gv.egovernment.moa.util.Base64Utils;
 
@@ -38,8 +40,8 @@ public class HolderOfKey implements IPVPAttributeBuilder {
 		return PVP_HOLDEROFKEY_NAME;
 	}
 	
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {
 		
 		try {
 			byte[] certEncoded = authData.getGenericData(
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/IAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/IAttributeBuilder.java
deleted file mode 100644
index 5b44f02aa..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/IAttributeBuilder.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.protocols.builder.attributes;
-
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
-
-public interface IAttributeBuilder {
-	public String getName();
-	
-	public <ATT> ATT build(final IOAAuthParameters oaParam, final IAuthData authData,
-			final IAttributeGenerator<ATT> g) throws AttributeException;
-	
-	public <ATT> ATT buildEmpty(final IAttributeGenerator<ATT> g);
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/IAttributeGenerator.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/IAttributeGenerator.java
deleted file mode 100644
index ecd67db64..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/IAttributeGenerator.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.protocols.builder.attributes;
-
-public interface IAttributeGenerator<ATT> {
-	/**
-	 * 
-	 * @param friendlyName FriendlyName
-	 * @param name	Name
-	 * @param value value
-	 * @return
-	 */
-	public abstract ATT buildStringAttribute(final String friendlyName, final String name, final String value);
-	
-	public abstract ATT buildIntegerAttribute(final String friendlyName, final String name, final int value);
-	
-	public abstract ATT buildLongAttribute(final String friendlyName, final String name, final long value);
-	
-	public abstract ATT buildEmptyAttribute(final String friendlyName, final String name);
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/IPVPAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/IPVPAttributeBuilder.java
deleted file mode 100644
index dbb799256..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/IPVPAttributeBuilder.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.protocols.builder.attributes;
-
-import at.gv.egovernment.moa.id.protocols.pvp2x.PVPConstants;
-
-interface IPVPAttributeBuilder extends PVPConstants, IAttributeBuilder {
-	
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateFullMandateAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateFullMandateAttributeBuilder.java
index ffb69c2dc..007f7403a 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateFullMandateAttributeBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateFullMandateAttributeBuilder.java
@@ -28,9 +28,11 @@ import javax.xml.transform.TransformerException;
 
 import org.springframework.util.Base64Utils;
 
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;
 import at.gv.egovernment.moa.logging.Logger;
 import at.gv.egovernment.moa.util.DOMUtils;
@@ -41,8 +43,8 @@ public class MandateFullMandateAttributeBuilder implements IPVPAttributeBuilder
 		return MANDATE_FULL_MANDATE_NAME;
 	}
 
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {
 		if (authData.isUseMandate()) {
 			//only provide full mandate if it is included. 
 			//In case of federation only a short mandate could be include 
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateLegalPersonFullNameAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateLegalPersonFullNameAttributeBuilder.java
index f85fd7cae..e41a5ccf1 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateLegalPersonFullNameAttributeBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateLegalPersonFullNameAttributeBuilder.java
@@ -26,9 +26,11 @@ import org.w3c.dom.Element;
 
 import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;
 import at.gv.e_government.reference.namespace.persondata._20020228_.CorporateBodyType;
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;
 import at.gv.egovernment.moa.id.util.MandateBuilder;
 import at.gv.egovernment.moa.logging.Logger;
@@ -40,8 +42,8 @@ public class MandateLegalPersonFullNameAttributeBuilder implements IPVPAttribute
 		return MANDATE_LEG_PER_FULL_NAME_NAME;
 	}
 	
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {
 		if (authData.isUseMandate()) {
 			
 			//get PVP attribute directly, if exists 
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateLegalPersonSourcePinAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateLegalPersonSourcePinAttributeBuilder.java
index 7e0815ab2..e20cf6684 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateLegalPersonSourcePinAttributeBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateLegalPersonSourcePinAttributeBuilder.java
@@ -26,9 +26,11 @@ import org.w3c.dom.Element;
 
 import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;
 import at.gv.e_government.reference.namespace.persondata._20020228_.CorporateBodyType;
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;
 import at.gv.egovernment.moa.id.util.MandateBuilder;
 import at.gv.egovernment.moa.logging.Logger;
@@ -40,8 +42,8 @@ public class MandateLegalPersonSourcePinAttributeBuilder  implements IPVPAttribu
 		return MANDATE_LEG_PER_SOURCE_PIN_NAME;
 	}
 
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {
 		if(authData.isUseMandate()) {				
 			return g.buildStringAttribute(MANDATE_LEG_PER_SOURCE_PIN_FRIENDLY_NAME, 
 					MANDATE_LEG_PER_SOURCE_PIN_NAME, getLegalPersonIdentifierFromMandate(authData));
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateLegalPersonSourcePinTypeAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateLegalPersonSourcePinTypeAttributeBuilder.java
index 8b22acc01..098ecf68f 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateLegalPersonSourcePinTypeAttributeBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateLegalPersonSourcePinTypeAttributeBuilder.java
@@ -26,9 +26,11 @@ import org.w3c.dom.Element;
 
 import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;
 import at.gv.e_government.reference.namespace.persondata._20020228_.CorporateBodyType;
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;
 import at.gv.egovernment.moa.id.util.MandateBuilder;
 import at.gv.egovernment.moa.logging.Logger;
@@ -40,8 +42,8 @@ public class MandateLegalPersonSourcePinTypeAttributeBuilder implements IPVPAttr
 		return MANDATE_LEG_PER_SOURCE_PIN_TYPE_NAME;
 	}
 	
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {
 		if (authData.isUseMandate()) {
 			//get PVP attribute directly, if exists 
 			String sourcePinType = authData.getGenericData(MANDATE_LEG_PER_SOURCE_PIN_TYPE_NAME, String.class);
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonBPKAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonBPKAttributeBuilder.java
index ad469921c..ebec019ae 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonBPKAttributeBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonBPKAttributeBuilder.java
@@ -27,15 +27,18 @@ import org.w3c.dom.Element;
 import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;
 import at.gv.e_government.reference.namespace.persondata._20020228_.IdentificationType;
 import at.gv.e_government.reference.namespace.persondata._20020228_.PhysicalPersonType;
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
+import at.gv.egiz.eaaf.core.exceptions.UnavailableAttributeException;
 import at.gv.egovernment.moa.id.auth.builder.BPKBuilder;
 import at.gv.egovernment.moa.id.auth.exception.BuildException;
 import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
 import at.gv.egovernment.moa.id.commons.api.exceptions.ConfigurationException;
-import at.gv.egovernment.moa.id.data.IAuthData;
 import at.gv.egovernment.moa.id.data.Pair;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.UnavailableAttributeException;
 import at.gv.egovernment.moa.id.util.MandateBuilder;
 import at.gv.egovernment.moa.logging.Logger;
 import at.gv.egovernment.moa.util.Constants;
@@ -47,10 +50,10 @@ public class MandateNaturalPersonBPKAttributeBuilder implements IPVPAttributeBui
 		return MANDATE_NAT_PER_BPK_NAME;
 	}
 	
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {						
-		try {	
-			Pair<String, String> calcResult = internalBPKGenerator(oaParam, authData);
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {						
+		try {			
+			Pair<String, String> calcResult = internalBPKGenerator((IOAAuthParameters)oaParam, authData);
 			if (calcResult != null) {					
 				String bpk = calcResult.getFirst();
 				String type = calcResult.getSecond();
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonBirthDateAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonBirthDateAttributeBuilder.java
index ebba376f8..0b8263ffb 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonBirthDateAttributeBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonBirthDateAttributeBuilder.java
@@ -31,10 +31,12 @@ import org.w3c.dom.Element;
 
 import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;
 import at.gv.e_government.reference.namespace.persondata._20020228_.PhysicalPersonType;
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.InvalidDateFormatAttributeException;
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
+import at.gv.egiz.eaaf.core.exceptions.InvalidDateFormatAttributeException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;
 import at.gv.egovernment.moa.id.util.MandateBuilder;
 import at.gv.egovernment.moa.logging.Logger;
@@ -46,8 +48,8 @@ public class MandateNaturalPersonBirthDateAttributeBuilder implements IPVPAttrib
 		return MANDATE_NAT_PER_BIRTHDATE_NAME;
 	}
 	
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {
 		
 		String attrValue = internalAttributGeneration(oaParam, authData);
 		if (attrValue != null)
@@ -62,7 +64,7 @@ public class MandateNaturalPersonBirthDateAttributeBuilder implements IPVPAttrib
 	}
 	
 	
-	protected String internalAttributGeneration(IOAAuthParameters oaParam, IAuthData authData) throws InvalidDateFormatAttributeException, NoMandateDataAttributeException {		
+	protected String internalAttributGeneration(ISPConfiguration oaParam, IAuthData authData) throws InvalidDateFormatAttributeException, NoMandateDataAttributeException {		
 		if (authData.isUseMandate()) {
 			
 			//get PVP attribute directly, if exists 
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonFamilyNameAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonFamilyNameAttributeBuilder.java
index 07e5c9d09..38a520298 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonFamilyNameAttributeBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonFamilyNameAttributeBuilder.java
@@ -29,9 +29,11 @@ import org.w3c.dom.Element;
 import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;
 import at.gv.e_government.reference.namespace.persondata._20020228_.PersonNameType.FamilyName;
 import at.gv.e_government.reference.namespace.persondata._20020228_.PhysicalPersonType;
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;
 import at.gv.egovernment.moa.id.util.MandateBuilder;
 import at.gv.egovernment.moa.logging.Logger;
@@ -43,8 +45,8 @@ public class MandateNaturalPersonFamilyNameAttributeBuilder  implements IPVPAttr
 		return MANDATE_NAT_PER_FAMILY_NAME_NAME;
 	}
 
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {
 		if(authData.isUseMandate()) {
 			
 			//get PVP attribute directly, if exists 
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonGivenNameAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonGivenNameAttributeBuilder.java
index 51a3d2e74..be8e761e0 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonGivenNameAttributeBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonGivenNameAttributeBuilder.java
@@ -28,9 +28,11 @@ import org.w3c.dom.Element;
 
 import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;
 import at.gv.e_government.reference.namespace.persondata._20020228_.PhysicalPersonType;
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;
 import at.gv.egovernment.moa.id.util.MandateBuilder;
 import at.gv.egovernment.moa.logging.Logger;
@@ -42,8 +44,8 @@ public class MandateNaturalPersonGivenNameAttributeBuilder implements IPVPAttrib
 		return MANDATE_NAT_PER_GIVEN_NAME_NAME;
 	}
 	
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {
 		if (authData.isUseMandate()) {			
 			//get PVP attribute directly, if exists 
 			String givenName = authData.getGenericData(MANDATE_NAT_PER_GIVEN_NAME_NAME, String.class);
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonSourcePinAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonSourcePinAttributeBuilder.java
index 8be85415e..2890b72d9 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonSourcePinAttributeBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonSourcePinAttributeBuilder.java
@@ -27,10 +27,12 @@ import org.w3c.dom.Element;
 import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;
 import at.gv.e_government.reference.namespace.persondata._20020228_.IdentificationType;
 import at.gv.e_government.reference.namespace.persondata._20020228_.PhysicalPersonType;
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributePolicyException;
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
+import at.gv.egiz.eaaf.core.exceptions.AttributePolicyException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;
 import at.gv.egovernment.moa.id.util.MandateBuilder;
 import at.gv.egovernment.moa.logging.Logger;
@@ -41,8 +43,8 @@ public class MandateNaturalPersonSourcePinAttributeBuilder  implements IPVPAttri
 		return MANDATE_NAT_PER_SOURCE_PIN_NAME;
 	}
 
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {
 		if(authData.isUseMandate()) {
 			Element mandate = authData.getMandate();
 			if(mandate == null) {
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonSourcePinTypeAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonSourcePinTypeAttributeBuilder.java
index d89ae0225..6b3ed6768 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonSourcePinTypeAttributeBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonSourcePinTypeAttributeBuilder.java
@@ -27,9 +27,11 @@ import org.w3c.dom.Element;
 import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;
 import at.gv.e_government.reference.namespace.persondata._20020228_.IdentificationType;
 import at.gv.e_government.reference.namespace.persondata._20020228_.PhysicalPersonType;
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;
 import at.gv.egovernment.moa.id.util.MandateBuilder;
 import at.gv.egovernment.moa.logging.Logger;
@@ -40,8 +42,8 @@ public class MandateNaturalPersonSourcePinTypeAttributeBuilder implements IPVPAt
 		return MANDATE_NAT_PER_SOURCE_PIN_TYPE_NAME;
 	}
 
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {
 		if(authData.isUseMandate()) {
 			Element mandate = authData.getMandate();
 			if(mandate == null) {
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateProfRepDescAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateProfRepDescAttributeBuilder.java
index b7d21f903..d8804d395 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateProfRepDescAttributeBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateProfRepDescAttributeBuilder.java
@@ -25,10 +25,12 @@ package at.gv.egovernment.moa.id.protocols.builder.attributes;
 import org.w3c.dom.Element;
 
 import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
 import at.gv.egovernment.moa.id.commons.api.data.IMISMandate;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;
 import at.gv.egovernment.moa.id.util.MandateBuilder;
 import at.gv.egovernment.moa.util.MiscUtil;
@@ -39,8 +41,8 @@ public class MandateProfRepDescAttributeBuilder implements IPVPAttributeBuilder
 		return MANDATE_PROF_REP_DESC_NAME;
 	}
 
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {
 		if(authData.isUseMandate()) {						
 			String profRepName = authData.getGenericData(MANDATE_PROF_REP_DESC_NAME, String.class);
 			
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateProfRepOIDAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateProfRepOIDAttributeBuilder.java
index 04de3288a..555f92fe0 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateProfRepOIDAttributeBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateProfRepOIDAttributeBuilder.java
@@ -22,10 +22,12 @@
  *******************************************************************************/
 package at.gv.egovernment.moa.id.protocols.builder.attributes;
 
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
 import at.gv.egovernment.moa.id.commons.api.data.IMISMandate;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;
 import at.gv.egovernment.moa.util.MiscUtil;
 
@@ -35,8 +37,8 @@ public class MandateProfRepOIDAttributeBuilder implements IPVPAttributeBuilder {
 		return MANDATE_PROF_REP_OID_NAME;
 	}
 	
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {
 		if (authData.isUseMandate()) {			
 			String profRepOID = authData.getGenericData(MANDATE_PROF_REP_OID_NAME, String.class);			
 			
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateReferenceValueAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateReferenceValueAttributeBuilder.java
index 5ad562ffa..45cce5852 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateReferenceValueAttributeBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateReferenceValueAttributeBuilder.java
@@ -22,10 +22,11 @@
  *******************************************************************************/
 package at.gv.egovernment.moa.id.protocols.builder.attributes;
 
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.config.auth.OAAuthParameter;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
 
 public class MandateReferenceValueAttributeBuilder implements IPVPAttributeBuilder {
 	
@@ -33,8 +34,8 @@ public class MandateReferenceValueAttributeBuilder implements IPVPAttributeBuild
 		return MANDATE_REFERENCE_VALUE_NAME;
 	}
 	
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {
 		if (authData.isUseMandate()) {
 		
 			return g.buildStringAttribute(MANDATE_REFERENCE_VALUE_FRIENDLY_NAME, MANDATE_REFERENCE_VALUE_NAME,
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateTypeAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateTypeAttributeBuilder.java
index a531e31fc..3bc7d5a2d 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateTypeAttributeBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateTypeAttributeBuilder.java
@@ -25,9 +25,11 @@ package at.gv.egovernment.moa.id.protocols.builder.attributes;
 import org.w3c.dom.Element;
 
 import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;
 import at.gv.egovernment.moa.id.util.MandateBuilder;
 import at.gv.egovernment.moa.util.MiscUtil;
@@ -38,8 +40,8 @@ public class MandateTypeAttributeBuilder implements IPVPAttributeBuilder {
 		return MANDATE_TYPE_NAME;
 	}
 	
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {
 		if (authData.isUseMandate()) {						
 			//get PVP attribute directly, if exists 
 			String mandateType = authData.getGenericData(MANDATE_TYPE_NAME, String.class);
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateTypeOIDAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateTypeOIDAttributeBuilder.java
index b967ad42c..d5c89fc97 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateTypeOIDAttributeBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateTypeOIDAttributeBuilder.java
@@ -22,9 +22,11 @@
  *******************************************************************************/
 package at.gv.egovernment.moa.id.protocols.builder.attributes;
 
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
+import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator;
+import at.gv.egiz.eaaf.core.api.idp.IAuthData;
+import at.gv.egiz.eaaf.core.api.idp.IPVPAttributeBuilder;
+import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration;
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
 import at.gv.egovernment.moa.logging.Logger;
 import at.gv.egovernment.moa.util.MiscUtil;
 
@@ -34,8 +36,8 @@ public class MandateTypeOIDAttributeBuilder implements IPVPAttributeBuilder {
 		return MANDATE_TYPE_OID_NAME;
 	}
 	
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
+	public <ATT> ATT build(ISPConfiguration oaParam, IAuthData authData,
+			IAttributeGenerator<ATT> g) throws AttributeBuilderException {
 		if (authData.isUseMandate()) {						
 			//get PVP attribute directly, if exists 
 			String mandateType = authData.getGenericData(MANDATE_TYPE_OID_NAME, String.class);
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/PVPVersionAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/PVPVersionAttributeBuilder.java
deleted file mode 100644
index 285a6977f..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/PVPVersionAttributeBuilder.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.protocols.builder.attributes;
-
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.config.auth.OAAuthParameter;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
-
-public class PVPVersionAttributeBuilder implements IPVPAttributeBuilder {
-	
-	public String getName() {
-		return PVP_VERSION_NAME;
-	}
-	
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
-		return g.buildStringAttribute(PVP_VERSION_FRIENDLY_NAME, PVP_VERSION_NAME, PVP_VERSION_2_1);
-	}
-	
-	public <ATT> ATT buildEmpty(IAttributeGenerator<ATT> g) {
-		return g.buildEmptyAttribute(PVP_VERSION_FRIENDLY_NAME, PVP_VERSION_NAME);
-	}
-	
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/PrincipalNameAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/PrincipalNameAttributeBuilder.java
deleted file mode 100644
index b2465b5c1..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/PrincipalNameAttributeBuilder.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.protocols.builder.attributes;
-
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.config.auth.OAAuthParameter;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
-
-public class PrincipalNameAttributeBuilder implements IPVPAttributeBuilder {
-	
-	public String getName() {
-		return PRINCIPAL_NAME_NAME;
-	}
-	
-	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,
-			IAttributeGenerator<ATT> g) throws AttributeException {
-		return g.buildStringAttribute(PRINCIPAL_NAME_FRIENDLY_NAME, PRINCIPAL_NAME_NAME, authData.getFamilyName());
-	}
-	
-	public <ATT> ATT buildEmpty(IAttributeGenerator<ATT> g) {
-		return g.buildEmptyAttribute(PRINCIPAL_NAME_FRIENDLY_NAME, PRINCIPAL_NAME_NAME);
-	}
-	
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/AttributQueryAction.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/AttributQueryAction.java
index 4ef9fa05e..cc48873af 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/AttributQueryAction.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/AttributQueryAction.java
@@ -42,20 +42,20 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationContext;
 import org.springframework.stereotype.Service;
 
+import at.gv.egiz.eaaf.core.api.IAction;
+import at.gv.egiz.eaaf.core.api.IOAAuthParameters;
+import at.gv.egiz.eaaf.core.api.IRequest;
+import at.gv.egiz.eaaf.core.api.data.IAuthData;
+import at.gv.egiz.eaaf.core.api.data.SLOInformationInterface;
 import at.gv.egovernment.moa.id.auth.builder.AuthenticationDataBuilder;
 import at.gv.egovernment.moa.id.auth.builder.DynamicOAAuthParameterBuilder;
 import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;
 import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
 import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
 import at.gv.egovernment.moa.id.commons.db.dao.session.InterfederationSessionStore;
 import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;
 import at.gv.egovernment.moa.id.config.auth.OAAuthParameter;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.data.SLOInformationInterface;
 import at.gv.egovernment.moa.id.data.Trible;
-import at.gv.egovernment.moa.id.moduls.IAction;
 import at.gv.egovernment.moa.id.protocols.pvp2x.binding.SoapBinding;
 import at.gv.egovernment.moa.id.protocols.pvp2x.builder.AuthResponseBuilder;
 import at.gv.egovernment.moa.id.protocols.pvp2x.builder.PVPAttributeBuilder;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/AuthenticationAction.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/AuthenticationAction.java
index 9d60ae4b2..a8adc9ca0 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/AuthenticationAction.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/AuthenticationAction.java
@@ -38,13 +38,13 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationContext;
 import org.springframework.stereotype.Service;
 
+import at.gv.egiz.eaaf.core.api.IAction;
+import at.gv.egiz.eaaf.core.api.IRequest;
+import at.gv.egiz.eaaf.core.api.data.IAuthData;
+import at.gv.egiz.eaaf.core.api.data.SLOInformationInterface;
 import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
 import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
-import at.gv.egovernment.moa.id.data.IAuthData;
 import at.gv.egovernment.moa.id.data.SLOInformationImpl;
-import at.gv.egovernment.moa.id.data.SLOInformationInterface;
-import at.gv.egovernment.moa.id.moduls.IAction;
 import at.gv.egovernment.moa.id.protocols.pvp2x.binding.IEncoder;
 import at.gv.egovernment.moa.id.protocols.pvp2x.binding.PostBinding;
 import at.gv.egovernment.moa.id.protocols.pvp2x.binding.RedirectBinding;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/MetadataAction.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/MetadataAction.java
index 851f47a68..baaf8b681 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/MetadataAction.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/MetadataAction.java
@@ -30,13 +30,13 @@ import org.springframework.stereotype.Service;
 
 import com.google.common.net.MediaType;
 
+import at.gv.egiz.eaaf.core.api.IAction;
+import at.gv.egiz.eaaf.core.api.IRequest;
+import at.gv.egiz.eaaf.core.api.data.IAuthData;
+import at.gv.egiz.eaaf.core.api.data.SLOInformationInterface;
+import at.gv.egiz.eaaf.core.api.logging.IRevisionLogger;
 import at.gv.egovernment.moa.id.advancedlogging.MOAIDEventConstants;
-import at.gv.egovernment.moa.id.advancedlogging.MOAReversionLogger;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
 import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.data.SLOInformationInterface;
-import at.gv.egovernment.moa.id.moduls.IAction;
 import at.gv.egovernment.moa.id.protocols.pvp2x.builder.PVPMetadataBuilder;
 import at.gv.egovernment.moa.id.protocols.pvp2x.config.IDPPVPMetadataConfiguration;
 import at.gv.egovernment.moa.id.protocols.pvp2x.config.IPVPMetadataBuilderConfiguration;
@@ -48,7 +48,7 @@ public class MetadataAction implements IAction {
 
 	
 
-	@Autowired private MOAReversionLogger revisionsLogger;
+	@Autowired private IRevisionLogger revisionsLogger;
 	@Autowired private IDPCredentialProvider credentialProvider;
 	@Autowired private PVPMetadataBuilder metadatabuilder;
 	
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVP2XProtocol.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVP2XProtocol.java
index 4b9b21093..e6298527b 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVP2XProtocol.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVP2XProtocol.java
@@ -55,19 +55,21 @@ import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 
+import at.gv.egiz.eaaf.core.api.IOAAuthParameters;
+import at.gv.egiz.eaaf.core.api.IRequest;
+import at.gv.egiz.eaaf.core.exceptions.AuthnRequestValidatorException;
+import at.gv.egiz.eaaf.core.exceptions.InvalidProtocolRequestException;
+import at.gv.egiz.eaaf.core.exceptions.NoPassivAuthenticationException;
+import at.gv.egiz.eaaf.core.exceptions.ProtocolNotActiveException;
+import at.gv.egiz.eaaf.core.impl.idp.controller.AbstractAuthProtocolModulController;
+import at.gv.egiz.eaaf.core.impl.utils.HTTPUtils;
 import at.gv.egovernment.moa.id.advancedlogging.MOAIDEventConstants;
-import at.gv.egovernment.moa.id.auth.exception.InvalidProtocolRequestException;
-import at.gv.egovernment.moa.id.auth.exception.ProtocolNotActiveException;
 import at.gv.egovernment.moa.id.auth.exception.WrongParametersException;
 import at.gv.egovernment.moa.id.auth.frontend.velocity.VelocityLogAdapter;
 import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants;
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
 import at.gv.egovernment.moa.id.commons.api.data.IAuthenticationSession;
 import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
 import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProviderFactory;
-import at.gv.egovernment.moa.id.moduls.NoPassivAuthenticationException;
-import at.gv.egovernment.moa.id.protocols.AbstractAuthProtocolModulController;
 import at.gv.egovernment.moa.id.protocols.pvp2x.binding.IEncoder;
 import at.gv.egovernment.moa.id.protocols.pvp2x.binding.MOAURICompare;
 import at.gv.egovernment.moa.id.protocols.pvp2x.binding.PostBinding;
@@ -76,7 +78,6 @@ import at.gv.egovernment.moa.id.protocols.pvp2x.binding.SoapBinding;
 import at.gv.egovernment.moa.id.protocols.pvp2x.config.PVPConfiguration;
 import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.AssertionValidationExeption;
 import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.AttributQueryException;
-import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.AuthnRequestValidatorException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.InvalidAssertionConsumerServiceException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.MandateAttributesNotHandleAbleException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.NameIDFormatNotSupportedException;
@@ -94,7 +95,6 @@ import at.gv.egovernment.moa.id.protocols.pvp2x.validation.AuthnRequestValidator
 import at.gv.egovernment.moa.id.protocols.pvp2x.verification.SAMLVerificationEngineSP;
 import at.gv.egovernment.moa.id.protocols.pvp2x.verification.TrustEngineFactory;
 import at.gv.egovernment.moa.id.util.ErrorResponseUtils;
-import at.gv.egovernment.moa.id.util.HTTPUtils;
 import at.gv.egovernment.moa.id.util.ParamValidatorUtils;
 import at.gv.egovernment.moa.logging.Logger;
 import at.gv.egovernment.moa.util.MiscUtil;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVPAssertionStorage.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVPAssertionStorage.java
index 62105abda..46e5b83f6 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVPAssertionStorage.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVPAssertionStorage.java
@@ -28,9 +28,9 @@ import org.opensaml.xml.io.MarshallingException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import at.gv.egiz.eaaf.core.api.storage.ITransactionStorage;
 import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.utils.StoredAssertion;
-import at.gv.egovernment.moa.id.storage.ITransactionStorage;
 
 @Service("PVPAssertionStorage")
 public class PVPAssertionStorage implements SAMLArtifactMap {
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVPConstants.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVPConstants.java
index 95e3c5bc2..67e7a47f3 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVPConstants.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVPConstants.java
@@ -29,9 +29,10 @@ import java.util.List;
 import org.opensaml.xml.encryption.EncryptionConstants;
 import org.opensaml.xml.signature.SignatureConstants;
 
+import at.gv.egiz.eaaf.core.api.data.PVPAttributeConstants;
 import at.gv.egovernment.moa.id.data.Trible;
 
-public interface PVPConstants {
+public interface PVPConstants extends PVPAttributeConstants {
 	
 	public static final String SSLSOCKETFACTORYNAME = "MOAMetaDataProvider";
 		
@@ -54,249 +55,6 @@ public interface PVPConstants {
 	
 	public static final String STORK_ATTRIBUTE_PREFIX = "http://www.stork.gov.eu/";
 	
-	public static final String URN_OID_PREFIX = "urn:oid:";
-	
-	public static final String PVP_VERSION_OID = "1.2.40.0.10.2.1.1.261.10";
-	public static final String PVP_VERSION_NAME = URN_OID_PREFIX + PVP_VERSION_OID;
-	public static final String PVP_VERSION_FRIENDLY_NAME = "PVP-VERSION";
-	public static final String PVP_VERSION_2_1 = "2.1";
-
-	
-	public static final String SECCLASS_OID = "1.2.40.0.10.2.1.1.261.110";
-	public static final String SECCLASS_FRIENDLY_NAME = "SECCLASS";
-	public static final String SECCLASS_NAME = URN_OID_PREFIX + SECCLASS_OID;
-	public static final int SECCLASS_MAX_LENGTH = 128;
-	
-	public static final String PRINCIPAL_NAME_OID = "1.2.40.0.10.2.1.1.261.20";
-	public static final String PRINCIPAL_NAME_NAME = URN_OID_PREFIX + PRINCIPAL_NAME_OID;
-	public static final String PRINCIPAL_NAME_FRIENDLY_NAME = "PRINCIPAL-NAME";
-	public static final int PRINCIPAL_NAME_MAX_LENGTH = 128;
-	
-	public static final String GIVEN_NAME_OID = "2.5.4.42";
-	public static final String GIVEN_NAME_NAME = URN_OID_PREFIX + GIVEN_NAME_OID;
-	public static final String GIVEN_NAME_FRIENDLY_NAME = "GIVEN-NAME";
-	public static final int GIVEN_NAME_MAX_LENGTH = 128;
-	
-	public static final String BIRTHDATE_OID = "1.2.40.0.10.2.1.1.55";
-	public static final String BIRTHDATE_NAME = URN_OID_PREFIX + BIRTHDATE_OID;
-	public static final String BIRTHDATE_FRIENDLY_NAME = "BIRTHDATE";
-	public static final String BIRTHDATE_FORMAT_PATTERN = "yyyy-MM-dd";
-	
-	public static final String USERID_OID = "0.9.2342.19200300.100.1.1";
-	public static final String USERID_NAME = URN_OID_PREFIX + USERID_OID;
-	public static final String USERID_FRIENDLY_NAME = "USERID";
-	public static final int USERID_MAX_LENGTH = 128;
-	
-	public static final String GID_OID = "1.2.40.0.10.2.1.1.1";
-	public static final String GID_NAME = URN_OID_PREFIX + GID_OID;
-	public static final String GID_FRIENDLY_NAME = "GID";
-	public static final int GID_MAX_LENGTH = 128;
-	
-	public static final String BPK_OID = "1.2.40.0.10.2.1.1.149";
-	public static final String BPK_NAME = URN_OID_PREFIX + BPK_OID;
-	public static final String BPK_FRIENDLY_NAME = "BPK";
-	public static final int BPK_MAX_LENGTH = 1024;
-	
-	public static final String ENC_BPK_LIST_OID = "1.2.40.0.10.2.1.1.261.22";
-	public static final String ENC_BPK_LIST_NAME = URN_OID_PREFIX+ENC_BPK_LIST_OID;
-	public static final String ENC_BPK_LIST_FRIENDLY_NAME = "ENC-BPK-LIST";
-	public static final int ENC_BPK_LIST_MAX_LENGTH = 32767;
-	
-	public static final String MAIL_OID = "0.9.2342.19200300.100.1.3";
-	public static final String MAIL_NAME = URN_OID_PREFIX + MAIL_OID;
-	public static final String MAIL_FRIENDLY_NAME = "MAIL";
-	public static final int MAIL_MAX_LENGTH = 128;
-	
-	public static final String TEL_OID = "2.5.4.20";
-	public static final String TEL_NAME = URN_OID_PREFIX + TEL_OID;
-	public static final String TEL_FRIENDLY_NAME = "TEL";
-	public static final int TEL_MAX_LENGTH = 32;
-	
-	public static final String PARTICIPANT_ID_OID = "1.2.40.0.10.2.1.1.71";
-	public static final String PARTICIPANT_ID_NAME = URN_OID_PREFIX + PARTICIPANT_ID_OID;
-	public static final String PARTICIPANT_ID_FRIENDLY_NAME = "PARTICIPANT-ID";
-	public static final int PARTICIPANT_MAX_LENGTH = 39;
-	
-	public static final String PARTICIPANT_OKZ_OID = "1.2.40.0.10.2.1.1.261.24";
-	public static final String PARTICIPANT_OKZ_NAME = URN_OID_PREFIX + PARTICIPANT_OKZ_OID;
-	public static final String PARTICIPANT_OKZ_FRIENDLY_NAME = "PARTICIPANT-OKZ";
-	public static final int PARTICIPANT_OKZ_MAX_LENGTH = 32;
-	
-	public static final String OU_OKZ_OID = "1.2.40.0.10.2.1.1.153";
-	public static final String OU_OKZ_NAME =  URN_OID_PREFIX + OU_OKZ_OID;
-	public static final int OU_OKZ_MAX_LENGTH = 32;
-	
-	public static final String OU_GV_OU_ID_OID = "1.2.40.0.10.2.1.1.3";
-	public static final String OU_GV_OU_ID_NAME = URN_OID_PREFIX + OU_GV_OU_ID_OID;
-	public static final String OU_GV_OU_ID_FRIENDLY_NAME = "OU-GV-OU-ID";
-	public static final int OU_GV_OU_ID_MAX_LENGTH = 39;
-	
-	public static final String OU_OID = "2.5.4.11";
-	public static final String OU_NAME = URN_OID_PREFIX + OU_OID;
-	public static final String OU_FRIENDLY_NAME = "OU";
-	public static final int OU_MAX_LENGTH = 64;
-	
-	public static final String FUNCTION_OID = "1.2.40.0.10.2.1.1.33";
-	public static final String FUNCTION_NAME = URN_OID_PREFIX + FUNCTION_OID;
-	public static final String FUNCTION_FRIENDLY_NAME = "FUNCTION";
-	public static final int FUNCTION_MAX_LENGTH = 32;
-	
-	public static final String ROLES_OID = "1.2.40.0.10.2.1.1.261.30";
-	public static final String ROLES_NAME = URN_OID_PREFIX + ROLES_OID;
-	public static final String ROLES_FRIENDLY_NAME = "ROLES";
-	public static final int ROLES_MAX_LENGTH = 32767;
-	
-	@Deprecated public static final String EID_CITIZEN_QAA_LEVEL_OID = "1.2.40.0.10.2.1.1.261.94";	
-	@Deprecated public static final String EID_CITIZEN_QAA_LEVEL_NAME = URN_OID_PREFIX + EID_CITIZEN_QAA_LEVEL_OID;
-	@Deprecated public static final String EID_CITIZEN_QAA_LEVEL_FRIENDLY_NAME = "EID-CITIZEN-QAA-LEVEL";
-	
-	public static final String EID_CITIZEN_EIDAS_QAA_LEVEL_OID = "1.2.40.0.10.2.1.1.261.108";	
-	public static final String EID_CITIZEN_EIDAS_QAA_LEVEL_NAME = URN_OID_PREFIX + EID_CITIZEN_EIDAS_QAA_LEVEL_OID;
-	public static final String EID_CITIZEN_EIDAS_QAA_LEVEL_FRIENDLY_NAME = "EID-CITIZEN-QAA-EIDAS-LEVEL";
-	
-	public static final String EID_ISSUING_NATION_OID = "1.2.40.0.10.2.1.1.261.32";
-	public static final String EID_ISSUING_NATION_NAME = URN_OID_PREFIX + EID_ISSUING_NATION_OID;
-	public static final String EID_ISSUING_NATION_FRIENDLY_NAME = "EID-ISSUING-NATION";
-	public static final int EID_ISSUING_NATION_MAX_LENGTH = 2;
-	
-	public static final String EID_SECTOR_FOR_IDENTIFIER_OID = "1.2.40.0.10.2.1.1.261.34";
-	public static final String EID_SECTOR_FOR_IDENTIFIER_NAME = URN_OID_PREFIX + EID_SECTOR_FOR_IDENTIFIER_OID;
-	public static final String EID_SECTOR_FOR_IDENTIFIER_FRIENDLY_NAME = "EID-SECTOR-FOR-IDENTIFIER";
-	public static final int EID_SECTOR_FOR_IDENTIFIER_MAX_LENGTH = 255;
-	
-	public static final String EID_SOURCE_PIN_OID = "1.2.40.0.10.2.1.1.261.36";
-	public static final String EID_SOURCE_PIN_NAME = URN_OID_PREFIX + EID_SOURCE_PIN_OID;
-	public static final String EID_SOURCE_PIN_FRIENDLY_NAME = "EID-SOURCE-PIN";
-	public static final int EID_SOURCE_PIN_MAX_LENGTH = 128;
-	
-	public static final String EID_SOURCE_PIN_TYPE_OID = "1.2.40.0.10.2.1.1.261.104";
-	public static final String EID_SOURCE_PIN_TYPE_NAME = URN_OID_PREFIX + EID_SOURCE_PIN_TYPE_OID;
-	public static final String EID_SOURCE_PIN_TYPE_FRIENDLY_NAME = "EID-SOURCE-PIN-TYPE";
-	public static final int EID_SOURCE_PIN_TYPE_MAX_LENGTH = 128;
-	
-	public static final String EID_IDENTITY_LINK_OID = "1.2.40.0.10.2.1.1.261.38";
-	public static final String EID_IDENTITY_LINK_NAME = URN_OID_PREFIX + EID_IDENTITY_LINK_OID;
-	public static final String EID_IDENTITY_LINK_FRIENDLY_NAME = "EID-IDENTITY-LINK";
-	public static final int EID_IDENTITY_LINK_MAX_LENGTH = 32767;
-	
-	public static final String EID_AUTH_BLOCK_OID = "1.2.40.0.10.2.1.1.261.62";
-	public static final String EID_AUTH_BLOCK_NAME = URN_OID_PREFIX + EID_AUTH_BLOCK_OID;
-	public static final String EID_AUTH_BLOCK_FRIENDLY_NAME = "EID-AUTH-BLOCK";
-	public static final int EID_AUTH_BLOCK_MAX_LENGTH = 32767;
-	
-	public static final String EID_CCS_URL_OID = "1.2.40.0.10.2.1.1.261.64";
-	public static final String EID_CCS_URL_NAME = URN_OID_PREFIX + EID_CCS_URL_OID;
-	public static final String EID_CCS_URL_FRIENDLY_NAME = "EID-CCS-URL";
-	public static final int EID_CCS_URL_MAX_LENGTH = 1024;
-	
-	public static final String EID_SIGNER_CERTIFICATE_OID = "1.2.40.0.10.2.1.1.261.66";
-	public static final String EID_SIGNER_CERTIFICATE_NAME = URN_OID_PREFIX + EID_SIGNER_CERTIFICATE_OID;
-	public static final String EID_SIGNER_CERTIFICATE_FRIENDLY_NAME = "EID-SIGNER-CERTIFICATE";
-	public static final int EID_SIGNER_CERTIFICATE_MAX_LENGTH = 32767;
-	
-	public static final String EID_STORK_TOKEN_OID = "1.2.40.0.10.2.1.1.261.96";
-	public static final String EID_STORK_TOKEN_NAME = URN_OID_PREFIX + EID_STORK_TOKEN_OID;
-	public static final String EID_STORK_TOKEN_FRIENDLY_NAME = "EID-STORK-TOKEN";
-	public static final int EID_STORK_TOKEN_MAX_LENGTH = 32767;
-	
-	public static final String MANDATE_TYPE_OID = "1.2.40.0.10.2.1.1.261.68";
-	public static final String MANDATE_TYPE_NAME = URN_OID_PREFIX + MANDATE_TYPE_OID;
-	public static final String MANDATE_TYPE_FRIENDLY_NAME = "MANDATE-TYPE";
-	public static final int MANDATE_TYPE_MAX_LENGTH = 256;
-	
-	public static final String MANDATE_TYPE_OID_OID = "1.2.40.0.10.2.1.1.261.106";
-	public static final String MANDATE_TYPE_OID_NAME = URN_OID_PREFIX + MANDATE_TYPE_OID_OID;
-	public static final String MANDATE_TYPE_OID_FRIENDLY_NAME = "MANDATE-TYPE-OID";
-	public static final int MANDATE_TYPE_OID_MAX_LENGTH = 256;
-	
-	public static final String MANDATE_NAT_PER_SOURCE_PIN_OID = "1.2.40.0.10.2.1.1.261.70";
-	public static final String MANDATE_NAT_PER_SOURCE_PIN_NAME = URN_OID_PREFIX + MANDATE_NAT_PER_SOURCE_PIN_OID;
-	public static final String MANDATE_NAT_PER_SOURCE_PIN_FRIENDLY_NAME = "MANDATOR-NATURAL-PERSON-SOURCE-PIN";
-	public static final int MANDATE_NAT_PER_SOURCE_PIN_MAX_LENGTH = 128;
-	
-	public static final String MANDATE_LEG_PER_SOURCE_PIN_OID = "1.2.40.0.10.2.1.1.261.100";
-	public static final String MANDATE_LEG_PER_SOURCE_PIN_NAME = URN_OID_PREFIX + MANDATE_LEG_PER_SOURCE_PIN_OID;
-	public static final String MANDATE_LEG_PER_SOURCE_PIN_FRIENDLY_NAME = "MANDATOR-LEGAL-PERSON-SOURCE-PIN";
-	public static final int MANDATE_LEG_PER_SOURCE_PIN_MAX_LENGTH = 128;
-	
-	public static final String MANDATE_NAT_PER_SOURCE_PIN_TYPE_OID = "1.2.40.0.10.2.1.1.261.102";
-	public static final String MANDATE_NAT_PER_SOURCE_PIN_TYPE_NAME = URN_OID_PREFIX + MANDATE_NAT_PER_SOURCE_PIN_TYPE_OID;
-	public static final String MANDATE_NAT_PER_SOURCE_PIN_TYPE_FRIENDLY_NAME = "MANDATOR-NATURAL-PERSON-SOURCE-PIN-TYPE";
-	public static final int MANDATE_NAT_PER_SOURCE_PIN_TYPE_MAX_LENGTH = 128;
-	
-	public static final String MANDATE_LEG_PER_SOURCE_PIN_TYPE_OID = "1.2.40.0.10.2.1.1.261.76";
-	public static final String MANDATE_LEG_PER_SOURCE_PIN_TYPE_NAME = URN_OID_PREFIX + MANDATE_LEG_PER_SOURCE_PIN_TYPE_OID;
-	public static final String MANDATE_LEG_PER_SOURCE_PIN_TYPE_FRIENDLY_NAME = "MANDATOR-LEGAL-PERSON-SOURCE-PIN-TYPE";
-	public static final int MANDATE_LEG_PER_SOURCE_PIN_TYPE_MAX_LENGTH = 128;
-	
-	public static final String MANDATE_NAT_PER_BPK_OID = "1.2.40.0.10.2.1.1.261.98";
-	public static final String MANDATE_NAT_PER_BPK_NAME = URN_OID_PREFIX + MANDATE_NAT_PER_BPK_OID;
-	public static final String MANDATE_NAT_PER_BPK_FRIENDLY_NAME = "MANDATOR-NATURAL-PERSON-BPK";
-	public static final int MANDATE_NAT_PER_BPK_MAX_LENGTH = 1024;
-	
-	public static final String MANDATE_NAT_PER_ENC_BPK_LIST_OID = "1.2.40.0.10.2.1.1.261.72";
-	public static final String MANDATE_NAT_PER_ENC_BPK_LIST_NAME = URN_OID_PREFIX + MANDATE_NAT_PER_ENC_BPK_LIST_OID;
-	public static final String MANDATE_NAT_PER_ENC_BPK_LIST_FRIENDLY_NAME = "MANDATOR-NATURAL-PERSON-ENC-BPK-LIST";
-	public static final int MANDATE_NAT_PER_ENC_BPK_LIST_MAX_LENGTH = 32767;
-	
-	public static final String MANDATE_NAT_PER_GIVEN_NAME_OID = "1.2.40.0.10.2.1.1.261.78";
-	public static final String MANDATE_NAT_PER_GIVEN_NAME_NAME = URN_OID_PREFIX + MANDATE_NAT_PER_GIVEN_NAME_OID;
-	public static final String MANDATE_NAT_PER_GIVEN_NAME_FRIENDLY_NAME = "MANDATOR-NATURAL-PERSON-GIVEN-NAME";
-	public static final int MANDATE_NAT_PER_GIVEN_NAME_MAX_LENGTH = 128;
-	
-	public static final String MANDATE_NAT_PER_FAMILY_NAME_OID = "1.2.40.0.10.2.1.1.261.80";
-	public static final String MANDATE_NAT_PER_FAMILY_NAME_NAME = URN_OID_PREFIX + MANDATE_NAT_PER_FAMILY_NAME_OID;
-	public static final String MANDATE_NAT_PER_FAMILY_NAME_FRIENDLY_NAME = "MANDATOR-NATURAL-PERSON-FAMILY-NAME";
-	public static final int MANDATE_NAT_PER_FAMILY_NAME_MAX_LENGTH = 128;
-	
-	public static final String MANDATE_NAT_PER_BIRTHDATE_OID = "1.2.40.0.10.2.1.1.261.82";
-	public static final String MANDATE_NAT_PER_BIRTHDATE_NAME = URN_OID_PREFIX + MANDATE_NAT_PER_BIRTHDATE_OID;
-	public static final String MANDATE_NAT_PER_BIRTHDATE_FRIENDLY_NAME = "MANDATOR-NATURAL-PERSON-BIRTHDATE";
-	public static final String MANDATE_NAT_PER_BIRTHDATE_FORMAT_PATTERN = BIRTHDATE_FORMAT_PATTERN;
-	
-	public static final String MANDATE_LEG_PER_FULL_NAME_OID = "1.2.40.0.10.2.1.1.261.84";
-	public static final String MANDATE_LEG_PER_FULL_NAME_NAME = URN_OID_PREFIX + MANDATE_LEG_PER_FULL_NAME_OID;
-	public static final String MANDATE_LEG_PER_FULL_NAME_FRIENDLY_NAME = "MANDATOR-LEGAL-PERSON-FULL-NAME";
-	public static final int MANDATE_LEG_PER_FULL_NAME_MAX_LENGTH = 256;
-	
-	public static final String MANDATE_PROF_REP_OID_OID = "1.2.40.0.10.2.1.1.261.86";
-	public static final String MANDATE_PROF_REP_OID_NAME = URN_OID_PREFIX + MANDATE_PROF_REP_OID_OID;
-	public static final String MANDATE_PROF_REP_OID_FRIENDLY_NAME = "MANDATE-PROF-REP-OID";
-	public static final int MANDATE_PROF_REP_OID_MAX_LENGTH = 256;
-	
-	public static final String MANDATE_PROF_REP_DESC_OID = "1.2.40.0.10.2.1.1.261.88";
-	public static final String MANDATE_PROF_REP_DESC_NAME = URN_OID_PREFIX + MANDATE_PROF_REP_DESC_OID;
-	public static final String MANDATE_PROF_REP_DESC_FRIENDLY_NAME = "MANDATE-PROF-REP-DESCRIPTION";
-	public static final int MANDATE_PROF_REP_DESC_MAX_LENGTH = 1024;
-	
-	public static final String MANDATE_REFERENCE_VALUE_OID = "1.2.40.0.10.2.1.1.261.90";
-	public static final String MANDATE_REFERENCE_VALUE_NAME = URN_OID_PREFIX + MANDATE_REFERENCE_VALUE_OID;
-	public static final String MANDATE_REFERENCE_VALUE_FRIENDLY_NAME = "MANDATE-REFERENCE-VALUE";
-	public static final int MANDATE_REFERENCE_VALUE_MAX_LENGTH = 100;
-	
-	public static final String MANDATE_FULL_MANDATE_OID = "1.2.40.0.10.2.1.1.261.92";
-	public static final String MANDATE_FULL_MANDATE_NAME = URN_OID_PREFIX + MANDATE_FULL_MANDATE_OID;
-	public static final String MANDATE_FULL_MANDATE_FRIENDLY_NAME = "MANDATE-FULL-MANDATE";
-	public static final int MANDATE_FULL_MANDATE_MAX_LENGTH = 32767;
-	
-	public static final String INVOICE_RECPT_ID_OID = "1.2.40.0.10.2.1.1.261.40";
-	public static final String INVOICE_RECPT_ID_NAME = URN_OID_PREFIX + INVOICE_RECPT_ID_OID;
-	public static final String INVOICE_RECPT_ID_FRIENDLY_NAME = "INVOICE-RECPT-ID";
-	public static final int INVOICE_RECPT_ID_MAX_LENGTH = 64;
-	
-	public static final String COST_CENTER_ID_OID = "1.2.40.0.10.2.1.1.261.50";
-	public static final String COST_CENTER_ID_NAME = URN_OID_PREFIX + COST_CENTER_ID_OID;
-	public static final String COST_CENTER_ID_FRIENDLY_NAME = "COST-CENTER-ID";
-	public static final int COST_CENTER_ID_MAX_LENGTH = 32767;
-	
-	public static final String CHARGE_CODE_OID = "1.2.40.0.10.2.1.1.261.60";
-	public static final String CHARGE_CODE_NAME = URN_OID_PREFIX + CHARGE_CODE_OID;
-	public static final String CHARGE_CODE_FRIENDLY_NAME = "CHARGE-CODE";
-	public static final int CHARGE_CODE_MAX_LENGTH = 32767;
-	
-	public static final String PVP_HOLDEROFKEY_OID = "1.2.40.0.10.2.1.1.261.xx.xx";
-	public static final String PVP_HOLDEROFKEY_NAME = URN_OID_PREFIX + PVP_HOLDEROFKEY_OID;
-	public static final String PVP_HOLDEROFKEY_FRIENDLY_NAME = "HOLDER-OF-KEY-CERTIFICATE";
 	
 	
 	
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVPTargetConfiguration.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVPTargetConfiguration.java
index caf66942e..060a5fcc2 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVPTargetConfiguration.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVPTargetConfiguration.java
@@ -37,7 +37,7 @@ import org.springframework.beans.factory.config.BeanDefinition;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Component;
 
-import at.gv.egovernment.moa.id.moduls.RequestImpl;
+import at.gv.egiz.eaaf.core.impl.idp.controller.protocols.RequestImpl;
 import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.NoMetadataInformationException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.messages.InboundMessage;
 import at.gv.egovernment.moa.id.protocols.pvp2x.messages.MOARequest;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/SingleLogOutAction.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/SingleLogOutAction.java
index f709da213..2d8d0f66f 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/SingleLogOutAction.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/SingleLogOutAction.java
@@ -35,30 +35,30 @@ import org.opensaml.saml2.metadata.SingleLogoutService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import at.gv.egiz.eaaf.core.api.IAction;
+import at.gv.egiz.eaaf.core.api.IRequest;
+import at.gv.egiz.eaaf.core.api.data.IAuthData;
+import at.gv.egiz.eaaf.core.api.data.ISLOInformationContainer;
+import at.gv.egiz.eaaf.core.api.data.SLOInformationInterface;
+import at.gv.egiz.eaaf.core.api.logging.IRevisionLogger;
+import at.gv.egiz.eaaf.core.api.storage.ITransactionStorage;
+import at.gv.egiz.eaaf.core.impl.idp.auth.AuthenticationManager;
+import at.gv.egiz.eaaf.core.impl.utils.Random;
 import at.gv.egovernment.moa.id.advancedlogging.MOAIDEventConstants;
-import at.gv.egovernment.moa.id.advancedlogging.MOAReversionLogger;
 import at.gv.egovernment.moa.id.auth.exception.AuthenticationException;
 import at.gv.egovernment.moa.id.auth.servlet.RedirectServlet;
 import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
 import at.gv.egovernment.moa.id.commons.api.data.IAuthenticationSession;
 import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
 import at.gv.egovernment.moa.id.commons.db.dao.session.AssertionStore;
 import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;
-import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.data.ISLOInformationContainer;
 import at.gv.egovernment.moa.id.data.SLOInformationContainer;
-import at.gv.egovernment.moa.id.data.SLOInformationInterface;
-import at.gv.egovernment.moa.id.moduls.AuthenticationManager;
-import at.gv.egovernment.moa.id.moduls.IAction;
 import at.gv.egovernment.moa.id.moduls.SSOManager;
 import at.gv.egovernment.moa.id.protocols.pvp2x.builder.SingleLogOutBuilder;
 import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.SLOException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.messages.MOARequest;
 import at.gv.egovernment.moa.id.protocols.pvp2x.messages.MOAResponse;
 import at.gv.egovernment.moa.id.storage.IAuthenticationSessionStoreage;
-import at.gv.egovernment.moa.id.storage.ITransactionStorage;
-import at.gv.egovernment.moa.id.util.Random;
 import at.gv.egovernment.moa.logging.Logger;
 import at.gv.egovernment.moa.util.MiscUtil;
 import at.gv.egovernment.moa.util.URLEncoder;
@@ -75,7 +75,7 @@ public class SingleLogOutAction implements IAction {
 	@Autowired private IAuthenticationSessionStoreage authenticationSessionStorage;
 	@Autowired private ITransactionStorage transactionStorage;
 	@Autowired private SingleLogOutBuilder sloBuilder;
-	@Autowired private MOAReversionLogger revisionsLogger;
+	@Autowired private IRevisionLogger revisionsLogger;
 
 
 	/* (non-Javadoc)
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/binding/IEncoder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/binding/IEncoder.java
index ccbef6e6c..409f995fc 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/binding/IEncoder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/binding/IEncoder.java
@@ -31,7 +31,7 @@ import org.opensaml.ws.message.encoder.MessageEncodingException;
 import org.opensaml.xml.security.SecurityException;
 import org.opensaml.xml.security.credential.Credential;
 
-import at.gv.egovernment.moa.id.commons.api.IRequest;
+import at.gv.egiz.eaaf.core.api.IRequest;
 import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.PVP2Exception;
 
 public interface IEncoder {
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/binding/PostBinding.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/binding/PostBinding.java
index c7688c14b..998249028 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/binding/PostBinding.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/binding/PostBinding.java
@@ -50,12 +50,12 @@ import org.opensaml.xml.security.credential.Credential;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import at.gv.egiz.eaaf.core.api.IRequest;
+import at.gv.egiz.eaaf.core.api.gui.IGUIBuilderConfiguration;
 import at.gv.egovernment.moa.id.auth.frontend.builder.GUIFormBuilderImpl;
-import at.gv.egovernment.moa.id.auth.frontend.builder.IGUIBuilderConfiguration;
 import at.gv.egovernment.moa.id.auth.frontend.builder.SPSpecificGUIBuilderConfigurationWithFileSystemLoad;
 import at.gv.egovernment.moa.id.auth.frontend.velocity.VelocityProvider;
 import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
 import at.gv.egovernment.moa.id.commons.config.MOAIDConfigurationConstants;
 import at.gv.egovernment.moa.id.opemsaml.MOAIDHTTPPostEncoder;
 import at.gv.egovernment.moa.id.protocols.pvp2x.PVP2XProtocol;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/binding/RedirectBinding.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/binding/RedirectBinding.java
index 95c4f1726..caebd456b 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/binding/RedirectBinding.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/binding/RedirectBinding.java
@@ -51,7 +51,7 @@ import org.opensaml.xml.security.SecurityException;
 import org.opensaml.xml.security.credential.Credential;
 import org.springframework.stereotype.Service;
 
-import at.gv.egovernment.moa.id.commons.api.IRequest;
+import at.gv.egiz.eaaf.core.api.IRequest;
 import at.gv.egovernment.moa.id.protocols.pvp2x.PVP2XProtocol;
 import at.gv.egovernment.moa.id.protocols.pvp2x.config.MOADefaultBootstrap;
 import at.gv.egovernment.moa.id.protocols.pvp2x.messages.InboundMessage;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/binding/SoapBinding.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/binding/SoapBinding.java
index 552b64ac6..2b4374a64 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/binding/SoapBinding.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/binding/SoapBinding.java
@@ -50,7 +50,7 @@ import org.opensaml.xml.signature.SignableXMLObject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import at.gv.egovernment.moa.id.commons.api.IRequest;
+import at.gv.egiz.eaaf.core.api.IRequest;
 import at.gv.egovernment.moa.id.protocols.pvp2x.PVP2XProtocol;
 import at.gv.egovernment.moa.id.protocols.pvp2x.config.MOADefaultBootstrap;
 import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.AttributQueryException;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/AttributQueryBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/AttributQueryBuilder.java
index f4cd7422c..c662a0af5 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/AttributQueryBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/AttributQueryBuilder.java
@@ -49,7 +49,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.w3c.dom.Document;
 
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
+import at.gv.egiz.eaaf.core.api.IOAAuthParameters;
 import at.gv.egovernment.moa.id.commons.api.exceptions.ConfigurationException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.PVPConstants;
 import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.SamlAttributeGenerator;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/PVPAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/PVPAttributeBuilder.java
index b82e6c1f0..6beaee92b 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/PVPAttributeBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/PVPAttributeBuilder.java
@@ -32,13 +32,13 @@ import java.util.ServiceLoader;
 import org.opensaml.saml2.core.Attribute;
 import org.opensaml.saml2.metadata.RequestedAttribute;
 
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.data.IAuthData;
+import at.gv.egiz.eaaf.core.api.IOAAuthParameters;
+import at.gv.egiz.eaaf.core.api.data.IAuthData;
+import at.gv.egiz.eaaf.core.exceptions.InvalidDateFormatAttributeException;
 import at.gv.egovernment.moa.id.protocols.builder.attributes.IAttributeBuilder;
 import at.gv.egovernment.moa.id.protocols.builder.attributes.IAttributeGenerator;
 import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.SamlAttributeGenerator;
 import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.InvalidDateFormatAttributeException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.UnavailableAttributeException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.InvalidDateFormatException;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/PVPAuthnRequestBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/PVPAuthnRequestBuilder.java
index f29418853..be8c2abdf 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/PVPAuthnRequestBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/PVPAuthnRequestBuilder.java
@@ -48,7 +48,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationContext;
 import org.springframework.stereotype.Service;
 
-import at.gv.egovernment.moa.id.commons.api.IRequest;
+import at.gv.egiz.eaaf.core.api.IRequest;
 import at.gv.egovernment.moa.id.protocols.pvp2x.binding.IEncoder;
 import at.gv.egovernment.moa.id.protocols.pvp2x.binding.PostBinding;
 import at.gv.egovernment.moa.id.protocols.pvp2x.binding.RedirectBinding;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/SingleLogOutBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/SingleLogOutBuilder.java
index 4fef52aec..cc916ef73 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/SingleLogOutBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/SingleLogOutBuilder.java
@@ -63,13 +63,12 @@ import org.springframework.context.ApplicationContext;
 import org.springframework.stereotype.Service;
 import org.w3c.dom.Document;
 
+import at.gv.egiz.eaaf.core.api.data.ISLOInformationContainer;
 import at.gv.egovernment.moa.id.auth.exception.AuthenticationException;
 import at.gv.egovernment.moa.id.commons.api.exceptions.ConfigurationException;
 import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
 import at.gv.egovernment.moa.id.commons.db.dao.session.InterfederationSessionStore;
 import at.gv.egovernment.moa.id.commons.db.dao.session.OASessionStore;
-import at.gv.egovernment.moa.id.commons.utils.MOAIDMessageProvider;
-import at.gv.egovernment.moa.id.data.ISLOInformationContainer;
 import at.gv.egovernment.moa.id.data.SLOInformationContainer;
 import at.gv.egovernment.moa.id.data.SLOInformationImpl;
 import at.gv.egovernment.moa.id.opemsaml.MOAStringRedirectDeflateEncoder;
@@ -86,6 +85,7 @@ import at.gv.egovernment.moa.id.protocols.pvp2x.messages.MOARequest;
 import at.gv.egovernment.moa.id.protocols.pvp2x.metadata.MOAMetadataProvider;
 import at.gv.egovernment.moa.id.protocols.pvp2x.signer.IDPCredentialProvider;
 import at.gv.egovernment.moa.id.protocols.pvp2x.utils.SAML2Utils;
+import at.gv.egovernment.moa.id.util.MOAIDMessageProvider;
 import at.gv.egovernment.moa.logging.Logger;
 
 /**
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/assertion/PVP2AssertionBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/assertion/PVP2AssertionBuilder.java
index 196aa47af..40c85945f 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/assertion/PVP2AssertionBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/assertion/PVP2AssertionBuilder.java
@@ -59,11 +59,12 @@ import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;
 import at.gv.e_government.reference.namespace.persondata._20020228_.CorporateBodyType;
 import at.gv.e_government.reference.namespace.persondata._20020228_.IdentificationType;
 import at.gv.e_government.reference.namespace.persondata._20020228_.PhysicalPersonType;
+import at.gv.egiz.eaaf.core.api.IOAAuthParameters;
+import at.gv.egiz.eaaf.core.api.data.IAuthData;
+import at.gv.egiz.eaaf.core.impl.utils.Random;
 import at.gv.egovernment.moa.id.auth.builder.BPKBuilder;
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
 import at.gv.egovernment.moa.id.commons.api.exceptions.ConfigurationException;
 import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
-import at.gv.egovernment.moa.id.data.IAuthData;
 import at.gv.egovernment.moa.id.data.Pair;
 import at.gv.egovernment.moa.id.data.SLOInformationImpl;
 import at.gv.egovernment.moa.id.protocols.pvp2x.PVPConstants;
@@ -77,7 +78,6 @@ import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.UnprovideableAttribut
 import at.gv.egovernment.moa.id.protocols.pvp2x.utils.SAML2Utils;
 import at.gv.egovernment.moa.id.util.MandateBuilder;
 import at.gv.egovernment.moa.id.util.QAALevelVerifier;
-import at.gv.egovernment.moa.id.util.Random;
 import at.gv.egovernment.moa.logging.Logger;
 import at.gv.egovernment.moa.util.Base64Utils;
 import at.gv.egovernment.moa.util.Constants;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/exceptions/AttributeException.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/exceptions/AttributeException.java
deleted file mode 100644
index 9f13b8270..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/exceptions/AttributeException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions;
-
-public class AttributeException extends Exception {
-	
-	private static final long serialVersionUID = 1L;
-	
-	public AttributeException(String message) {
-		super(message);
-	}
-	
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/exceptions/AttributePolicyException.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/exceptions/AttributePolicyException.java
deleted file mode 100644
index 1e0e2ee51..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/exceptions/AttributePolicyException.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions;
-
-public class AttributePolicyException extends AttributeException {
-	
-	private static final long serialVersionUID = 1L;
-	
-	private String attributeName;
-	
-	public AttributePolicyException(String attributeName) {
-		super("Attribute " + attributeName + " is restricted by IDP policy.");
-		this.attributeName = attributeName;
-	}
-	
-	public String getAttributeName() {
-		return attributeName;
-	}
-	
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/exceptions/InvalidDateFormatAttributeException.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/exceptions/InvalidDateFormatAttributeException.java
deleted file mode 100644
index dd251f0cd..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/exceptions/InvalidDateFormatAttributeException.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions;
-
-public class InvalidDateFormatAttributeException extends AttributeException {
-
-	private static final long serialVersionUID = 1L;
-	
-	public InvalidDateFormatAttributeException() {
-		super("Date format is invalid.");
-	}
-
-	
-	
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/exceptions/NoMandateDataAttributeException.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/exceptions/NoMandateDataAttributeException.java
index 066330a2d..ad505efa5 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/exceptions/NoMandateDataAttributeException.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/exceptions/NoMandateDataAttributeException.java
@@ -22,7 +22,9 @@
  *******************************************************************************/
 package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions;
 
-public class NoMandateDataAttributeException extends AttributeException {
+import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
+
+public class NoMandateDataAttributeException extends AttributeBuilderException {
 	
 	private static final long serialVersionUID = 1L;
 	
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/exceptions/UnavailableAttributeException.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/exceptions/UnavailableAttributeException.java
deleted file mode 100644
index f63edf909..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/exceptions/UnavailableAttributeException.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions;
-
-public class UnavailableAttributeException extends AttributeException {
-	
-	private static final long serialVersionUID = 1L;
-	
-	private String attributeName;
-	
-	public UnavailableAttributeException(String attributeName) {
-		super("Attribute " + attributeName + " is not available.");
-		this.attributeName = attributeName;
-	}
-	
-	public String getAttributeName() {
-		return attributeName;
-	}
-	
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/config/PVPConfiguration.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/config/PVPConfiguration.java
index 47c4b0736..64f5c7d73 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/config/PVPConfiguration.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/config/PVPConfiguration.java
@@ -44,7 +44,7 @@ import org.opensaml.saml2.metadata.OrganizationURL;
 import org.opensaml.saml2.metadata.SurName;
 import org.opensaml.saml2.metadata.TelephoneNumber;
 
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
+import at.gv.egiz.eaaf.core.api.IOAAuthParameters;
 import at.gv.egovernment.moa.id.commons.api.exceptions.ConfigurationException;
 import at.gv.egovernment.moa.id.commons.config.MOAIDConfigurationConstants;
 import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProviderFactory;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/exceptions/AuthnRequestValidatorException.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/exceptions/AuthnRequestValidatorException.java
deleted file mode 100644
index f65c4d265..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/exceptions/AuthnRequestValidatorException.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.protocols.pvp2x.exceptions;
-
-import at.gv.egovernment.moa.id.commons.api.IRequest;
-
-/**
- * @author tlenz
- *
- */
-public class AuthnRequestValidatorException extends PVP2Exception {
-
-	private IRequest errorRequest = null;
-	
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 4939651000658508576L;
-
-	/**
-	 * @param messageId
-	 * @param parameters
-	 */
-	public AuthnRequestValidatorException(String messageId, Object[] parameters) {
-		super(messageId, parameters);
-		
-	}
-	
-	public AuthnRequestValidatorException(String messageId, Object[] parameters, IRequest errorRequest) {
-		super(messageId, parameters);
-		this.errorRequest = errorRequest;
-		
-	}
-
-	/**
-	 * @return the errorRequest
-	 */
-	public IRequest getErrorRequest() {
-		return errorRequest;
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/exceptions/NameIDFormatNotSupportedException.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/exceptions/NameIDFormatNotSupportedException.java
index 87e443930..b1e7df014 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/exceptions/NameIDFormatNotSupportedException.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/exceptions/NameIDFormatNotSupportedException.java
@@ -24,6 +24,8 @@ package at.gv.egovernment.moa.id.protocols.pvp2x.exceptions;
 
 import org.opensaml.saml2.core.StatusCode;
 
+import at.gv.egiz.eaaf.core.exceptions.AuthnRequestValidatorException;
+
 public class NameIDFormatNotSupportedException extends AuthnRequestValidatorException {
 
 	public NameIDFormatNotSupportedException(String nameIDFormat) {
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java
index 7f6f9b88c..86284a2f4 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java
@@ -49,10 +49,10 @@ import org.opensaml.xml.XMLObject;
 import org.opensaml.xml.parse.BasicParserPool;
 import org.springframework.stereotype.Service;
 
+import at.gv.egiz.eaaf.core.api.IOAAuthParameters;
 import at.gv.egovernment.moa.id.auth.IDestroyableObject;
 import at.gv.egovernment.moa.id.auth.IGarbageCollectorProcessing;
 import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
 import at.gv.egovernment.moa.id.commons.api.exceptions.ConfigurationException;
 import at.gv.egovernment.moa.id.commons.config.MOAIDConfigurationConstants;
 import at.gv.egovernment.moa.id.protocols.pvp2x.verification.metadata.InterfederatedIDPPublicServiceFilter;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/utils/SAML2Utils.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/utils/SAML2Utils.java
index 28a85b4af..29dd70545 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/utils/SAML2Utils.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/utils/SAML2Utils.java
@@ -46,7 +46,7 @@ import org.opensaml.xml.io.Marshaller;
 import org.opensaml.xml.io.MarshallingException;
 import org.w3c.dom.Document;
 
-import at.gv.egovernment.moa.id.util.Random;
+import at.gv.egiz.eaaf.core.impl.utils.Random;
 
 public class SAML2Utils {
 
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/validation/AuthnRequestValidator.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/validation/AuthnRequestValidator.java
index 4ae89466d..7b7ba6883 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/validation/AuthnRequestValidator.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/validation/AuthnRequestValidator.java
@@ -26,7 +26,7 @@ import org.opensaml.saml2.core.AuthnRequest;
 import org.opensaml.saml2.core.NameID;
 import org.opensaml.saml2.core.NameIDPolicy;
 
-import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.AuthnRequestValidatorException;
+import at.gv.egiz.eaaf.core.exceptions.AuthnRequestValidatorException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.NameIDFormatNotSupportedException;
 import at.gv.egovernment.moaspss.logging.Logger;
 
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/EntityVerifier.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/EntityVerifier.java
index d05d180e1..528d8cbb6 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/EntityVerifier.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/EntityVerifier.java
@@ -34,7 +34,7 @@ import org.opensaml.xml.security.x509.BasicX509Credential;
 import org.opensaml.xml.signature.SignatureValidator;
 import org.opensaml.xml.validation.ValidationException;
 
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
+import at.gv.egiz.eaaf.core.api.IOAAuthParameters;
 import at.gv.egovernment.moa.id.commons.api.exceptions.ConfigurationException;
 import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
 import at.gv.egovernment.moa.id.commons.config.MOAIDConfigurationConstants;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/SAMLVerificationEngine.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/SAMLVerificationEngine.java
index f6104bdeb..870c70efe 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/SAMLVerificationEngine.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/SAMLVerificationEngine.java
@@ -46,7 +46,7 @@ import org.springframework.stereotype.Service;
 import org.w3c.dom.Element;
 import org.xml.sax.SAXException;
 
-import at.gv.egovernment.moa.id.auth.exception.InvalidProtocolRequestException;
+import at.gv.egiz.eaaf.core.exceptions.InvalidProtocolRequestException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.SchemaValidationException;
 import at.gv.egovernment.moa.id.protocols.pvp2x.messages.InboundMessage;
 import at.gv.egovernment.moa.id.protocols.pvp2x.messages.MOARequest;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/DBAuthenticationSessionStoreage.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/DBAuthenticationSessionStoreage.java
index 0df6379b0..9ae41c06c 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/DBAuthenticationSessionStoreage.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/DBAuthenticationSessionStoreage.java
@@ -40,13 +40,15 @@ import org.springframework.transaction.annotation.Transactional;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 
+import at.gv.egiz.eaaf.core.api.IOAAuthParameters;
+import at.gv.egiz.eaaf.core.api.IRequest;
+import at.gv.egiz.eaaf.core.api.data.SLOInformationInterface;
+import at.gv.egiz.eaaf.core.impl.utils.Random;
 import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;
 import at.gv.egovernment.moa.id.auth.data.AuthenticationSessionExtensions;
 import at.gv.egovernment.moa.id.auth.exception.AuthenticationException;
 import at.gv.egovernment.moa.id.auth.exception.BuildException;
 import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
 import at.gv.egovernment.moa.id.commons.api.data.IAuthenticationSession;
 import at.gv.egovernment.moa.id.commons.db.dao.session.AuthenticatedSessionStore;
 import at.gv.egovernment.moa.id.commons.db.dao.session.InterfederationSessionStore;
@@ -55,10 +57,8 @@ import at.gv.egovernment.moa.id.commons.db.dao.session.OldSSOSessionIDStore;
 import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;
 import at.gv.egovernment.moa.id.commons.utils.JsonMapper;
 import at.gv.egovernment.moa.id.data.EncryptedData;
-import at.gv.egovernment.moa.id.data.SLOInformationInterface;
 import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.AssertionAttributeExtractorExeption;
 import at.gv.egovernment.moa.id.protocols.pvp2x.utils.AssertionAttributeExtractor;
-import at.gv.egovernment.moa.id.util.Random;
 import at.gv.egovernment.moa.id.util.SessionEncrytionUtil;
 import at.gv.egovernment.moa.logging.Logger;
 import at.gv.egovernment.moa.util.MiscUtil;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/DBTransactionStorage.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/DBTransactionStorage.java
index 2395b913d..958ef4977 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/DBTransactionStorage.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/DBTransactionStorage.java
@@ -37,6 +37,7 @@ import org.hibernate.HibernateException;
 import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Transactional;
 
+import at.gv.egiz.eaaf.core.api.storage.ITransactionStorage;
 import at.gv.egovernment.moa.id.auth.exception.AuthenticationException;
 import at.gv.egovernment.moa.id.auth.exception.BuildException;
 import at.gv.egovernment.moa.id.commons.db.dao.session.AssertionStore;
@@ -240,16 +241,16 @@ public class DBTransactionStorage implements ITransactionStorage {
 		}
 	}
 
-	public Object getAssertionStore(String key) throws MOADatabaseException{
-		return searchInDatabase(key);
-		
-	}
+//	public Object getAssertionStore(String key) throws MOADatabaseException{
+//		return searchInDatabase(key);
+//		
+//	}
 	
-	@Override
-	public void putAssertionStore(Object element) throws MOADatabaseException{
-		entityManager.merge(element);
-		
-	}
+//	@Override
+//	public void putAssertionStore(Object element) throws MOADatabaseException{
+//		entityManager.merge(element);
+//		
+//	}
 	
 	private void cleanDelete(AssertionStore element) {
 	
@@ -310,7 +311,7 @@ public class DBTransactionStorage implements ITransactionStorage {
 			
 		} catch (BuildException e) {
 			Logger.warn("Sessioninformation could not be stored.");
-			throw new MOADatabaseException(e);
+			throw new MOADatabaseException("Can not store data into transaction-storage", e);
 			
 		}
 		
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/IAuthenticationSessionStoreage.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/IAuthenticationSessionStoreage.java
index c8d09e17e..414df1328 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/IAuthenticationSessionStoreage.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/IAuthenticationSessionStoreage.java
@@ -25,18 +25,18 @@ package at.gv.egovernment.moa.id.storage;
 import java.util.Date;
 import java.util.List;
 
+import at.gv.egiz.eaaf.core.api.IRequest;
+import at.gv.egiz.eaaf.core.api.data.SLOInformationInterface;
 import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;
 import at.gv.egovernment.moa.id.auth.data.AuthenticationSessionExtensions;
 import at.gv.egovernment.moa.id.auth.exception.AuthenticationException;
 import at.gv.egovernment.moa.id.auth.exception.BuildException;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
 import at.gv.egovernment.moa.id.commons.api.data.IAuthenticationSession;
 import at.gv.egovernment.moa.id.commons.db.dao.session.AuthenticatedSessionStore;
 import at.gv.egovernment.moa.id.commons.db.dao.session.InterfederationSessionStore;
 import at.gv.egovernment.moa.id.commons.db.dao.session.OASessionStore;
 import at.gv.egovernment.moa.id.commons.db.dao.session.OldSSOSessionIDStore;
 import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;
-import at.gv.egovernment.moa.id.data.SLOInformationInterface;
 import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.AssertionAttributeExtractorExeption;
 import at.gv.egovernment.moa.id.protocols.pvp2x.utils.AssertionAttributeExtractor;
 
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/ITransactionStorage.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/ITransactionStorage.java
deleted file mode 100644
index 51a36d426..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/ITransactionStorage.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.storage;
-
-import java.util.Date;
-import java.util.List;
-
-import at.gv.egovernment.moa.id.auth.exception.AuthenticationException;
-import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;
-
-/**
- * @author tlenz
- *
- */
-public interface ITransactionStorage {
-
-	/**
-	 * Check if transaction storage contains a data object with a specific key
-	 * 
-	 * @param key Key, which identifies a data object
-	 * @return true if key is found, otherwise false
-	 */
-	public boolean containsKey(String key);
-	
-	/**
-	 * Store a data object with a key to transaction storage
-	 * 
-	 * @param key Id which identifiers the data object
-	 * @param value Data object which should be stored. 
-	 *              This data must implement the <code>java.io.Serializable</code> interface
-	 * @param timeout_ms Defines the period of time a data object is kept within the storage
-	 * @throws MOADatabaseException In case of store operation failed
-	 */
-	public void put(String key, Object value, int timeout_ms) throws MOADatabaseException;
-	
-	/**
-	 * Get a data object from transaction storage
-	 * 
-	 * @param key key Id which identifiers the data object
-	 * @return The transaction-data object, or null
-	 * @throws MOADatabaseException In case of load operation failed
-	 */
-	public Object get(String key) throws MOADatabaseException;
-	
-	/**
-	 * Get a data object from transaction storage
-	 * 
-	 * @param key Id which identifiers the data object
-	 * @param clazz The class type which is stored with this key
-	 * @return The transaction-data object from type class, or null
-	 * @throws MOADatabaseException In case of load operation failed
-	 */
-	public <T> T get(String key, final Class<T> clazz) throws MOADatabaseException;
-	
-	/**
-	 * Get a data object from transaction storage
-	 * 
-	 * @param key Id which identifiers the data object
-	 * @param clazz The class type which is stored with this key
-	 * @param Data-object timeout in [ms]
-	 * @return The transaction-data object from type class, or null
-	 * @throws MOADatabaseException In case of load operation failed
-	 * @throws AuthenticationException In case of data-object timeout occurs
-	 */
-	public <T> T get(String key, final Class<T> clazz, long dataTimeOut) throws MOADatabaseException, AuthenticationException;
-	
-	
-	/**
-	 * Change the key of a data object and store it under the new key
-	 * 
-	 * @param oldKey Old key of the data object
-	 * @param newKey New key, which should be used to store the data object
-	 * @param value Data object which should be stored
-	 * @throws MOADatabaseException In case of store operation failed
-	 */
-	public void changeKey(String oldKey, String newKey, Object value) throws MOADatabaseException; 
-	
-	/**
-	 * Remove a data object from transaction storage
-	 * 
-	 * @param key Id which identifiers the data object
-	 */
-	public void remove(String key);
-	
-	/**
-	 * Get all entries for Clean-up the transaction storage
-	 * 
-	 * @param now Current time
-	 * @param dataTimeOut Data-object timeout in [ms]
-	 * @return List of entry-keys which as a timeout
-	 */
-	public List<String> clean(Date now, long dataTimeOut);
-	
-	
-	/**
-	 * Get whole AssertionStoreObject, required for SLO
-	 * <br>
-	 * <b>IMPORTANT:</b> This method does NOT decrypt information before storage
-	 * 
-	 * @param key key Id which identifiers the data object
-	 * @return The transaction-data object, or null
-	 * @throws MOADatabaseException In case of load operation failed
-	 */
-	public Object getAssertionStore(String key) throws MOADatabaseException;
-	
-	/**
-	 * Put whole AssertionStoreObject to db, required for SLO
- 	 * <br>
-	 * <b>IMPORTANT:</b> This method does NOT encrypt information before storage
-	 * 
-	 * @param element assertion store object
-	 */
-	public void putAssertionStore(Object element) throws MOADatabaseException;
-	
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/RedisTransactionStorage.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/RedisTransactionStorage.java
index 2b9a6656b..f30613474 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/RedisTransactionStorage.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/storage/RedisTransactionStorage.java
@@ -39,6 +39,7 @@ import org.springframework.data.redis.core.SessionCallback;
 import org.springframework.data.redis.serializer.JacksonJsonRedisSerializer;
 import org.springframework.stereotype.Service;
 
+import at.gv.egiz.eaaf.core.api.storage.ITransactionStorage;
 import at.gv.egovernment.moa.id.auth.exception.AuthenticationException;
 import at.gv.egovernment.moa.id.commons.api.AuthConfiguration;
 import at.gv.egovernment.moa.id.commons.db.dao.session.AssertionStore;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/AbstractEncrytionUtil.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/AbstractEncrytionUtil.java
index 84d40f619..8fdf1eab8 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/AbstractEncrytionUtil.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/AbstractEncrytionUtil.java
@@ -37,6 +37,7 @@ import javax.crypto.spec.IvParameterSpec;
 import javax.crypto.spec.PBEKeySpec;
 import javax.crypto.spec.SecretKeySpec;
 
+import at.gv.egiz.eaaf.core.impl.utils.Random;
 import at.gv.egovernment.moa.id.auth.exception.BuildException;
 import at.gv.egovernment.moa.id.auth.exception.DatabaseEncryptionException;
 import at.gv.egovernment.moa.id.data.EncryptedData;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ErrorResponseUtils.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ErrorResponseUtils.java
deleted file mode 100644
index 655675f00..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ErrorResponseUtils.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.util;
-
-import java.util.Locale;
-
-import at.gv.egovernment.moa.id.auth.exception.BKUException;
-import at.gv.egovernment.moa.id.auth.exception.MISSimpleClientException;
-import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
-import at.gv.egovernment.moa.id.process.ProcessExecutionException;
-import at.gv.egovernment.moa.util.Messages;
-import at.gv.egovernment.moa.util.MiscUtil;
-
-/**
- * @author tlenz
- *
- */
-public class ErrorResponseUtils {
-
-	public static final String INTERNALERRORCODE = "9199"; 
-	
-	private static ErrorResponseUtils instance = null;
-	private static final String[] DEFAULT_MESSAGE_RESOURCES =
-		    { "resources/properties/protocol_response_statuscodes" };  
-	private static final Locale[] DEFAULT_MESSAGE_LOCALES =
-		    new Locale[] { new Locale("de", "AT") };
-	private Messages messages = null;
-	
-	
-	public static ErrorResponseUtils getInstance() {
-		if (instance == null) {
-			instance = new ErrorResponseUtils(DEFAULT_MESSAGE_RESOURCES, DEFAULT_MESSAGE_LOCALES);
-			
-		}
-		return instance;
-	}
-	
-	private ErrorResponseUtils(String[] resourceNames, Locale[] locales) {
-		this.messages = new Messages(resourceNames, locales);
-	}
-	
-	public String getResponseErrorCode(Throwable throwable) {
-		String errorCode = null;
-		
-		if (throwable instanceof BKUException) {
-			BKUException error = (BKUException) throwable;			
-			errorCode = mapInternalErrorToExternalError(error.getMessageId()) + 
-					error.getBkuErrorCode();			
-			
-		} else if (throwable instanceof MISSimpleClientException) {
-			MISSimpleClientException error = (MISSimpleClientException) throwable;
-			
-			if (MiscUtil.isNotEmpty(error.getMISErrorCode()))
-				errorCode = mapInternalErrorToExternalError(error.getMessageId()) + 
-						error.getMISErrorCode();							
-			else
-				errorCode = mapInternalErrorToExternalError(error.getMessageId());
-						
-		} else if (throwable instanceof MOAIDException) {
-			MOAIDException error = (MOAIDException) throwable;
-			errorCode = mapInternalErrorToExternalError(error.getMessageId());
-		
-		} else if (throwable instanceof ProcessExecutionException) {
-			errorCode = "1100";
-			
-		} else {
-			errorCode = INTERNALERRORCODE;
-						
-		}
-				
-		return errorCode;
-		
-	}
-	
-	public String mapInternalErrorToExternalError(String intErrorCode) {		
-		String extErrorCode = messages.getMessage(intErrorCode, null);
-		
-		if (MiscUtil.isEmpty(extErrorCode))
-			extErrorCode = INTERNALERRORCODE;
-				
-		return extErrorCode;
-		
-	}
-	
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/HTTPUtils.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/HTTPUtils.java
deleted file mode 100644
index 4cb6af127..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/HTTPUtils.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- * 
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- * 
- * 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.
- ******************************************************************************/
-/*
- * Copyright 2003 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.util;
-
-/**
- * HTTP Utilities  
- * 
- * @author Rudolf Schamberger
- * @version $Id$
- */
-
-import java.io.BufferedInputStream;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.net.HttpURLConnection;
-import java.net.URL;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.regexp.RE;
-import org.apache.regexp.RESyntaxException;
-
-import at.gv.egovernment.moa.util.StringUtils;
-
-/**
- * 
- * @author Rudolf Schamberger
- *
- */
-public class HTTPUtils {
-
-  /**
-   * Utility used to obtainin correct encoded HTTP content.
-   * Reads a given Content adressed by HTTP-URL into String. 
-   * Content encoding is considered by using the Content-Type HTTP header charset value.
-   * @param URL HTTP URL to read from.
-   * @return String representation of content
-   * @throws IOException on data-reading problems
-   */
-  public static String readHttpURL(String URL) 
-    throws IOException {
-      
-    URL url = new URL(URL);
-    HttpURLConnection conn = (HttpURLConnection)url.openConnection();
-    conn.setRequestMethod("GET");
-    String contentType = conn.getContentType();
-    RE regExp = null;
-    try {
-        regExp = new RE("(;.*charset=)(\"*)(.*[^\"])");
-    } catch (RESyntaxException e) {
-        //RESyntaxException is not possible = expr. is costant
-    }
-    boolean charsetSupplied = regExp.match(contentType);
-    String encoding = "ISO-8859-1"; 		//default HTTP encoding 
-    if (charsetSupplied) {
-      encoding = regExp.getParen(3);
-    }
-    InputStream instream = new BufferedInputStream(conn.getInputStream());
-    InputStreamReader isr = new InputStreamReader(instream, encoding);
-    Reader in = new BufferedReader(isr);
-    int ch;
-  	StringBuffer buffer = new StringBuffer();
-    while ((ch = in.read()) > -1) {
-  		buffer.append((char)ch);
-  	}     
-    in.close();
-    conn.disconnect();
-    return buffer.toString();
-  }
-  
-  	/**
-  	 * Helper method to retrieve server URL including context path
-  	 * @param request HttpServletRequest
-  	 * @return Server URL including context path (e.g. http://localhost:8443/moa-id-auth
-  	 */
-  	public static String getBaseURL(HttpServletRequest request) {
-		StringBuffer buffer = new StringBuffer(getServerURL(request));
-		
-	    // add context path if available
-	    String contextPath = request.getContextPath();
-	    if (!StringUtils.isEmpty(contextPath)) {
-	    	buffer.append(contextPath);
-	    }
-		
-		return buffer.toString(); 
-	}
-	
-  	/**
-  	 * Helper method to retrieve server URL
-  	 * @param request HttpServletRequest
-  	 * @return Server URL (e.g. http://localhost:8443)
-  	 */
-	public static String getServerURL(HttpServletRequest request) {
-		StringBuffer buffer = new StringBuffer();
-		
-		// get protocol
-		String protocol = request.getScheme();
-		buffer.append(protocol).append("://");
-		
-		// server name
-		buffer.append(request.getServerName());
-		
-		// add port if necessary
-		int port = request.getServerPort();
-	    if ((protocol.equals("http") && port != 80) || (protocol.equals("https") && port != 443)) {
-	    	buffer.append(':');
-	    	buffer.append(port);
-	    }
-	
-	    return buffer.toString(); 
-	}
-	
-	/**
-	 * Extract the IDP PublicURLPrefix from authrequest
-	 * 
-	 * @param req HttpServletRequest
-	 * @return PublicURLPrefix <String> which ends always without /
-	 */
-	public static String extractAuthURLFromRequest(HttpServletRequest req) {
-	    String authURL = req.getScheme() + "://" + req.getServerName();
-	    if ((req.getScheme().equalsIgnoreCase("https") && req.getServerPort()!=443) || (req.getScheme().equalsIgnoreCase("http") && req.getServerPort()!=80)) { 
-	      authURL = authURL.concat(":" + req.getServerPort());
-	    }
-	    authURL = authURL.concat(req.getContextPath());
-	    return authURL;
-		
-	}
-	
-	/**
-	 * Extract the IDP requested URL from authrequest
-	 * 
-	 * @param req HttpServletRequest
-	 * @return RequestURL <String> which ends always without /
-	 */ 
-	public static String extractAuthServletPathFromRequest(HttpServletRequest req) {
-	    return extractAuthURLFromRequest(req).concat(req.getServletPath());
-	 	
-	}
-	
-	public static String addURLParameter(String url, String paramname,
-			String paramvalue) {
-		String param = paramname + "=" + paramvalue;
-		if (url.indexOf("?") < 0)
-			return url + "?" + param;
-		else
-			return url + "&" + param;
-	}
-
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/MOAIDMessageProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/MOAIDMessageProvider.java
new file mode 100644
index 000000000..335cf55ce
--- /dev/null
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/MOAIDMessageProvider.java
@@ -0,0 +1,144 @@
+/*******************************************************************************
+ * Copyright 2014 Federal Chancellery Austria
+ * MOA-ID has been developed in a cooperation between BRZ, the Federal
+ * Chancellery Austria - ICT staff unit, and Graz University of Technology.
+ * 
+ * Licensed under the EUPL, Version 1.1 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:
+ * http://www.osor.eu/eupl/
+ * 
+ * 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.
+ ******************************************************************************/
+/*
+ * Copyright 2003 Federal Chancellery Austria
+ * MOA-ID has been developed in a cooperation between BRZ, the Federal
+ * Chancellery Austria - ICT staff unit, and Graz University of Technology.
+ *
+ * Licensed under the EUPL, Version 1.1 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:
+ * http://www.osor.eu/eupl/
+ *
+ * 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.egovernment.moa.id.util;
+
+import java.util.Locale;
+
+import org.springframework.stereotype.Service;
+
+import at.gv.egiz.eaaf.core.api.IStatusMessager;
+import at.gv.egiz.eaaf.core.exceptions.ProcessExecutionException;
+import at.gv.egovernment.moa.id.auth.exception.BKUException;
+import at.gv.egovernment.moa.id.auth.exception.MISSimpleClientException;
+import at.gv.egovernment.moa.id.commons.api.exceptions.MOAIDException;
+import at.gv.egovernment.moa.util.Messages;
+import at.gv.egovernment.moa.util.MiscUtil;
+
+/**
+ * A singleton wrapper around a <code>Message</code> object, providing the messages used in MOA-ID.
+ * 
+ * @author Paul Ivancsics
+ * @version $Id$
+ */
+@Service("MOAIDMessageProvider")
+public class MOAIDMessageProvider implements IStatusMessager {
+  
+  //internal messanges
+  private static final String[] DEFAULT_MESSAGE_RESOURCES = { "resources/properties/id_messages" };  
+  private static final Locale[] DEFAULT_MESSAGE_LOCALES = new Locale[] { new Locale("de", "AT") };
+  private Messages messages;
+  
+  //external error codes
+  private static final String[] DEFAULT_EXTERNALERROR_RESOURCES = { "resources/properties/protocol_response_statuscodes" };  
+  private static final Locale[] DEFAULT_EXTERNALERROR_LOCALES = new Locale[] { new Locale("de", "AT") };
+  private Messages externalError = null;
+  
+  
+  public MOAIDMessageProvider() {
+	  this.messages = new Messages(DEFAULT_MESSAGE_RESOURCES, DEFAULT_MESSAGE_LOCALES);
+	  this.externalError = new Messages(DEFAULT_EXTERNALERROR_RESOURCES, DEFAULT_EXTERNALERROR_LOCALES);
+	  
+  }	
+  
+  /**
+   * Get the message corresponding to a given message ID.
+   *
+   * @param messageId The ID of the message.
+   * @param parameters The parameters to fill in into the message arguments.
+   * @return The formatted message. 
+   */
+  @Override
+  public String getMessage(String messageId, Object[] parameters) {
+    return messages.getMessage(messageId, parameters);
+  }
+
+
+@Override
+public String getResponseErrorCode(Throwable throwable) {
+	String errorCode = null;
+	
+	if (throwable instanceof BKUException) {
+		BKUException error = (BKUException) throwable;			
+		errorCode = mapInternalErrorToExternalError(error.getMessageId()) + 
+				error.getBkuErrorCode();			
+		
+	} else if (throwable instanceof MISSimpleClientException) {
+		MISSimpleClientException error = (MISSimpleClientException) throwable;
+		
+		if (MiscUtil.isNotEmpty(error.getMISErrorCode()))
+			errorCode = mapInternalErrorToExternalError(error.getMessageId()) + 
+					error.getMISErrorCode();							
+		else
+			errorCode = mapInternalErrorToExternalError(error.getMessageId());
+					
+	} else if (throwable instanceof MOAIDException) {
+		MOAIDException error = (MOAIDException) throwable;
+		errorCode = mapInternalErrorToExternalError(error.getMessageId());
+	
+	} else if (throwable instanceof ProcessExecutionException) {
+		errorCode = IStatusMessager.CODES_EXTERNAL_ERROR_PROCESSENGINE;
+		
+	} else {
+		errorCode = IStatusMessager.CODES_EXTERNAL_ERROR_GENERIC;
+					
+	}
+			
+	return errorCode;
+}
+
+
+@Override
+public String mapInternalErrorToExternalError(String intErrorCode) {
+	String extErrorCode = messages.getMessage(intErrorCode, null);
+	
+	if (MiscUtil.isEmpty(extErrorCode))
+		extErrorCode = IStatusMessager.CODES_EXTERNAL_ERROR_GENERIC;
+			
+	return extErrorCode;
+}
+
+}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/Random.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/Random.java
deleted file mode 100644
index 38c384c3a..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/Random.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- * 
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- * 
- * 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.
- ******************************************************************************/
-/*
- * Copyright 2003 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.util;
-
-
-import java.nio.ByteBuffer;
-import java.security.SecureRandom;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-import org.apache.commons.codec.binary.Hex;
-
-import com.google.common.primitives.Bytes;
-
-import iaik.security.random.SeedGenerator;
-
-
-/**
- * Random number generator used to generate ID's
- * @author Paul Ivancsics
- * @version $Id$
- */
-public class Random {
-
-	
-	private final static char[] allowedPreFix = 
-		{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
-		 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
-	private static final DateFormat dateFormater = new SimpleDateFormat("yyyyddMM");
-	
-  /** random number generator used */
-	//private static SecureRandom random = new SecureRandom();
-	private static SecureRandom random;
-	private static SeedGenerator seedgenerator;	
-		
-	static {
-		random = iaik.security.random.SHA256FIPS186Random.getDefault();
-	    seedgenerator = iaik.security.random.AutoSeedGenerator.getDefault();
-		
-	}
-	
-	/**
-	 * Generate a unique process reference-value [160bit], which always starts with a letter
-	 * <br>
-	 * This unique ID consists of single letter, a 64bit date String[yyyyddMM],
-	 *  and a 88bit random value.  
-	 * 
-	 * @return 160bit ID, which is hex encoded
-	 */
-	public static String nextProcessReferenceValue() {		
-		//pre-process all three parts of a unique reference value
-		String now = dateFormater.format(new Date()); //8 bytes = 64bit
-		byte[] randValue = nextByteRandom(11);
-		char preFix = allowedPreFix[Math.abs(random.nextInt() % allowedPreFix.length)];
-	 
-		//generate ID
-		String returnValue = preFix + new String(Hex.encodeHex(Bytes.concat(now.getBytes(), randValue))); // 20 bytes = 160 bits
-		if (returnValue.length() > 40)
-			return returnValue.substring(0, 40);
-		else
-			return returnValue;
-				
-	}
-	
-	
-	
-	/**
-	 * Creates a new random number [256bit], and encode it as hex value.
-	 * 
-	 * @return random hex encoded value [256bit]
-	 */
-	public static String nextHexRandom32() {
-		return new String(Hex.encodeHex(nextByteRandom(32))); // 32 bytes = 256 bits
-		
-	}
-	
-	/**
-	 * Creates a new random number [128bit], and encode it as hex value.
-	 * 
-	 * @return random hex encoded value [128bit]
-	 */
-	public static String nextHexRandom16() {
-		return new String(Hex.encodeHex(nextByteRandom(16))); // 16 bytes = 128 bits
-		
-	}
-	
-	  /**
-	   * Creates a new random number [64bit], to be used as an ID.
-	   * 
-	   * @return random long as a String [64bit]
-	   */
-	public static String nextLongRandom() {	  
-		return "".concat(String.valueOf(Math.abs(generateLongRandom(32)))); // 32 bytes = 256 bits	
-			
-	  }
-		
-  /**
-   * Creates a new random number, to be used as an ID.
-   * 
-   * @return random long as a String [64bit]
-   */
-	@Deprecated
-  public static String nextRandom() {	  
-	long l = ByteBuffer.wrap(nextByteRandom(32)).getLong(); // 32 bytes = 256 bits
-	return "" + Math.abs(l);
-		
-  }
-  
-/**
- * Creates a new random byte[]
- * 	
- * @param size Size of random number in byte
- * @return
- */
-public static byte[] nextBytes(int size) {
-	return  nextByteRandom(size);
-	
-}
-  
-  public static void seedRandom() {
-	  
-	  if (seedgenerator.seedAvailable())
-		  random.setSeed(seedgenerator.getSeed());
-  }
-  
-	private static long generateLongRandom(int size) {
-		return ByteBuffer.wrap(nextByteRandom(size)).getLong(); 	
-	}
-  
-  /**
-   * Generate a new random number
-   * 
-   * @param size Size of random number in byte
-   * @return
-   */
-  private static synchronized byte[] nextByteRandom(int size) {
-	  byte[] b = new byte[size];
-	  random.nextBytes(b);			 
-	  return b;
-	  
-  }
-}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ServletUtils.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ServletUtils.java
deleted file mode 100644
index a4d79ac05..000000000
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/ServletUtils.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright 2014 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- * 
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- * 
- * 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.
- ******************************************************************************/
-/*
- * Copyright 2003 Federal Chancellery Austria
- * MOA-ID has been developed in a cooperation between BRZ, the Federal
- * Chancellery Austria - ICT staff unit, and Graz University of Technology.
- *
- * Licensed under the EUPL, Version 1.1 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:
- * http://www.osor.eu/eupl/
- *
- * 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.egovernment.moa.id.util;
-
-import javax.servlet.http.HttpServletRequest;
-
-public class ServletUtils {
-  
-	
-  public static String getBaseUrl( HttpServletRequest request ) {
-	    if ( ( request.getServerPort() == 80 ) ||
-	         ( request.getServerPort() == 443 ) )
-	      return request.getScheme() + "://" +
-	             request.getServerName() +
-	             request.getContextPath();
-	    else
-	      return request.getScheme() + "://" +
-	             request.getServerName() + ":" + request.getServerPort() +
-	             request.getContextPath();
-	  }
-  
-}
diff --git a/id/server/idserverlib/src/main/resources/META-INF/services/at.gv.egovernment.moa.id.protocols.builder.attributes.IAttributeBuilder b/id/server/idserverlib/src/main/resources/META-INF/services/at.gv.egovernment.moa.id.protocols.builder.attributes.IAttributeBuilder
index 6a5ce2171..1e3672a0d 100644
--- a/id/server/idserverlib/src/main/resources/META-INF/services/at.gv.egovernment.moa.id.protocols.builder.attributes.IAttributeBuilder
+++ b/id/server/idserverlib/src/main/resources/META-INF/services/at.gv.egovernment.moa.id.protocols.builder.attributes.IAttributeBuilder
@@ -1,17 +1,11 @@
-at.gv.egovernment.moa.id.protocols.builder.attributes.BirthdateAttributeBuilder
 at.gv.egovernment.moa.id.protocols.builder.attributes.BPKAttributeBuilder
 at.gv.egovernment.moa.id.protocols.builder.attributes.EIDAuthBlock
 at.gv.egovernment.moa.id.protocols.builder.attributes.EIDCcsURL
 at.gv.egovernment.moa.id.protocols.builder.attributes.EIDCitizenQAALevelAttributeBuilder
-at.gv.egovernment.moa.id.protocols.builder.attributes.EIDIssuingNationAttributeBuilder
-at.gv.egovernment.moa.id.protocols.builder.attributes.EIDIdentityLinkBuilder
 at.gv.egovernment.moa.id.protocols.builder.attributes.EIDSectorForIDAttributeBuilder
 at.gv.egovernment.moa.id.protocols.builder.attributes.EIDSignerCertificate
-at.gv.egovernment.moa.id.protocols.builder.attributes.EIDSourcePIN
-at.gv.egovernment.moa.id.protocols.builder.attributes.EIDSourcePINType
 at.gv.egovernment.moa.id.protocols.builder.attributes.EIDSTORKTOKEN
 at.gv.egovernment.moa.id.protocols.builder.attributes.EncryptedBPKAttributeBuilder
-at.gv.egovernment.moa.id.protocols.builder.attributes.GivenNameAttributeBuilder
 at.gv.egovernment.moa.id.protocols.builder.attributes.MandateFullMandateAttributeBuilder
 at.gv.egovernment.moa.id.protocols.builder.attributes.MandateLegalPersonFullNameAttributeBuilder
 at.gv.egovernment.moa.id.protocols.builder.attributes.MandateLegalPersonSourcePinAttributeBuilder
@@ -27,7 +21,4 @@ at.gv.egovernment.moa.id.protocols.builder.attributes.MandateProfRepOIDAttribute
 at.gv.egovernment.moa.id.protocols.builder.attributes.MandateReferenceValueAttributeBuilder
 at.gv.egovernment.moa.id.protocols.builder.attributes.MandateTypeAttributeBuilder
 at.gv.egovernment.moa.id.protocols.builder.attributes.MandateTypeOIDAttributeBuilder
-at.gv.egovernment.moa.id.protocols.builder.attributes.PrincipalNameAttributeBuilder
-at.gv.egovernment.moa.id.protocols.builder.attributes.PVPVersionAttributeBuilder
 at.gv.egovernment.moa.id.protocols.builder.attributes.HolderOfKey
-at.gv.egovernment.moa.id.protocols.builder.attributes.EIDeIDASQAALevelAttributeBuilder
diff --git a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/module/test/TestRequestImpl.java b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/module/test/TestRequestImpl.java
index 3ecbb84a2..9b6eedb11 100644
--- a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/module/test/TestRequestImpl.java
+++ b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/module/test/TestRequestImpl.java
@@ -26,8 +26,8 @@ import java.util.Collection;
 
 import org.opensaml.saml2.metadata.provider.MetadataProvider;
 
-import at.gv.egovernment.moa.id.commons.api.IOAAuthParameters;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
+import at.gv.egiz.eaaf.core.api.IOAAuthParameters;
+import at.gv.egiz.eaaf.core.api.IRequest;
 import at.gv.egovernment.moa.id.commons.api.data.IAuthenticationSession;
 import at.gv.egovernment.moa.id.commons.api.exceptions.SessionDataStorageException;
 
diff --git a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/DummyTransactionStorage.java b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/DummyTransactionStorage.java
index ab08c0f5c..08fb4e043 100644
--- a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/DummyTransactionStorage.java
+++ b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/DummyTransactionStorage.java
@@ -7,9 +7,9 @@ import java.util.List;
 
 import javax.sql.DataSource;
 
+import at.gv.egiz.eaaf.core.api.storage.ITransactionStorage;
 import at.gv.egovernment.moa.id.auth.exception.AuthenticationException;
 import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;
-import at.gv.egovernment.moa.id.storage.ITransactionStorage;
 import at.gv.egovernment.moa.logging.Logger;
 
 /**
diff --git a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/CreateSAML1AssertionTask.java b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/CreateSAML1AssertionTask.java
index 54515ab8e..d3b9789fc 100644
--- a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/CreateSAML1AssertionTask.java
+++ b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/CreateSAML1AssertionTask.java
@@ -10,8 +10,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
-import at.gv.egovernment.moa.id.auth.modules.TaskExecutionException;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
+import at.gv.egiz.eaaf.core.api.IRequest;
+import at.gv.egiz.eaaf.core.exceptions.TaskExecutionException;
 import at.gv.egovernment.moa.id.process.api.ExecutionContext;
 import at.gv.egovernment.moa.id.process.api.Task;
 
diff --git a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/GetIdentityLinkTask.java b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/GetIdentityLinkTask.java
index 266878d7e..7657f1c1f 100644
--- a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/GetIdentityLinkTask.java
+++ b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/GetIdentityLinkTask.java
@@ -10,8 +10,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
-import at.gv.egovernment.moa.id.auth.modules.TaskExecutionException;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
+import at.gv.egiz.eaaf.core.api.IRequest;
+import at.gv.egiz.eaaf.core.exceptions.TaskExecutionException;
 import at.gv.egovernment.moa.id.process.api.ExecutionContext;
 import at.gv.egovernment.moa.id.process.api.Task;
 
diff --git a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/SelectBKUTask.java b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/SelectBKUTask.java
index 915cb3b1e..1163a0706 100644
--- a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/SelectBKUTask.java
+++ b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/SelectBKUTask.java
@@ -4,7 +4,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
-import at.gv.egovernment.moa.id.commons.api.IRequest;
+import at.gv.egiz.eaaf.core.api.IRequest;
 import at.gv.egovernment.moa.id.process.api.ExecutionContext;
 import at.gv.egovernment.moa.id.process.api.Task;
 
diff --git a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/SignAuthBlockTask.java b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/SignAuthBlockTask.java
index 41ccb4451..1d10b08a8 100644
--- a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/SignAuthBlockTask.java
+++ b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/SignAuthBlockTask.java
@@ -10,8 +10,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
-import at.gv.egovernment.moa.id.auth.modules.TaskExecutionException;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
+import at.gv.egiz.eaaf.core.api.IRequest;
+import at.gv.egiz.eaaf.core.exceptions.TaskExecutionException;
 import at.gv.egovernment.moa.id.process.api.ExecutionContext;
 import at.gv.egovernment.moa.id.process.api.Task;
 
diff --git a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/ValidateIdentityLinkTask.java b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/ValidateIdentityLinkTask.java
index 818e8b479..19a87d520 100644
--- a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/ValidateIdentityLinkTask.java
+++ b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/ValidateIdentityLinkTask.java
@@ -6,7 +6,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
-import at.gv.egovernment.moa.id.commons.api.IRequest;
+import at.gv.egiz.eaaf.core.api.IRequest;
 import at.gv.egovernment.moa.id.process.api.ExecutionContext;
 import at.gv.egovernment.moa.id.process.api.Task;
 
diff --git a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/ValidateSignedAuthBlockTask.java b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/ValidateSignedAuthBlockTask.java
index 2ee67ec27..afae6463d 100644
--- a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/ValidateSignedAuthBlockTask.java
+++ b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/ValidateSignedAuthBlockTask.java
@@ -6,8 +6,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
-import at.gv.egovernment.moa.id.auth.modules.TaskExecutionException;
-import at.gv.egovernment.moa.id.commons.api.IRequest;
+import at.gv.egiz.eaaf.core.api.IRequest;
+import at.gv.egiz.eaaf.core.exceptions.TaskExecutionException;
 import at.gv.egovernment.moa.id.process.api.ExecutionContext;
 import at.gv.egovernment.moa.id.process.api.Task;
 
diff --git a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/test/HalloWeltTask.java b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/test/HalloWeltTask.java
index 1f77eadbc..d808713c1 100644
--- a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/test/HalloWeltTask.java
+++ b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/test/HalloWeltTask.java
@@ -2,7 +2,7 @@ package at.gv.egovernment.moa.id.process.test;
 
 import org.springframework.stereotype.Service;
 
-import at.gv.egovernment.moa.id.commons.api.IRequest;
+import at.gv.egiz.eaaf.core.api.IRequest;
 import at.gv.egovernment.moa.id.process.api.ExecutionContext;
 import at.gv.egovernment.moa.id.process.api.Task;
 
diff --git a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/test/HelloWorldTask.java b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/test/HelloWorldTask.java
index bc640e97a..ee02d0030 100644
--- a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/test/HelloWorldTask.java
+++ b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/test/HelloWorldTask.java
@@ -2,7 +2,7 @@ package at.gv.egovernment.moa.id.process.test;
 
 import org.springframework.stereotype.Service;
 
-import at.gv.egovernment.moa.id.commons.api.IRequest;
+import at.gv.egiz.eaaf.core.api.IRequest;
 import at.gv.egovernment.moa.id.process.api.ExecutionContext;
 import at.gv.egovernment.moa.id.process.api.Task;
 
diff --git a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/storage/test/DBTransactionStorageTest.java b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/storage/test/DBTransactionStorageTest.java
index 4b7f61ef5..fc415097c 100644
--- a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/storage/test/DBTransactionStorageTest.java
+++ b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/storage/test/DBTransactionStorageTest.java
@@ -11,9 +11,9 @@ import org.springframework.context.support.FileSystemXmlApplicationContext;
 import org.w3c.dom.Element;
 import org.xml.sax.SAXException;
 
+import at.gv.egiz.eaaf.core.api.storage.ITransactionStorage;
 import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;
 import at.gv.egovernment.moa.id.storage.DBTransactionStorage;
-import at.gv.egovernment.moa.id.storage.ITransactionStorage;
 import at.gv.egovernment.moa.util.Constants;
 import at.gv.util.DOMUtils;
 
-- 
cgit v1.2.3