diff options
| author | Thomas Lenz <tlenz@iaik.tugraz.at> | 2018-05-28 16:40:30 +0200 | 
|---|---|---|
| committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2018-05-28 16:40:30 +0200 | 
| commit | ebd93e9389e630450e5b052a18a6a6fc8d05f611 (patch) | |
| tree | 8ccc1cf9e27a2a4c21995e64625caffd723ade8b /id/server/idserverlib/src/main | |
| parent | cbc72b4eb01828e56e3244bcfe121d729e7e852a (diff) | |
| download | moa-id-spss-ebd93e9389e630450e5b052a18a6a6fc8d05f611.tar.gz moa-id-spss-ebd93e9389e630450e5b052a18a6a6fc8d05f611.tar.bz2 moa-id-spss-ebd93e9389e630450e5b052a18a6a6fc8d05f611.zip | |
refactore code to use EAAF core components
Diffstat (limited to 'id/server/idserverlib/src/main')
159 files changed, 903 insertions, 7646 deletions
| 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/OAAuthParameterDecorator.java index 59bd3893d..f0477c1fb 100644 --- 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/OAAuthParameterDecorator.java @@ -52,20 +52,19 @@ 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.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.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; @@ -75,7 +74,6 @@ 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; @@ -91,56 +89,24 @@ import at.gv.egovernment.moa.util.MiscUtil;   *   * @author Thomas Lenz   */ -public class OAAuthParameter implements IOAAuthParameters, Serializable{	 +public class OAAuthParameterDecorator 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>();		 +	 +	private ISPConfiguration spConfiguration; +	 -  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 OAAuthParameterDecorator(ISPConfiguration spConfiguration) { +		this.spConfiguration = spConfiguration; +	} -   -  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 { +  public boolean hasBaseIdInternalProcessingRestriction() throws EAAFConfigurationException {  	  String targetAreaIdentifier = getAreaSpecificTargetIdentifier(); -	  for (String el : targetAreasWithNoInteralBaseIdRestriction) { +	  for (String el : spConfiguration.getTargetsWithNoBaseIdInternalProcessingRestriction()) {  		  if (targetAreaIdentifier.startsWith(el))  			  return false; @@ -150,9 +116,9 @@ public class OAAuthParameter implements IOAAuthParameters, Serializable{    }    @Override -  public boolean hasBaseIdTransferRestriction() throws ConfigurationException { +  public boolean hasBaseIdTransferRestriction() throws EAAFConfigurationException {  	  String targetAreaIdentifier = getAreaSpecificTargetIdentifier(); -	  for (String el : targetAreasWithNoBaseIdTransmissionRestriction) { +	  for (String el : spConfiguration.getTargetsWithNoBaseIdTransferRestriction()) {  		  if (targetAreaIdentifier.startsWith(el))  			  return false; @@ -162,7 +128,7 @@ public class OAAuthParameter implements IOAAuthParameters, Serializable{    }    @Override -  public String getAreaSpecificTargetIdentifier() throws ConfigurationException {	   +  public String getAreaSpecificTargetIdentifier() {	    	  if (getBusinessService())  		  return getIdentityLinkDomainIdentifier();  	  else @@ -185,8 +151,8 @@ public class OAAuthParameter implements IOAAuthParameters, Serializable{   */  //@Override  private String getIdentityLinkDomainIdentifier() { -	String type = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_TYPE); -	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_VALUE); +	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; @@ -208,7 +174,7 @@ private String getIdentityLinkDomainIdentifier() {   */  //@Override  private String getIdentityLinkDomainIdentifierType() { -	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_TYPE); +	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_TYPE);  	if (MiscUtil.isNotEmpty(value))  		return MOAIDConfigurationConstants.BUSINESSSERVICENAMES.get(value); @@ -221,17 +187,17 @@ private String getIdentityLinkDomainIdentifierType() {   */  //@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); +	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(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_USE_SUB))) { -			return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_TARGET) +		if (Boolean.parseBoolean(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_USE_SUB))) { +			return spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_TARGET)  					+ "-" -					+ oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_TARGET_SUB); +					+ spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_TARGET_SUB);  		} else { -			return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_TARGET); +			return spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_TARGET);  		}		  	}  } @@ -241,11 +207,11 @@ private String getTarget() {   */  //@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); +	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(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_TARGET)); +		return TargetValidator.getTargetFriendlyName(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_PUBLIC_TARGET));  } @@ -254,7 +220,7 @@ private String getTargetFriendlyName() {   */  @Override  public String getKeyBoxIdentifier() { -	String keyBoxId = oaConfiguration.get( +	String keyBoxId = spConfiguration.getConfigurationValue(  			MOAIDConfigurationConstants.SERVICE_AUTH_BKU_KEYBOXIDENTIFIER);  	if (MiscUtil.isNotEmpty(keyBoxId))  		return keyBoxId; @@ -269,33 +235,33 @@ public String getKeyBoxIdentifier() {  	@Override  	public SAML1ConfigurationParameters getSAML1Parameter() {		  		SAML1ConfigurationParameters returnValue = new SAML1ConfigurationParameters(); -		if (oaConfiguration.containsKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_ENABLED)) +		if (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_ENABLED))  			returnValue.setActive( -					Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_ENABLED))); +					Boolean.valueOf(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_ENABLED))); -		if (oaConfiguration.containsKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_AUTHBLOCK)) +		if (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_AUTHBLOCK))  			returnValue.setProvideAuthBlock( -					Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_AUTHBLOCK))); +					Boolean.valueOf(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_AUTHBLOCK))); -		if (oaConfiguration.containsKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_IDL)) +		if (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_IDL))  			returnValue.setProvideIdl( -					Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_IDL))); +					Boolean.valueOf(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_IDL))); -		if (oaConfiguration.containsKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_BASEID)) +		if (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_BASEID))  			returnValue.setProvideBaseId( -					Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_BASEID))); +					Boolean.valueOf(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_BASEID))); -		if (oaConfiguration.containsKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_CERTIFICATE)) +		if (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_CERTIFICATE))  			returnValue.setProvideCertificate( -					Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_CERTIFICATE))); +					Boolean.valueOf(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_CERTIFICATE))); -		if (oaConfiguration.containsKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_MANDATE)) +		if (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_MANDATE))  			returnValue.setProvideMandate( -					Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_MANDATE))); +					Boolean.valueOf(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_MANDATE))); -		if (oaConfiguration.containsKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_RETURNERROR)) +		if (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_RETURNERROR))  			returnValue.setProvideAllErrors( -					Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_RETURNERROR))); +					Boolean.valueOf(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_PROTOCOLS_SAML1_RETURNERROR)));  		return returnValue;  	} @@ -307,14 +273,14 @@ public String getKeyBoxIdentifier() {  	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 (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_TEMPLATE_FIRST_VALUE)) +			list.add(spConfiguration.getConfigurationValue(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 (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_TEMPLATE_SECOND_VALUE)) +			list.add(spConfiguration.getConfigurationValue(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)); +		if (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_TEMPLATE_THIRD_VALUE)) +			list.add(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_TEMPLATE_THIRD_VALUE));  		return list;  	} @@ -324,7 +290,7 @@ public String getKeyBoxIdentifier() {  	 */  	@Override  	public String getAditionalAuthBlockText() { -		return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_AUTHBLOCKTEXT); +		return spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_AUTHBLOCKTEXT);  	} @@ -334,16 +300,16 @@ public String getKeyBoxIdentifier() {  	@Override  	public String getBKUURL(String bkutype) {  		if (bkutype.equals(THIRDBKU)) { -			return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_THIRD); +			return spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_THIRD);  		} else if (bkutype.equals(HANDYBKU)) { -			return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_HANDY); +			return spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_HANDY);  		} else if (bkutype.equals(LOCALBKU)) { -			return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_LOCAL); +			return spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_LOCAL);  		} else if (bkutype.equals(ONLINEBKU)) { -			return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_THIRD); +			return spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_THIRD);  		} @@ -361,14 +327,14 @@ public String getKeyBoxIdentifier() {  	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 (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_THIRD)) +			list.add(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_THIRD)); -		if (oaConfiguration.containsKey(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_HANDY)) -			list.add(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_HANDY)); +		if (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_HANDY)) +			list.add(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_HANDY)); -		if (oaConfiguration.containsKey(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_LOCAL)) -			list.add(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_LOCAL)); +		if (spConfiguration.containsConfigurationKey(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_LOCAL)) +			list.add(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_LOCAL));  		return list;  	} @@ -380,7 +346,7 @@ public String getKeyBoxIdentifier() {  	@Override  	public boolean useSSO() {  		try { -			return Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_SSO_ENABLED)); +			return Boolean.valueOf(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_SSO_ENABLED));  		} catch (Exception e) {  			Logger.warn("Use SSO configuration parameter is not parseable.", e); @@ -395,7 +361,7 @@ public String getKeyBoxIdentifier() {  	@Override  	public boolean useSSOQuestion() {  		try { -			return Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_SSO_USERREQUEST)); +			return Boolean.valueOf(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_SSO_USERREQUEST));  		} catch (Exception e) {  			Logger.warn("SSO user question configuration parameter is not parseable.", e); @@ -408,7 +374,7 @@ public String getKeyBoxIdentifier() {   */  @Override  public List<String> getMandateProfiles() { -	String profileConfig = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_MANDATES_OVS_PROFILES); +	String profileConfig = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_MANDATES_OVS_PROFILES);  	if (MiscUtil.isNotEmpty(profileConfig)) {  		List<String> list = new ArrayList<String>(); @@ -430,7 +396,7 @@ public List<String> getMandateProfiles() {  @Override  public boolean isShowMandateCheckBox() {  	try { -		return Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_MANDATES_OVS_USE)); +		return Boolean.valueOf(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_MANDATES_OVS_USE));  	} catch (Exception e) {  		Logger.warn("Enable mandates configuration parameter is not parseable.", e); @@ -444,7 +410,7 @@ public boolean isShowMandateCheckBox() {  @Override  public boolean isOnlyMandateAllowed() {  	try { -		return Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_MANDATES_OVS_ONLY)); +		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); @@ -458,7 +424,7 @@ public boolean isOnlyMandateAllowed() {  	@Override  	public boolean isShowStorkLogin() {  		try { -			return Boolean.valueOf(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ENABLED)); +			return Boolean.valueOf(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ENABLED));  		} catch (Exception e) {  			Logger.warn("Enable STORK login configuration parameter is not parseable.", e); @@ -472,7 +438,7 @@ public boolean isOnlyMandateAllowed() {   */  @Override  public String getQaaLevel() { -		String eidasLoALevel = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_MINQAALEVEL);	 +		String eidasLoALevel = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_MINQAALEVEL);	  		if (MiscUtil.isEmpty(eidasLoALevel))  			return MOAIDConstants.eIDAS_LOA_HIGH;		  		else @@ -488,23 +454,23 @@ 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();	 +	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 = oaConfiguration.get( +				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( -							oaConfiguration.get( +							spConfiguration.getConfigurationValue(  									MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST  										+ "." + index + "."  										+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST_NAME), -									Boolean.valueOf(oaConfiguration.get( +									Boolean.valueOf(spConfiguration.getConfigurationValue(  											MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST  											+ "." + index + "."  											+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTES_LIST_MANDATORY))); @@ -540,13 +506,13 @@ public boolean isRequireConsentForStorkAttributes() {  		if (isSTORKPVPGateway())  			return false; -		if (MiscUtil.isEmpty(oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_REQUIRECONSENT))) { +		if (MiscUtil.isEmpty(spConfiguration.getConfigurationValue(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)); +		return Boolean.parseBoolean(spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_STORK_REQUIRECONSENT));  	}catch(Exception e)  	{  		Logger.warn("isRequireConsentForStorkAttributes() failed, returning default value 'true'", e); @@ -560,21 +526,21 @@ public boolean isRequireConsentForStorkAttributes() {  @Override  public Collection<StorkAttributeProviderPlugin> getStorkAPs() {  	Map<String, StorkAttributeProviderPlugin> pluginMap = new HashMap<String, StorkAttributeProviderPlugin>();	 -	Set<String> configKeys = oaConfiguration.keySet();	 +	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( -						oaConfiguration.get( +						spConfiguration.getConfigurationValue(  								MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTPROVIDER_LIST  									+ "." + index + "."  									+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTPROVIDER_LIST_NAME), -						oaConfiguration.get( +						spConfiguration.getConfigurationValue(  								MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTPROVIDER_LIST  									+ "." + index + "."  									+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTPROVIDER_LIST_URL), -						oaConfiguration.get( +						spConfiguration.getConfigurationValue(  								MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTPROVIDER_LIST  									+ "." + index + "."  									+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_ATTRIBUTPROVIDER_LIST_ATTRIBUTES)); @@ -592,7 +558,7 @@ public Collection<StorkAttributeProviderPlugin> getStorkAPs() {  @Override  public byte[] getBKUSelectionTemplate() {  	try { -		String bkuSelectionTemplateBase64 = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_BKUSELECTION_DATA);	 +		String bkuSelectionTemplateBase64 = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_BKUSELECTION_DATA);	  		if (MiscUtil.isNotEmpty(bkuSelectionTemplateBase64)) {  			return  Base64Utils.decode(bkuSelectionTemplateBase64, false); @@ -612,7 +578,7 @@ public byte[] getBKUSelectionTemplate() {  @Override  public byte[] getSendAssertionTemplate() {  	try { -		String bkuSelectionTemplateBase64 = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_SENDASSERTION_DATA);	 +		String bkuSelectionTemplateBase64 = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_SENDASSERTION_DATA);	  		if (MiscUtil.isNotEmpty(bkuSelectionTemplateBase64)) {  			return  Base64Utils.decode(bkuSelectionTemplateBase64, false); @@ -635,18 +601,18 @@ public Collection<CPEPS> getPepsList() {  	try {  		IStorkConfig availableSTORKConfig = AuthConfigurationProviderFactory.getInstance().getStorkConfig();	  		if (availableSTORKConfig != null) {	 -			Set<String> configKeys = oaConfiguration.keySet();	 +			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(oaConfiguration.get( +						if (Boolean.parseBoolean(spConfiguration.getConfigurationValue(  								MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST  								+ "." + index + "."  								+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST_ENABLED))) {  							CPEPS availableCPEPS = availableSTORKConfig.getCPEPSWithFullName( -									oaConfiguration.get( +									spConfiguration.getConfigurationValue(  											MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST  											+ "." + index + "."  											+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST_COUNTRYCODE)); @@ -672,13 +638,13 @@ public Collection<CPEPS> getPepsList() {   */  @Override  public String getIDPAttributQueryServiceURL() { -	return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_ATTRIBUTQUERY_URL); +	return spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_ATTRIBUTQUERY_URL);  }  @Override  public boolean isInboundSSOInterfederationAllowed() { -	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_SSO_INBOUND); +	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_SSO_INBOUND);  	if (MiscUtil.isNotEmpty(value))  		return Boolean.parseBoolean(value);	  	else @@ -687,7 +653,7 @@ public boolean isInboundSSOInterfederationAllowed() {  @Override  public boolean isOutboundSSOInterfederationAllowed() { -	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_SSO_OUTBOUND); +	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_SSO_OUTBOUND);  	if (MiscUtil.isNotEmpty(value))  		return Boolean.parseBoolean(value);	  	else @@ -696,7 +662,7 @@ public boolean isOutboundSSOInterfederationAllowed() {  @Override  public boolean isPassivRequestUsedForInterfederation() { -	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_PASSIVEREQUEST); +	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_PASSIVEREQUEST);  	if (MiscUtil.isNotEmpty(value))  		return Boolean.parseBoolean(value);	  	else @@ -705,7 +671,7 @@ public boolean isPassivRequestUsedForInterfederation() {  @Override  public boolean isPerformLocalAuthenticationOnInterfederationError() { -	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_LOCALAUTHONERROR); +	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_LOCALAUTHONERROR);  	if (MiscUtil.isNotEmpty(value))  		return Boolean.parseBoolean(value);	  	else @@ -714,7 +680,7 @@ public boolean isPerformLocalAuthenticationOnInterfederationError() {  @Override  public boolean isInterfederationSSOStorageAllowed() { -	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_SSO_STORE); +	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_SSO_STORE);  	if (MiscUtil.isNotEmpty(value))  		return Boolean.parseBoolean(value);	  	else @@ -722,13 +688,19 @@ public boolean isInterfederationSSOStorageAllowed() {  }  public boolean isIDPPublicService() throws ConfigurationException { -	return !hasBaseIdTransferRestriction(); +	try { +		return !hasBaseIdTransferRestriction(); +		 +	} catch (EAAFConfigurationException e) { +		throw new ConfigurationException("internal.00", new Object[] {}, e); +		 +	}  }  public String getSTORKPVPForwardEntity() { -	return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_FORWARD_IDPIDENTIFIER); +	return spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_INTERFEDERATION_FORWARD_IDPIDENTIFIER);  } @@ -737,7 +709,7 @@ public String getSTORKPVPForwardEntity() {   */  @Override  public boolean isTestCredentialEnabled() { -	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TESTCREDENTIALS_ENABLED); +	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TESTCREDENTIALS_ENABLED);  	if (MiscUtil.isNotEmpty(value))  		return Boolean.parseBoolean(value);	  	else @@ -750,7 +722,7 @@ public boolean isTestCredentialEnabled() {   */  @Override  public List<String> getTestCredentialOIDs() { -	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TESTCREDENTIALS_OIDs); +	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TESTCREDENTIALS_OIDs);  	if (MiscUtil.isNotEmpty(value)) {  		List<String> list = new ArrayList<String>();  		String profilesArray[] = value.split(",");  	 		  @@ -774,9 +746,9 @@ public PrivateKey getBPKDecBpkDecryptionKey() {  	try {		  		EncryptedData encdata = new EncryptedData(  				Base64Utils.decode( -					oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_FOREIGNBPK_DECRYPT_BLOB), false),  +					spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_FOREIGNBPK_DECRYPT_BLOB), false),   				Base64Utils.decode( -						oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_FOREIGNBPK_DECRYPT_IV), false)); +						spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_FOREIGNBPK_DECRYPT_IV), false));  		byte[] serializedData = ConfigurationEncrytionUtil.getInstance().decrypt(encdata);  		BPKDecryptionParameters data =  @@ -804,12 +776,13 @@ public PrivateKey getBPKDecBpkDecryptionKey() {   */  @Override  public String getPublicURLPrefix() { -	return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_UNIQUEIDENTIFIER); +	return spConfiguration.getUniqueIdentifier(); +	  }  private boolean getBusinessService() { -	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_BUSINESSSERVICE); +	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_BUSINESSSERVICE);  	if (MiscUtil.isNotEmpty(value))  		return Boolean.parseBoolean(value);	  	else @@ -821,7 +794,7 @@ private boolean getBusinessService() {   */  @Override  public boolean isInderfederationIDP() { -	String value = oaConfiguration.get(MOAIDConfigurationConstants.PREFIX_MOAID_SERVICES); +	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.PREFIX_MOAID_SERVICES);  	return MOAIDConfigurationConstants.PREFIX_IIDP.equals(value);  } @@ -832,7 +805,7 @@ public boolean isInderfederationIDP() {   */  @Override  public boolean isSTORKPVPGateway() { -	String value = oaConfiguration.get(MOAIDConfigurationConstants.PREFIX_MOAID_SERVICES); +	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.PREFIX_MOAID_SERVICES);  	return MOAIDConfigurationConstants.PREFIX_GATEWAY.equals(value);  } @@ -845,7 +818,7 @@ public boolean isSTORKPVPGateway() {   */  @Override  public String getFriendlyName() { -	return oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_FRIENDLYNAME); +	return spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_FRIENDLYNAME);  } @@ -866,7 +839,7 @@ public String getFriendlyName() {   * @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); +	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_BKU_AUTHBLOCK_REMOVEBPK);  	if (MiscUtil.isNotEmpty(value))  		return Boolean.parseBoolean(value);	  	else @@ -879,9 +852,9 @@ public boolean isRemovePBKFromAuthBlock() {   */  @Override  public List<Integer> getReversionsLoggingEventCodes() { -	String isEnabled = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_REVERSION_LOGS_ENABLED); +	String isEnabled = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_REVERSION_LOGS_ENABLED);  	if (MiscUtil.isNotEmpty(isEnabled) && Boolean.parseBoolean(isEnabled)) { -		String eventCodes = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_REVERSION_LOGS_EVENTCODES); +		String eventCodes = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_REVERSION_LOGS_EVENTCODES);  		if (MiscUtil.isNotEmpty(eventCodes)) {  			String[] codes = eventCodes.split(",");  			List<Integer> result = new ArrayList<Integer>(); @@ -908,7 +881,7 @@ public List<Integer> getReversionsLoggingEventCodes() {   */  @Override  public boolean isUseIDLTestTrustStore() { -	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TESTCREDENTIALS_USETESTIDLTRUSTSTORE); +	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TESTCREDENTIALS_USETESTIDLTRUSTSTORE);  	if (MiscUtil.isNotEmpty(value))  		return Boolean.parseBoolean(value);	  	else @@ -921,7 +894,7 @@ public boolean isUseIDLTestTrustStore() {   */  @Override  public boolean isUseAuthBlockTestTestStore() { -	String value = oaConfiguration.get(MOAIDConfigurationConstants.SERVICE_AUTH_TESTCREDENTIALS_USETESTAUTHBLOCKTRUSTSTORE); +	String value = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TESTCREDENTIALS_USETESTAUTHBLOCKTRUSTSTORE);  	if (MiscUtil.isNotEmpty(value))  		return Boolean.parseBoolean(value);	  	else @@ -929,10 +902,57 @@ public boolean isUseAuthBlockTestTestStore() {  }  public String toString() { -	if (oaConfiguration != null) -		return Arrays.asList(oaConfiguration).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; +		  	}  	/** @@ -172,14 +135,6 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide  	}  	/** -	 * 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  	 * @return the given {@link Collection} {@code item} if it is not {@code null}, or an empty {@link List} otherwise. @@ -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)  	 */ @@ -400,22 +339,6 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide  	}  	/** -	 * 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.  	 *   	 * @return a string with a url-reference to the VerifyAuthBlock trust profile ID. @@ -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> - * ... - * <filter> - *   <filter-name>requestContextFilter</filter-name> - *   <filter-class>org.springframework.web.filter.RequestContextFilter</filter-class> - * </filter> - * <filter-mapping> - *   <filter-name>requestContextFilter</filter-name> - *   <url-pattern>/*</url-pattern> - * </filter-mapping> - * ... - * </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 | 
