diff options
| author | Thomas Lenz <tlenz@iaik.tugraz.at> | 2014-11-03 11:13:38 +0100 | 
|---|---|---|
| committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2014-11-03 11:13:38 +0100 | 
| commit | a3e59e5011e16271dab6cc8299a1d1241b4a7fb2 (patch) | |
| tree | aae2f450b7296a286c09a8c51d423aec4bedd0dd /id/ConfigWebTool/src/main/java | |
| parent | 83dc74e60a4d9031285ac27aa0661fe0c26485e0 (diff) | |
| parent | 1fbff5f5a86733bc6a75c8ae901153baa0963441 (diff) | |
| download | moa-id-spss-a3e59e5011e16271dab6cc8299a1d1241b4a7fb2.tar.gz moa-id-spss-a3e59e5011e16271dab6cc8299a1d1241b4a7fb2.tar.bz2 moa-id-spss-a3e59e5011e16271dab6cc8299a1d1241b4a7fb2.zip | |
Merge branch 'moa-2.1-Snapshot'MOA-SPSS-2.0.3MOA-ID-2.1.2
Conflicts:
	.gitignore
Diffstat (limited to 'id/ConfigWebTool/src/main/java')
13 files changed, 637 insertions, 264 deletions
| diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/GeneralStorkConfig.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/GeneralStorkConfig.java index 5e177655d..975f627d4 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/GeneralStorkConfig.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/GeneralStorkConfig.java @@ -26,6 +26,7 @@ import java.util.ArrayList;  import java.util.List;  import at.gv.egovernment.moa.id.commons.db.ConfigurationDBRead; +import at.gv.egovernment.moa.id.commons.db.ConfigurationDBUtils;  import at.gv.egovernment.moa.id.commons.db.dao.config.AuthComponentGeneral;  import at.gv.egovernment.moa.id.commons.db.dao.config.CPEPS;  import at.gv.egovernment.moa.id.commons.db.dao.config.ForeignIdentities; @@ -42,6 +43,22 @@ public class GeneralStorkConfig {  	private int qaa;      private static final Logger log = Logger.getLogger(GeneralStorkConfig.class); +    private MOAIDConfiguration dbconfig = null; +     +    /** +	 *  +	 */ +	public GeneralStorkConfig() { +		dbconfig = ConfigurationDBRead.getMOAIDConfiguration(); +		 +	} +     +	@Override +    protected void finalize() throws Throwable { +		ConfigurationDBUtils.closeSession(); +        super.finalize();         +    } +		      public void parse(MOAIDConfiguration config) {          log.info("Initializing general Stork config"); @@ -93,7 +110,7 @@ public class GeneralStorkConfig {  		if (null == cpepslist)  			return null; -		MOAIDConfiguration dbconfig = ConfigurationDBRead.getMOAIDConfiguration(); +		//MOAIDConfiguration dbconfig = ConfigurationDBRead.getMOAIDConfiguration();  		try {  			List<CPEPS> cpepss = dbconfig.getAuthComponentGeneral().getForeignIdentities().getSTORK().getCPEPS(); diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/OAListElement.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/OAListElement.java index c4a825589..28eba9f34 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/OAListElement.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/OAListElement.java @@ -24,7 +24,7 @@ package at.gv.egovernment.moa.id.configuration.data;  public class OAListElement { -	public enum ServiceType {OA, VIDP, IDP}  +	public enum ServiceType {OA, VIDP, IDP, GWAY}   	private long dataBaseID;  	private String oaIdentifier; diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAMOAIDPInterfederationConfig.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAMOAIDPInterfederationConfig.java index 9431cc1fd..2f9df18aa 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAMOAIDPInterfederationConfig.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAMOAIDPInterfederationConfig.java @@ -45,9 +45,11 @@ public class OAMOAIDPInterfederationConfig implements IOnlineApplicationData {  	private static final Logger log = Logger.getLogger(OAMOAIDPInterfederationConfig.class);  	private String queryURL; -	private boolean inboundSSO = true; -	private boolean outboundSSO = true; -	private boolean storeSSOSession = true; +	private Boolean inboundSSO = true; +	private Boolean outboundSSO = true; +	private Boolean storeSSOSession = true; +	private Boolean passiveRequest = true; +	private Boolean localAuthOnError = true;  	/* (non-Javadoc)  	 * @see at.gv.egovernment.moa.id.configuration.data.oa.IOnlineApplicationData#getName() @@ -70,6 +72,8 @@ public class OAMOAIDPInterfederationConfig implements IOnlineApplicationData {  			this.inboundSSO = moaIDP.isInboundSSO();  			this.outboundSSO = moaIDP.isOutboundSSO();  			this.storeSSOSession = moaIDP.isStoreSSOSession(); +			this.localAuthOnError = moaIDP.isPerformLocalAuthenticationOnError(); +			this.passiveRequest = moaIDP.isPerformPassivRequest();  		}  		return null; @@ -95,8 +99,10 @@ public class OAMOAIDPInterfederationConfig implements IOnlineApplicationData {  			moaIDP.setInboundSSO(inboundSSO);  			moaIDP.setOutboundSSO(outboundSSO);  			moaIDP.setStoreSSOSession(storeSSOSession); -		} -		 +			moaIDP.setPerformLocalAuthenticationOnError(localAuthOnError); +			moaIDP.setPerformPassivRequest(passiveRequest); +			 +		}		  		return null;  	} @@ -143,7 +149,7 @@ public class OAMOAIDPInterfederationConfig implements IOnlineApplicationData {  	 * @return the inboundSSO  	 */  	public boolean isInboundSSO() { -		return inboundSSO; +		return inboundSSO.booleanValue();  	}  	/** @@ -157,7 +163,7 @@ public class OAMOAIDPInterfederationConfig implements IOnlineApplicationData {  	 * @return the outboundSSO  	 */  	public boolean isOutboundSSO() { -		return outboundSSO; +		return outboundSSO.booleanValue();  	}  	/** @@ -171,7 +177,7 @@ public class OAMOAIDPInterfederationConfig implements IOnlineApplicationData {  	 * @return the storeSSOSession  	 */  	public boolean isStoreSSOSession() { -		return storeSSOSession; +		return storeSSOSession.booleanValue();  	}  	/** @@ -180,6 +186,34 @@ public class OAMOAIDPInterfederationConfig implements IOnlineApplicationData {  	public void setStoreSSOSession(boolean storeSSOSession) {  		this.storeSSOSession = storeSSOSession;  	} + +	/** +	 * @return the passiveRequest +	 */ +	public boolean isPassiveRequest() { +		return passiveRequest.booleanValue(); +	} + +	/** +	 * @param passiveRequest the passiveRequest to set +	 */ +	public void setPassiveRequest(boolean passiveRequest) { +		this.passiveRequest = passiveRequest; +	} + +	/** +	 * @return the localAuthOnError +	 */ +	public boolean isLocalAuthOnError() { +		return localAuthOnError.booleanValue(); +	} + +	/** +	 * @param localAuthOnError the localAuthOnError to set +	 */ +	public void setLocalAuthOnError(boolean localAuthOnError) { +		this.localAuthOnError = localAuthOnError; +	} diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OASTORKConfig.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OASTORKConfig.java index 45875010b..e0a312c09 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OASTORKConfig.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OASTORKConfig.java @@ -30,9 +30,11 @@ import javax.servlet.http.HttpServletRequest;  import org.apache.log4j.Logger;  import at.gv.egovernment.moa.id.commons.db.ConfigurationDBRead; +import at.gv.egovernment.moa.id.commons.db.ConfigurationDBUtils;  import at.gv.egovernment.moa.id.commons.db.dao.config.AttributeProviderPlugin;  import at.gv.egovernment.moa.id.commons.db.dao.config.AuthComponentOA;  import at.gv.egovernment.moa.id.commons.db.dao.config.CPEPS; +import at.gv.egovernment.moa.id.commons.db.dao.config.MOAIDConfiguration;  import at.gv.egovernment.moa.id.commons.db.dao.config.OASTORK;  import at.gv.egovernment.moa.id.commons.db.dao.config.OAStorkAttribute;  import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication; @@ -59,11 +61,16 @@ public class OASTORKConfig implements IOnlineApplicationData{  	private List<String> citizenCountries;  	private List<String> enabledCitizenCountries; +	private MOAIDConfiguration dbconfig = null; +	  	public OASTORKConfig() {  		// fetch available citizen countries  		citizenCountries = new ArrayList<String>(); +		 +		dbconfig = ConfigurationDBRead.getMOAIDConfiguration(); +		  		try { -			for(CPEPS current : ConfigurationDBRead.getMOAIDConfiguration().getAuthComponentGeneral().getForeignIdentities().getSTORK().getCPEPS()) { +			for(CPEPS current : dbconfig.getAuthComponentGeneral().getForeignIdentities().getSTORK().getCPEPS()) {  				citizenCountries.add(current.getCountryCode());  			} @@ -73,6 +80,12 @@ public class OASTORKConfig implements IOnlineApplicationData{  	} +	@Override +    protected void finalize() throws Throwable { +		ConfigurationDBUtils.closeSession(); +        super.finalize();         +    } +	  	/* (non-Javadoc)  	 * @see at.gv.egovernment.moa.id.configuration.data.oa.IOnlineApplicationData#getName()  	 */ @@ -98,7 +111,7 @@ public class OASTORKConfig implements IOnlineApplicationData{  					setQaa(config.getQaa());  				} catch(NullPointerException e) {  					// if there is no configuration available for the OA, get the default qaa level -					setQaa(ConfigurationDBRead.getMOAIDConfiguration().getAuthComponentGeneral().getForeignIdentities().getSTORK().getQualityAuthenticationAssuranceLevel()); +					setQaa(dbconfig.getAuthComponentGeneral().getForeignIdentities().getSTORK().getQualityAuthenticationAssuranceLevel());  				} @@ -110,7 +123,7 @@ public class OASTORKConfig implements IOnlineApplicationData{  				attributes = new ArrayList<AttributeHelper>();                  try {                  	try { -                		for(StorkAttribute current : ConfigurationDBRead.getMOAIDConfiguration().getAuthComponentGeneral().getForeignIdentities().getSTORK().getAttributes()) { +                		for(StorkAttribute current : dbconfig.getAuthComponentGeneral().getForeignIdentities().getSTORK().getAttributes()) {                  			AttributeHelper tmp = null;                  			for(OAStorkAttribute sepp : config.getOAAttributes()) @@ -220,7 +233,7 @@ public class OASTORKConfig implements IOnlineApplicationData{  			return result;  		for(AttributeHelper current : getHelperAttributes()) { -			for(StorkAttribute currentAttribute : ConfigurationDBRead.getMOAIDConfiguration().getAuthComponentGeneral().getForeignIdentities().getSTORK().getAttributes()) +			for(StorkAttribute currentAttribute : dbconfig.getAuthComponentGeneral().getForeignIdentities().getSTORK().getAttributes())  				if(currentAttribute.getName().equals(current.getName())) {  					if(current.isUsed() || currentAttribute.isMandatory()) {  						OAStorkAttribute tmp = new OAStorkAttribute(); @@ -260,7 +273,7 @@ public class OASTORKConfig implements IOnlineApplicationData{  			List<CPEPS> result = new ArrayList<CPEPS>();  			try { -				for(CPEPS current : ConfigurationDBRead.getMOAIDConfiguration().getAuthComponentGeneral().getForeignIdentities().getSTORK().getCPEPS()) { +				for(CPEPS current : dbconfig.getAuthComponentGeneral().getForeignIdentities().getSTORK().getCPEPS()) {  					if(enabledCitizenCountries.contains(current.getCountryCode()))  						result.add(current);  				} diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/PVPGatewayInterfederationConfig.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/PVPGatewayInterfederationConfig.java new file mode 100644 index 000000000..23af59d8e --- /dev/null +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/PVPGatewayInterfederationConfig.java @@ -0,0 +1,136 @@ +/* + * 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.configuration.data.oa; + +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.log4j.Logger; + +import at.gv.egovernment.moa.id.commons.db.dao.config.InterfederationGatewayType; +import at.gv.egovernment.moa.id.commons.db.dao.config.InterfederationIDPType; +import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication; +import at.gv.egovernment.moa.id.commons.validation.ValidationHelper; +import at.gv.egovernment.moa.id.configuration.Constants; +import at.gv.egovernment.moa.id.configuration.auth.AuthenticatedUser; +import at.gv.egovernment.moa.id.configuration.helper.LanguageHelper; +import at.gv.egovernment.moa.util.MiscUtil; + +/** + * @author tlenz + * + */ +public class PVPGatewayInterfederationConfig implements IOnlineApplicationData { + +	private static final Logger log = Logger.getLogger(PVPGatewayInterfederationConfig.class); +	 +	private String entityID = null; +	 +	/* (non-Javadoc) +	 * @see at.gv.egovernment.moa.id.configuration.data.oa.IOnlineApplicationData#getName() +	 */ +	@Override +	public String getName() { +		return "PVPGatewayInterfederation"; +	} + +	/* (non-Javadoc) +	 * @see at.gv.egovernment.moa.id.configuration.data.oa.IOnlineApplicationData#parse(at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication, at.gv.egovernment.moa.id.configuration.auth.AuthenticatedUser, javax.servlet.http.HttpServletRequest) +	 */ +	@Override +	public List<String> parse(OnlineApplication dbOA, +			AuthenticatedUser authUser, HttpServletRequest request) { +		 +		InterfederationGatewayType gateway = dbOA.getInterfederationGateway(); +		if (gateway != null) { +			this.entityID = gateway.getForwardIDPIdentifier(); + +		} +		 +		return null; +	} + +	/* (non-Javadoc) +	 * @see at.gv.egovernment.moa.id.configuration.data.oa.IOnlineApplicationData#store(at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication, at.gv.egovernment.moa.id.configuration.auth.AuthenticatedUser, javax.servlet.http.HttpServletRequest) +	 */ +	@Override +	public String store(OnlineApplication dbOA, AuthenticatedUser authUser, +			HttpServletRequest request) { + +		if (authUser.isAdmin()) {			 +			dbOA.setIsInterfederationGateway(true); +			 +			InterfederationGatewayType gateway = dbOA.getInterfederationGateway(); +			if (gateway == null) { +				gateway = new InterfederationGatewayType(); +				dbOA.setInterfederationGateway(gateway); +			} +			 +			gateway.setForwardIDPIdentifier(entityID); +		} +		 +		dbOA.setType(Constants.MOA_CONFIG_BUSINESSSERVICE);		 +		return null; +	} + +	/* (non-Javadoc) +	 * @see at.gv.egovernment.moa.id.configuration.data.oa.IOnlineApplicationData#validate(at.gv.egovernment.moa.id.configuration.data.oa.OAGeneralConfig, at.gv.egovernment.moa.id.configuration.auth.AuthenticatedUser, javax.servlet.http.HttpServletRequest) +	 */ +	@Override +	public List<String> validate(OAGeneralConfig general, +			AuthenticatedUser authUser, HttpServletRequest request) { +		 +		List<String> errors  = new ArrayList<String>(); +		 +		if (MiscUtil.isNotEmpty(entityID)) { +			if (!ValidationHelper.validateURL(entityID)) { +				log.info("PVP gateway EntityID is not valid"); +				errors.add(LanguageHelper.getErrorString("validation.interfederation.gateway.entityID.valid", request)); +				 +			} +			 +		} else +			errors.add(LanguageHelper.getErrorString("validation.interfederation.gateway.entityID.empty", request)); +				 +		return errors; +	} + +	/** +	 * @return the entityID +	 */ +	public String getEntityID() { +		return entityID; +	} + +	/** +	 * @param entityID the entityID to set +	 */ +	public void setEntityID(String entityID) { +		this.entityID = entityID; +	} + + +	 +} diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/FormDataHelper.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/FormDataHelper.java index dc97dd2c8..150483dd8 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/FormDataHelper.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/FormDataHelper.java @@ -43,6 +43,9 @@ public class FormDataHelper {  			if (dboa.isIsInterfederationIDP()!= null && dboa.isIsInterfederationIDP())  				formOAs.add(addOAFormListElement(dboa, ServiceType.IDP)); +			else if (dboa.isIsInterfederationGateway()!= null && dboa.isIsInterfederationGateway()) +				formOAs.add(addOAFormListElement(dboa, ServiceType.GWAY)); +			  			else if (dboa.getAuthComponentOA().getOASTORK() != null   						&& dboa.getAuthComponentOA().getOASTORK().isVidpEnabled() != null  						&& dboa.getAuthComponentOA().getOASTORK().isVidpEnabled()) diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/BasicOAAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/BasicOAAction.java index 9c1cb90e0..5a9787069 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/BasicOAAction.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/BasicOAAction.java @@ -142,7 +142,7 @@ public class BasicOAAction extends BasicAction {          session.setAttribute(Constants.SESSION_BKUFORMPREVIEW, null);      } -    protected OnlineApplication postProcessSaveOnlineApplication(OnlineApplication onlineapplication ) throws BasicOAActionException { +    protected OnlineApplication postProcessSaveOnlineApplication(OnlineApplication onlineapplication, boolean persistOA) throws BasicOAActionException {      	 if (onlineapplication == null) {               onlineapplication = new OnlineApplication();               onlineapplication.setIsNew(true); @@ -186,7 +186,7 @@ public class BasicOAAction extends BasicAction {           }           //save OA configuration -         String error = saveOAConfigToDatabase(onlineapplication); +         String error = saveOAConfigToDatabase(onlineapplication, persistOA);           if (MiscUtil.isNotEmpty(error)) {               log.warn("OA configuration can not be stored!");               addActionError(error); @@ -395,15 +395,13 @@ public class BasicOAAction extends BasicAction {      	}      } -    private String saveOAConfigToDatabase(OnlineApplication dboa) { +    private String saveOAConfigToDatabase(OnlineApplication dboa, boolean persistOA) {      	for (IOnlineApplicationData form : formList.values())      		form.store(dboa, authUser, request);          try { -            if (dboa.isIsNew()) { -                ConfigurationDBUtils.save(dboa); - +            if (dboa.isIsNew()) {                                if (!authUser.isAdmin()) {                      UserDatabase user = ConfigurationDBRead.getUserWithID(authUser.getUserID()); @@ -412,9 +410,16 @@ public class BasicOAAction extends BasicAction {                      useroas.add(dboa);                      ConfigurationDBUtils.saveOrUpdate(user); +                     +                } else { +                	if (persistOA) +                		ConfigurationDBUtils.save(dboa); +                	                  } +                              } else -                ConfigurationDBUtils.saveOrUpdate(dboa); +            	if (persistOA) +            		ConfigurationDBUtils.saveOrUpdate(dboa);          } catch (MOADatabaseException e) {              log.warn("Online-Application can not be stored.", e); diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditGeneralConfigAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditGeneralConfigAction.java index 7f609d95e..31c29aef0 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditGeneralConfigAction.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditGeneralConfigAction.java @@ -132,7 +132,7 @@ public class EditGeneralConfigAction extends BasicAction {  	public String saveConfig() {  		try {  			populateBasicInformations(); -			 +						  		} catch (BasicActionException e) {  			return Constants.STRUTS_ERROR; @@ -210,6 +210,8 @@ public class EditGeneralConfigAction extends BasicAction {  	public String back() {  		try {  			populateBasicInformations(); +			ConfigurationDBUtils.closeSession(); +			  		} catch (BasicActionException e) {  			return Constants.STRUTS_ERROR; @@ -222,15 +224,15 @@ public class EditGeneralConfigAction extends BasicAction {  	private String saveFormToDatabase() {          log.debug("Saving form to database"); -        log.error("Saving form to db"); -        log.info("SV frm db"); +//        log.error("Saving form to db"); +//        log.info("SV frm db"); -        for (Object obj : Collections.list(request.getParameterNames())) { -            log.error(" PARAM: " + obj.toString()); -        } -        for (Object obj : Collections.list(request.getSession().getAttributeNames())) { -            log.error(" SES PARAM: " + obj.toString()); -        } +//        for (Object obj : Collections.list(request.getParameterNames())) { +//            log.error(" PARAM: " + obj.toString()); +//        } +//        for (Object obj : Collections.list(request.getSession().getAttributeNames())) { +//            log.error(" SES PARAM: " + obj.toString()); +//        }          try {              log.error(" ASSERTION " + moaconfig.getTimeoutAssertion()); @@ -523,8 +525,11 @@ public class EditGeneralConfigAction extends BasicAction {              ForeignIdentities foreign = dbauth.getForeignIdentities();  			if (foreign != null) {  				STORK stork = foreign.getSTORK(); -				if (stork == null) +				if (stork == null) {  					stork = new STORK(); +					foreign.setSTORK(stork); +					 +				}                  try {                  log.error("QAAAA " + storkconfig.getDefaultQaa()); @@ -651,9 +656,11 @@ public class EditGeneralConfigAction extends BasicAction {  		} catch (MOADatabaseException e) {  			log.warn("MOAID Configuration can not be stored in Database", e);  			return LanguageHelper.getErrorString("error.db.oa.store", request); +			 +		} finally { +			ConfigurationDBUtils.closeSession(); +			  		} - -		ConfigurationDBUtils.closeSession();  		return null;  	} diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java index 3d96cc1e5..1da948eec 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java @@ -108,9 +108,7 @@ public class EditOAAction extends BasicOAAction {  			}  			setNewOA(false); - -			ConfigurationDBUtils.closeSession(); - +			  			formID = Random.nextRandom();  			session.setAttribute(Constants.SESSION_FORMID, formID);  			session.setAttribute(Constants.SESSION_OAID, oaid); @@ -123,6 +121,10 @@ public class EditOAAction extends BasicOAAction {  		} catch (BasicOAActionException e) {  			addActionError(e.getStrutsError());  			return e.getStrutsReturnValue(); +			 +		} finally { +			ConfigurationDBUtils.closeSession(); +			  		}  	} @@ -149,32 +151,34 @@ public class EditOAAction extends BasicOAAction {  			}  			getStorkOA().setHelperAttributes(attributes); -			 +					 +			UserDatabase userdb = ConfigurationDBRead.getUserWithID(authUser +					.getUserID()); +	 +			if (!authUser.isAdmin() && userdb.isIsMailAddressVerified() != null +					&& !userdb.isIsMailAddressVerified()) { +				log.info("Online-Applikation managemant disabled. Mail address is not verified."); +				addActionError(LanguageHelper.getErrorString( +						"error.editoa.mailverification", request)); +				return Constants.STRUTS_SUCCESS; +			} +				 +			session.setAttribute( +					Constants.SESSION_OAUTH20SECRET, +					((OAOAuth20Config) formList.get(new OAOAuth20Config().getName())) +							.getClientSecret()); +			session.setAttribute(Constants.SESSION_BKUFORMPREVIEW, getFormOA().getFormMap()); +			nextPage = Constants.STRUTS_RETURNAREA_VALUES.main.name(); +	 +			return Constants.STRUTS_OA_EDIT; +		  		} catch (BasicActionException e) {  			return Constants.STRUTS_ERROR; +		} finally { +			ConfigurationDBUtils.closeSession(); +			  		} - -		UserDatabase userdb = ConfigurationDBRead.getUserWithID(authUser -				.getUserID()); - -		if (!authUser.isAdmin() && userdb.isIsMailAddressVerified() != null -				&& !userdb.isIsMailAddressVerified()) { -			log.info("Online-Applikation managemant disabled. Mail address is not verified."); -			addActionError(LanguageHelper.getErrorString( -					"error.editoa.mailverification", request)); -			return Constants.STRUTS_SUCCESS; -		} - -		ConfigurationDBUtils.closeSession(); -		session.setAttribute( -				Constants.SESSION_OAUTH20SECRET, -				((OAOAuth20Config) formList.get(new OAOAuth20Config().getName())) -						.getClientSecret()); -		session.setAttribute(Constants.SESSION_BKUFORMPREVIEW, getFormOA().getFormMap()); -		nextPage = Constants.STRUTS_RETURNAREA_VALUES.main.name(); - -		return Constants.STRUTS_OA_EDIT;  	}  	public String saveOA() { @@ -183,9 +187,92 @@ public class EditOAAction extends BasicOAAction {  		try {  			populateBasicInformations(); -  			onlineapplication = preProcessSaveOnlineApplication(); +			List<String> errors = new ArrayList<String>(); +	 +			// validate forms +			for (IOnlineApplicationData form : formList.values()) +				errors.addAll(form.validate(getGeneralOA(), authUser, request)); +	 +			// Do not allow SSO in combination with special BKUSelection features +			if (getSsoOA().isUseSSO() +					&& (getFormOA().isOnlyMandateAllowed() || !getFormOA() +							.isShowMandateLoginButton())) { +				log.warn("Special BKUSelection features can not be used in combination with SSO"); +				errors.add(LanguageHelper.getErrorString( +						"validation.general.bkuselection.specialfeatures.valid", +						request)); +			} +	 +			if (errors.size() > 0) { +				log.info("OAConfiguration with ID " +						+ getGeneralOA().getIdentifier() + " has some errors."); +				for (String el : errors) +					addActionError(el); +	 +				formID = Random.nextRandom(); +				session.setAttribute(Constants.SESSION_FORMID, formID); +				return Constants.STRUTS_ERROR_VALIDATION; +	 +			} else { +				try { +					onlineapplication = postProcessSaveOnlineApplication(onlineapplication, true); +	 +				} catch (BasicOAActionException e) { +					addActionError(e.getStrutsError()); +					return e.getStrutsReturnValue(); +				} +	 +			} +	 +			Object nextPageAttr = session +					.getAttribute(Constants.SESSION_RETURNAREA); +			if (nextPageAttr != null && nextPageAttr instanceof String) { +				nextPage = (String) nextPageAttr; +				session.setAttribute(Constants.SESSION_RETURNAREA, null); +	 +			} else { +				nextPage = Constants.STRUTS_RETURNAREA_VALUES.main.name(); +			} +	 +			if (onlineapplication.isIsAdminRequired()) { +				int numoas = 0; +				int numusers = 0; +	 +				List<OnlineApplication> openOAs = ConfigurationDBRead +						.getAllNewOnlineApplications(); +				if (openOAs != null) +					numoas = openOAs.size(); +	 +				List<UserDatabase> openUsers = ConfigurationDBRead.getAllNewUsers(); +				if (openUsers != null) +					numusers = openUsers.size(); +				try { +	 +					addActionMessage(LanguageHelper.getGUIString( +							"webpages.oaconfig.success.admin", getGeneralOA() +									.getIdentifier(), request)); +	 +					if (numusers > 0 || numoas > 0) +						MailHelper.sendAdminMail(numoas, numusers); +	 +				} catch (ConfigurationException e) { +					log.warn("Sending Mail to Admin failed.", e); +				} +	 +			} else +				addActionMessage(LanguageHelper.getGUIString( +						"webpages.oaconfig.success", +						getGeneralOA().getIdentifier(), request)); +	 +			// remove session attributes +			session.setAttribute(Constants.SESSION_OAID, null); +			session.removeAttribute(Constants.SESSION_BKUSELECTIONTEMPLATE); +			session.removeAttribute(Constants.SESSION_SENDASSERTIONTEMPLATE); +	 +			return Constants.STRUTS_SUCCESS; +		  		} catch (BasicActionException e) {  			return Constants.STRUTS_ERROR; @@ -193,122 +280,41 @@ public class EditOAAction extends BasicOAAction {  			addActionError(e.getStrutsError());  			return e.getStrutsReturnValue(); +		} finally { +			ConfigurationDBUtils.closeSession(); +			  		} - -		List<String> errors = new ArrayList<String>(); - -		// validate forms -		for (IOnlineApplicationData form : formList.values()) -			errors.addAll(form.validate(getGeneralOA(), authUser, request)); - -		// Do not allow SSO in combination with special BKUSelection features -		if (getSsoOA().isUseSSO() -				&& (getFormOA().isOnlyMandateAllowed() || !getFormOA() -						.isShowMandateLoginButton())) { -			log.warn("Special BKUSelection features can not be used in combination with SSO"); -			errors.add(LanguageHelper.getErrorString( -					"validation.general.bkuselection.specialfeatures.valid", -					request)); -		} - -		if (errors.size() > 0) { -			log.info("OAConfiguration with ID " -					+ getGeneralOA().getIdentifier() + " has some errors."); -			for (String el : errors) -				addActionError(el); - -			formID = Random.nextRandom(); -			session.setAttribute(Constants.SESSION_FORMID, formID); -			return Constants.STRUTS_ERROR_VALIDATION; - -		} else { -			try { -				onlineapplication = postProcessSaveOnlineApplication(onlineapplication); - -			} catch (BasicOAActionException e) { -				addActionError(e.getStrutsError()); -				return e.getStrutsReturnValue(); -			} - -		} - -		Object nextPageAttr = session -				.getAttribute(Constants.SESSION_RETURNAREA); -		if (nextPageAttr != null && nextPageAttr instanceof String) { -			nextPage = (String) nextPageAttr; -			session.setAttribute(Constants.SESSION_RETURNAREA, null); - -		} else { -			nextPage = Constants.STRUTS_RETURNAREA_VALUES.main.name(); -		} - -		if (onlineapplication.isIsAdminRequired()) { -			int numoas = 0; -			int numusers = 0; - -			List<OnlineApplication> openOAs = ConfigurationDBRead -					.getAllNewOnlineApplications(); -			if (openOAs != null) -				numoas = openOAs.size(); - -			List<UserDatabase> openUsers = ConfigurationDBRead.getAllNewUsers(); -			if (openUsers != null) -				numusers = openUsers.size(); -			try { - -				addActionMessage(LanguageHelper.getGUIString( -						"webpages.oaconfig.success.admin", getGeneralOA() -								.getIdentifier(), request)); - -				if (numusers > 0 || numoas > 0) -					MailHelper.sendAdminMail(numoas, numusers); - -			} catch (ConfigurationException e) { -				log.warn("Sending Mail to Admin failed.", e); -			} - -		} else -			addActionMessage(LanguageHelper.getGUIString( -					"webpages.oaconfig.success", -					getGeneralOA().getIdentifier(), request)); - -		// remove session attributes -		session.setAttribute(Constants.SESSION_OAID, null); -		session.removeAttribute(Constants.SESSION_BKUSELECTIONTEMPLATE); -		session.removeAttribute(Constants.SESSION_SENDASSERTIONTEMPLATE); - -		ConfigurationDBUtils.closeSession(); -		return Constants.STRUTS_SUCCESS;  	}  	public String cancleAndBackOA() {  		try {  			populateBasicInformations(); +			Object nextPageAttr = session +					.getAttribute(Constants.SESSION_RETURNAREA); +			if (nextPageAttr != null && nextPageAttr instanceof String) { +				nextPage = (String) nextPageAttr; +				session.setAttribute(Constants.SESSION_RETURNAREA, null); +	 +			} else { +				nextPage = Constants.STRUTS_RETURNAREA_VALUES.main.name(); +			} +	 +			session.setAttribute(Constants.SESSION_OAID, null); +	 +			addActionMessage(LanguageHelper.getGUIString( +					"webpages.oaconfig.cancle", getGeneralOA().getIdentifier(), +					request)); +	 +			return Constants.STRUTS_SUCCESS; +		  		} catch (BasicActionException e) {  			return Constants.STRUTS_ERROR; +		} finally {			 +			ConfigurationDBUtils.closeSession(); +			  		} - -		Object nextPageAttr = session -				.getAttribute(Constants.SESSION_RETURNAREA); -		if (nextPageAttr != null && nextPageAttr instanceof String) { -			nextPage = (String) nextPageAttr; -			session.setAttribute(Constants.SESSION_RETURNAREA, null); - -		} else { -			nextPage = Constants.STRUTS_RETURNAREA_VALUES.main.name(); -		} - -		session.setAttribute(Constants.SESSION_OAID, null); - -		addActionMessage(LanguageHelper.getGUIString( -				"webpages.oaconfig.cancle", getGeneralOA().getIdentifier(), -				request)); - -		ConfigurationDBUtils.closeSession(); - -		return Constants.STRUTS_SUCCESS;  	}  	public String deleteOA() { @@ -326,7 +332,66 @@ public class EditOAAction extends BasicOAAction {  			}  			oaidentifier = preProcessDeleteOnlineApplication(); - +			OnlineApplication onlineapplication = ConfigurationDBRead +					.getOnlineApplication(oaidentifier); +			request.getSession().setAttribute(Constants.SESSION_OAID, null); +	 +			try { +				if (MiscUtil.isNotEmpty(onlineapplication.getAuthComponentOA() +						.getOAPVP2().getMetadataURL())) { +	 +					MOAIDConfiguration moaconfig = ConfigurationDBRead +							.getMOAIDConfiguration(); +					moaconfig.setPvp2RefreshItem(new Date()); +					ConfigurationDBUtils.saveOrUpdate(moaconfig); +	 +				} +			} catch (NullPointerException e) {  +				log.debug("Found no MetadataURL in OA-Databaseconfig"); +				 +			} catch (Throwable e) { +				log.info("Set metadata refresh flag FAILED.", e); +			} +	 +			if (ConfigurationDBUtils.delete(onlineapplication)) { +	 +				if (!authUser.isAdmin()) { +					UserDatabase user = ConfigurationDBRead.getUserWithID(authUser +							.getUserID()); +					List<OnlineApplication> useroas = user.getOnlineApplication(); +	 +					for (OnlineApplicationType oa : useroas) { +						if (oa.getHjid().equals(onlineapplication.getHjid())) { +							useroas.remove(oa); +						} +					} +	 +					try { +						ConfigurationDBUtils.saveOrUpdate(user); +	 +					} catch (MOADatabaseException e) { +						log.warn("User information can not be updated in database", +								e); +						addActionError(LanguageHelper.getGUIString( +								"error.db.oa.store", request)); +						return Constants.STRUTS_ERROR; +					} +				} +	 +				ConfigurationDBUtils.closeSession(); +	 +				addActionMessage(LanguageHelper.getGUIString( +						"webpages.oaconfig.delete.message", oaidentifier, request)); +	 +				return Constants.STRUTS_SUCCESS; +	 +			} else { +				ConfigurationDBUtils.closeSession(); +				addActionError(LanguageHelper.getGUIString( +						"webpages.oaconfig.delete.error", oaidentifier, request)); +				return Constants.STRUTS_SUCCESS; +			} +		  		} catch (BasicActionException e) {  			return Constants.STRUTS_ERROR; @@ -334,63 +399,9 @@ public class EditOAAction extends BasicOAAction {  			addActionError(e.getStrutsError());  			return e.getStrutsReturnValue(); -		} - -		OnlineApplication onlineapplication = ConfigurationDBRead -				.getOnlineApplication(oaidentifier); -		request.getSession().setAttribute(Constants.SESSION_OAID, null); - -		try { -			if (MiscUtil.isNotEmpty(onlineapplication.getAuthComponentOA() -					.getOAPVP2().getMetadataURL())) { - -				MOAIDConfiguration moaconfig = ConfigurationDBRead -						.getMOAIDConfiguration(); -				moaconfig.setPvp2RefreshItem(new Date()); -				ConfigurationDBUtils.saveOrUpdate(moaconfig); - -			} -		} catch (Throwable e) { -			log.info("Found no MetadataURL in OA-Databaseconfig!", e); -		} - -		if (ConfigurationDBUtils.delete(onlineapplication)) { - -			if (!authUser.isAdmin()) { -				UserDatabase user = ConfigurationDBRead.getUserWithID(authUser -						.getUserID()); -				List<OnlineApplication> useroas = user.getOnlineApplication(); - -				for (OnlineApplicationType oa : useroas) { -					if (oa.getHjid().equals(onlineapplication.getHjid())) { -						useroas.remove(oa); -					} -				} - -				try { -					ConfigurationDBUtils.saveOrUpdate(user); - -				} catch (MOADatabaseException e) { -					log.warn("User information can not be updated in database", -							e); -					addActionError(LanguageHelper.getGUIString( -							"error.db.oa.store", request)); -					return Constants.STRUTS_ERROR; -				} -			} - +		} finally {  			ConfigurationDBUtils.closeSession(); - -			addActionMessage(LanguageHelper.getGUIString( -					"webpages.oaconfig.delete.message", oaidentifier, request)); - -			return Constants.STRUTS_SUCCESS; - -		} else { -			ConfigurationDBUtils.closeSession(); -			addActionError(LanguageHelper.getGUIString( -					"webpages.oaconfig.delete.error", oaidentifier, request)); -			return Constants.STRUTS_SUCCESS; +			  		}  	} diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IDPGatewayAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IDPGatewayAction.java new file mode 100644 index 000000000..e238c6d37 --- /dev/null +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IDPGatewayAction.java @@ -0,0 +1,56 @@ +/* + * 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.configuration.struts.action; + +import java.util.LinkedHashMap; + +import at.gv.egovernment.moa.id.configuration.data.oa.IOnlineApplicationData; +import at.gv.egovernment.moa.id.configuration.data.oa.OAMOAIDPInterfederationConfig; +import at.gv.egovernment.moa.id.configuration.data.oa.OAPVP2Config; +import at.gv.egovernment.moa.id.configuration.data.oa.PVPGatewayInterfederationConfig; + +/** + * @author tlenz + * + */ +public class IDPGatewayAction extends InterfederationIDPAction { + +	private static final long serialVersionUID = -2047128481980413334L; +	 +	public IDPGatewayAction() { +		super();		 +		formList.putAll(buildIDPGatewayFormList()); +	} +	 +	public static LinkedHashMap<String, IOnlineApplicationData> buildIDPGatewayFormList() { +		 +		LinkedHashMap<String, IOnlineApplicationData> forms =  +				new LinkedHashMap<String, IOnlineApplicationData>();  +						 +		PVPGatewayInterfederationConfig pvpGatewayconfig = new PVPGatewayInterfederationConfig();	 +		forms.put(pvpGatewayconfig.getName(), pvpGatewayconfig); +		 +    	return forms; +	} + +} diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/InterfederationIDPAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/InterfederationIDPAction.java index 813aa1960..eead280be 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/InterfederationIDPAction.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/InterfederationIDPAction.java @@ -46,6 +46,7 @@ import at.gv.egovernment.moa.id.configuration.data.oa.OAMOAIDPInterfederationCon  import at.gv.egovernment.moa.id.configuration.data.oa.OAOAuth20Config;  import at.gv.egovernment.moa.id.configuration.data.oa.OASTORKConfig;  import at.gv.egovernment.moa.id.configuration.data.oa.OATargetConfiguration; +import at.gv.egovernment.moa.id.configuration.data.oa.PVPGatewayInterfederationConfig;  import at.gv.egovernment.moa.id.configuration.exception.BasicActionException;  import at.gv.egovernment.moa.id.configuration.exception.BasicOAActionException;  import at.gv.egovernment.moa.id.configuration.helper.FormDataHelper; @@ -63,6 +64,7 @@ public class InterfederationIDPAction extends BasicOAAction {  	public static final String STRUTS_IDP_VIDP = "-VIDP";  	public static final String STRUTS_IDP_MOA = "-MOAIDP"; +	public static final String STRUTS_IDP_GATEWAY = "-IDPGATEWAY";  	private List<OAListElement> formOAs;  @@ -89,9 +91,7 @@ public class InterfederationIDPAction extends BasicOAAction {  				session.setAttribute(Constants.SESSION_RETURNAREA,   						Constants.STRUTS_RETURNAREA_VALUES.main.name()); -				 -				ConfigurationDBUtils.closeSession(); -				 +								  				return Constants.STRUTS_SUCCESS;  			} else { @@ -103,6 +103,9 @@ public class InterfederationIDPAction extends BasicOAAction {  		} catch (BasicActionException e) {  			return Constants.STRUTS_ERROR; +		} finally { +			ConfigurationDBUtils.closeSession(); +			  		}  	} @@ -122,6 +125,9 @@ public class InterfederationIDPAction extends BasicOAAction {  			if (STRUTS_IDP_MOA.equals(interfederationType)) {  				formList.putAll(MOAIDPAction.buildMOAIDPFormList()); +			 +			} else if (STRUTS_IDP_GATEWAY.equals(interfederationType)) { +				formList.putAll(IDPGatewayAction.buildIDPGatewayFormList());  			} else if (STRUTS_IDP_VIDP.equals(interfederationType)) {  				formList.putAll(VIDPAction.buildVIDPFormList()); @@ -140,6 +146,9 @@ public class InterfederationIDPAction extends BasicOAAction {  		} catch (BasicActionException e) {  			return Constants.STRUTS_ERROR; +		} finally { +			ConfigurationDBUtils.closeSession(); +			  		}          return Constants.STRUTS_OA_EDIT + interfederationType; @@ -174,6 +183,10 @@ public class InterfederationIDPAction extends BasicOAAction {  					getStorkOA().getAttributeProviderPlugins().add(new AttributeProviderPlugin());  				interfederationType = STRUTS_IDP_VIDP; +			} else if (oa.isIsInterfederationGateway() != null && oa.isIsInterfederationGateway()) {  +				formList.putAll(IDPGatewayAction.buildIDPGatewayFormList()); +				interfederationType = STRUTS_IDP_GATEWAY; +								  			} else {  				log.warn("Requested application is not an interfederation IDP.");  				return Constants.STRUTS_NOTALLOWED; @@ -190,7 +203,10 @@ public class InterfederationIDPAction extends BasicOAAction {  			addActionError(e.getStrutsError());  			return e.getStrutsReturnValue(); -		}		 +		} finally { +			ConfigurationDBUtils.closeSession(); +			 +		}  	}  	public String saveIDP() { @@ -210,6 +226,7 @@ public class InterfederationIDPAction extends BasicOAAction {  			if ( onlineapplication != null &&   					!((onlineapplication.isIsInterfederationIDP() != null && onlineapplication.isIsInterfederationIDP()) ||  +					(onlineapplication.isIsInterfederationGateway() != null && onlineapplication.isIsInterfederationGateway()) ||							  					(onlineapplication.getAuthComponentOA().getOASTORK() != null   						&& onlineapplication.getAuthComponentOA().getOASTORK().isVidpEnabled() != null  						&& onlineapplication.getAuthComponentOA().getOASTORK().isVidpEnabled()))) {				 @@ -246,9 +263,10 @@ public class InterfederationIDPAction extends BasicOAAction {  	            formID = Random.nextRandom();  	            session.setAttribute(Constants.SESSION_FORMID, formID);  	            return Constants.STRUTS_ERROR_VALIDATION; - +	              	        } else {	        		        	 -				onlineapplication = postProcessSaveOnlineApplication(onlineapplication); +				onlineapplication = postProcessSaveOnlineApplication(onlineapplication,  +						!(this instanceof MOAIDPAction));  	        	//set default Target interfederated nameID caluclation  				if (getPvp2OA() != null) { @@ -287,7 +305,10 @@ public class InterfederationIDPAction extends BasicOAAction {  			addActionError(e.getStrutsError());  			return e.getStrutsReturnValue(); -		}		 +		} finally { +			ConfigurationDBUtils.closeSession(); +			 +		}  	}  	public String cancleAndBackIDP() { @@ -300,16 +321,19 @@ public class InterfederationIDPAction extends BasicOAAction {  				return Constants.STRUTS_NOTALLOWED;  			} +	        session.setAttribute(Constants.SESSION_OAID, null); +	        addActionMessage(LanguageHelper.getGUIString("webpages.idp.cancle", getGeneralOA().getIdentifier(), request)); +	        ConfigurationDBUtils.closeSession(); +	 +	        return Constants.STRUTS_SUCCESS; +          		} catch (BasicActionException e) {  			return Constants.STRUTS_ERROR; +		} finally { +			ConfigurationDBUtils.closeSession(); +			  		} - -        session.setAttribute(Constants.SESSION_OAID, null); -        addActionMessage(LanguageHelper.getGUIString("webpages.idp.cancle", getGeneralOA().getIdentifier(), request)); -        ConfigurationDBUtils.closeSession(); - -        return Constants.STRUTS_SUCCESS;		  	}  	public String deleteIDP() { @@ -325,7 +349,30 @@ public class InterfederationIDPAction extends BasicOAAction {  			oaidentifier  = preProcessDeleteOnlineApplication(); -			 +			session.setAttribute(Constants.SESSION_OAID, null); +	        OnlineApplication onlineapplication = ConfigurationDBRead.getOnlineApplication(oaidentifier); +	         +	        try { +	            if (onlineapplication.getAuthComponentOA().getOAPVP2() != null && +	            		MiscUtil.isNotEmpty(onlineapplication.getAuthComponentOA().getOAPVP2().getMetadataURL())) { +	                MOAIDConfiguration moaconfig = ConfigurationDBRead.getMOAIDConfiguration(); +	                moaconfig.setPvp2RefreshItem(new Date()); +	                ConfigurationDBUtils.saveOrUpdate(moaconfig); +	 +	            } +	        } catch (Throwable e) { +	            log.info("Found no MetadataURL in OA-Databaseconfig!", e); +	        } +	 +	        if (ConfigurationDBUtils.delete(onlineapplication)) { +	            addActionMessage(LanguageHelper.getGUIString("webpages.oaconfig.delete.message", oaidentifier, request)); +	            return Constants.STRUTS_SUCCESS; +	 +	        } else { +	            addActionError(LanguageHelper.getGUIString("webpages.oaconfig.delete.error", oaidentifier, request)); +	            return Constants.STRUTS_SUCCESS; +	        } +          		} catch (BasicActionException e) {  			return Constants.STRUTS_ERROR; @@ -333,34 +380,10 @@ public class InterfederationIDPAction extends BasicOAAction {  			addActionError(e.getStrutsError());  			return e.getStrutsReturnValue(); +		} finally { +			ConfigurationDBUtils.closeSession(); +			  		} - -		session.setAttribute(Constants.SESSION_OAID, null); -        OnlineApplication onlineapplication = ConfigurationDBRead.getOnlineApplication(oaidentifier); -         -        try { -            if (onlineapplication.getAuthComponentOA().getOAPVP2() != null && -            		MiscUtil.isNotEmpty(onlineapplication.getAuthComponentOA().getOAPVP2().getMetadataURL())) { -                MOAIDConfiguration moaconfig = ConfigurationDBRead.getMOAIDConfiguration(); -                moaconfig.setPvp2RefreshItem(new Date()); -                ConfigurationDBUtils.saveOrUpdate(moaconfig); - -            } -        } catch (Throwable e) { -            log.info("Found no MetadataURL in OA-Databaseconfig!", e); -        } - -        if (ConfigurationDBUtils.delete(onlineapplication)) { -        	 -            ConfigurationDBUtils.closeSession(); -            addActionMessage(LanguageHelper.getGUIString("webpages.oaconfig.delete.message", oaidentifier, request)); -            return Constants.STRUTS_SUCCESS; - -        } else { -            ConfigurationDBUtils.closeSession(); -            addActionError(LanguageHelper.getGUIString("webpages.oaconfig.delete.error", oaidentifier, request)); -            return Constants.STRUTS_SUCCESS; -        }  	} @@ -403,6 +426,14 @@ public class InterfederationIDPAction extends BasicOAAction {      	formList.put(pvp2oa.getName(), pvp2oa);      } +    public PVPGatewayInterfederationConfig getPVPGateway() { +    	return (PVPGatewayInterfederationConfig) formList.get(new PVPGatewayInterfederationConfig().getName()); +    } +     +    public void setPVPGateway(PVPGatewayInterfederationConfig val) { +    	formList.put(val.getName(), val); +    } +          /**       * @return the formOA       */ diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/interceptor/HibernateSessionInterceptor.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/interceptor/HibernateSessionInterceptor.java new file mode 100644 index 000000000..084d054f7 --- /dev/null +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/interceptor/HibernateSessionInterceptor.java @@ -0,0 +1,59 @@ +/* + * 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.configuration.struts.interceptor; + +import org.apache.log4j.Logger; + +import at.gv.egovernment.moa.id.commons.db.ConfigurationDBUtils; + +import com.opensymphony.xwork2.ActionInvocation; +import com.opensymphony.xwork2.interceptor.AbstractInterceptor; + +/** + * @author tlenz + * + */ +public class HibernateSessionInterceptor extends AbstractInterceptor { + +	private static final long serialVersionUID = 2457987431702749278L; +	private static Logger log = Logger.getLogger(HibernateSessionInterceptor.class); +	 +	/* (non-Javadoc) +	 * @see com.opensymphony.xwork2.interceptor.AbstractInterceptor#intercept(com.opensymphony.xwork2.ActionInvocation) +	 */ +	@Override +	public String intercept(ActionInvocation arg0) throws Exception { +		log.trace("Hibernate session interceptor starts .... "); +		 +		try { +			return arg0.invoke(); +			 +		} finally { +			log.debug("Hibernate-Session interceptor close active sessions."); +			ConfigurationDBUtils.closeSession(); +			 +		} +		 +	} + +} diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/utils/UserRequestCleaner.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/utils/UserRequestCleaner.java index a75f8307d..27e29e292 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/utils/UserRequestCleaner.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/utils/UserRequestCleaner.java @@ -68,7 +68,8 @@ public class UserRequestCleaner implements Runnable {  				//clean up active user storage  				AuthenticationManager.getInstance().removeAllUsersAfterTimeOut(); - +				ConfigurationDBUtils.closeSession(); +								  				Thread.sleep(SESSION_CLEANUP_INTERVAL * 1000);  			} catch (ConfigurationException e) { | 
