diff options
| author | Florian Reimair <florian.reimair@iaik.tugraz.at> | 2014-07-07 09:11:42 +0200 | 
|---|---|---|
| committer | Florian Reimair <florian.reimair@iaik.tugraz.at> | 2014-07-07 09:11:42 +0200 | 
| commit | bab51d46c3d57ac1fe32f184d5fd8acef53ad618 (patch) | |
| tree | 803e98039658d80233a2cf40dd5965061b606326 /id/ConfigWebTool/src | |
| parent | b2c1ca665aaaa3246671ef2ec933e29b8ff87b25 (diff) | |
| download | moa-id-spss-bab51d46c3d57ac1fe32f184d5fd8acef53ad618.tar.gz moa-id-spss-bab51d46c3d57ac1fe32f184d5fd8acef53ad618.tar.bz2 moa-id-spss-bab51d46c3d57ac1fe32f184d5fd8acef53ad618.zip | |
check for peps country code uniqueness
Diffstat (limited to 'id/ConfigWebTool/src')
5 files changed, 49 insertions, 31 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 9e5ba684c..b1e268fef 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 @@ -25,12 +25,14 @@ package at.gv.egovernment.moa.id.configuration.data;  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.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;  import at.gv.egovernment.moa.id.commons.db.dao.config.MOAIDConfiguration;  import at.gv.egovernment.moa.id.commons.db.dao.config.STORK;  import at.gv.egovernment.moa.id.commons.db.dao.config.StorkAttribute; +  import org.apache.log4j.Logger;  public class GeneralStorkConfig { @@ -88,6 +90,24 @@ public class GeneralStorkConfig {  	}  	public List<CPEPS> getCpepslist() { +		if (null == cpepslist) +			return null; + +		MOAIDConfiguration dbconfig = ConfigurationDBRead.getMOAIDConfiguration(); + +		List<CPEPS> cpepss = dbconfig.getAuthComponentGeneral().getForeignIdentities().getSTORK().getCPEPS(); + +		// make CountryCode "readonly" +		for (CPEPS newone : cpepslist) { +			for (CPEPS current : cpepss) { +				if (null != newone) +					if (current.getHjid().equals(newone.getHjid())) { +						newone.setCountryCode(current.getCountryCode()); +						break; +					} +			} +		} +  		return cpepslist;  	} 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 ef0672e99..0f1673c3a 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 @@ -512,20 +512,9 @@ public class EditGeneralConfigAction extends BasicAction {  				else  					stork.setAttributes((List<StorkAttribute>) (new ArrayList<StorkAttribute>())); -				if (storkconfig.getCpepslist() != null) { - -					// make CountryCode "readonly" -					for(CPEPS newone : storkconfig.getCpepslist()) { -						for(CPEPS current : stork.getCPEPS()) { -							if(current.getHjid().equals(newone.getHjid())) { -								newone.setCountryCode(current.getCountryCode()); -								break; -							} -						} -					} +				if (storkconfig.getCpepslist() != null)  					stork.setCPEPS(storkconfig.getCpepslist()); -				}  				else  					stork.setCPEPS((List<CPEPS>) (new ArrayList<CPEPS>())); diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/moaconfig/StorkConfigValidator.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/moaconfig/StorkConfigValidator.java index 5ec3af519..f7d61653d 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/moaconfig/StorkConfigValidator.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/moaconfig/StorkConfigValidator.java @@ -32,29 +32,27 @@ public class StorkConfigValidator {  				if(null == current)  					continue; -				if(null == current.getHjid()) { -					// check country code -					String check = current.getCountryCode(); -					if (MiscUtil.isNotEmpty(check)) { -						if (ValidationHelper.containsPotentialCSSCharacter(check, false)) { -							log.warn("CPEPS config countrycode contains potentail XSS characters: " + check); +				// check country code +				String check = current.getCountryCode(); +				if (MiscUtil.isNotEmpty(check)) { +					if (ValidationHelper.containsPotentialCSSCharacter(check, false)) { +						log.warn("CPEPS config countrycode contains potentail XSS characters: " + check); +						errors.add(LanguageHelper.getErrorString("validation.stork.cpeps.cc", +								new Object[] {ValidationHelper.getPotentialCSSCharacter(false)}, request )); +					} +					if(!check.toLowerCase().matches("^[a-z][a-z]$")) { +							log.warn("CPEPS config countrycode does not comply to ISO 3166-2 : " + check);  							errors.add(LanguageHelper.getErrorString("validation.stork.cpeps.cc", -									new Object[] {ValidationHelper.getPotentialCSSCharacter(false)}, request )); -						} -						if(!check.toLowerCase().matches("^[a-z][a-z]$")) { -								log.warn("CPEPS config countrycode does not comply to ISO 3166-2 : " + check); -								errors.add(LanguageHelper.getErrorString("validation.stork.cpeps.cc", -										new Object[] {check}, request )); -						} -					} else { -						log.warn("CPEPS config countrycode is empty : " + check); -						errors.add(LanguageHelper.getErrorString("validation.stork.cpeps.empty", -								new Object[] {check}, request )); +									new Object[] {check}, request ));  					} +				} else { +					log.warn("CPEPS config countrycode is empty : " + check); +					errors.add(LanguageHelper.getErrorString("validation.stork.cpeps.empty", +							new Object[] {check}, request ));  				} -	 +  				// check url -				String check = current.getURL(); +				check = current.getURL();  				if (MiscUtil.isNotEmpty(check)) {  					if (!ValidationHelper.validateURL(check)) {  						log.info("CPEPS config URL is invalid : " + check); @@ -66,6 +64,15 @@ public class StorkConfigValidator {  							new Object[] {check}, request ));  				}  			} + +			// ensure uniqueness of country code +			for (CPEPS one : form.getCpepslist()) +				for (CPEPS another : form.getCpepslist()) +					if (null != one && null != another) +						if (!one.equals(another) && one.getCountryCode().equals(another.getCountryCode())) { +							errors.add(LanguageHelper.getErrorString("validation.stork.cpeps.duplicate", request)); +							break; +						}  		}  		// check qaa diff --git a/id/ConfigWebTool/src/main/resources/applicationResources_de.properties b/id/ConfigWebTool/src/main/resources/applicationResources_de.properties index e4e7a0b63..2c71d86a5 100644 --- a/id/ConfigWebTool/src/main/resources/applicationResources_de.properties +++ b/id/ConfigWebTool/src/main/resources/applicationResources_de.properties @@ -453,6 +453,7 @@ validation.general.testcredentials.oid.valid=Die Testdaten OID {0} ist ung\u00FC  validation.stork.cpeps.cc=CPEPS L\u00E4ndercode folgt nicht ISO 3166-2  validation.stork.cpeps.empty=CPEPS Konfiguration ist unvollst\u00E4ndig  validation.stork.cpeps.url=CPEPS URL ist ung\u00FCltig +validation.stork.cpeps.duplicate=L\u00E4ndercodes sind nicht eindeutig  validation.stork.requestedattributes=STORK Attribute sind fehlerhaft. Bsp.: attr1, attr2  validation.stork.qaa.outofrange=G\u00FCltige QAA Werte sind 1, 2, 3, und 4  validation.stork.attributes.empty=Es muss mindestens ein Attribut definiert sein diff --git a/id/ConfigWebTool/src/main/resources/applicationResources_en.properties b/id/ConfigWebTool/src/main/resources/applicationResources_en.properties index dcf36103b..a494ef089 100644 --- a/id/ConfigWebTool/src/main/resources/applicationResources_en.properties +++ b/id/ConfigWebTool/src/main/resources/applicationResources_en.properties @@ -450,6 +450,7 @@ validation.general.testcredentials.oid.valid=The OID {0} for test credentials is  validation.stork.cpeps.cc=CPEPS country code is not based on 3166-2  validation.stork.cpeps.empty=CPEPS configuration is incomplete  validation.stork.cpeps.url=CPEPS URL is invalid +validation.stork.cpeps.duplicate=Country codes are not unique  validation.stork.requestedattributes=STORK attributes are incorrect. Example: attr1, attr2  validation.stork.qaa.outofrange=Valid QAA values are 1, 2, 3, and 4  validation.stork.attributes.empty=Only one attribute can be provided | 
