diff options
| author | Thomas Lenz <tlenz@iaik.tugraz.at> | 2018-06-25 13:22:20 +0200 | 
|---|---|---|
| committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2018-06-25 13:22:20 +0200 | 
| commit | 30e324851d67bd900471457e3c30a19b4073ec77 (patch) | |
| tree | 26dc86ca4bee05522dd2eff7ea5dfcbe626d68af /id/ConfigWebTool/src/main/java/at | |
| parent | 55f71502a0b62624d5ebc0e4aa749b3f5d5a0bf2 (diff) | |
| download | moa-id-spss-30e324851d67bd900471457e3c30a19b4073ec77.tar.gz moa-id-spss-30e324851d67bd900471457e3c30a19b4073ec77.tar.bz2 moa-id-spss-30e324851d67bd900471457e3c30a19b4073ec77.zip | |
add SP specific configuration for SL2.0
Diffstat (limited to 'id/ConfigWebTool/src/main/java/at')
2 files changed, 114 insertions, 2 deletions
| diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAAuthenticationData.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAAuthenticationData.java index ad99f5d22..2f51e68b4 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAAuthenticationData.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAAuthenticationData.java @@ -85,6 +85,11 @@ public class OAAuthenticationData implements IOnlineApplicationData {  	private boolean useTestIDLValidationTrustStore = false;  	private boolean useTestAuthblockValidationTrustStore = false; +	 +	//SL2.0 +	private boolean sl20Active = false; +	private String sl20EndPoints = null; +	  	/**  	 *   	 */ @@ -253,6 +258,29 @@ public class OAAuthenticationData implements IOnlineApplicationData {  			useTestIDLValidationTrustStore = oaauth.getTestCredentials().isUseTestIDLTrustStore();		  		} +		//parse SL2.0 information +		if (oaauth.isSl20Active()) { +			//parse SL2.0 endpoint information +			if (oaauth.getSl20EndPoints() != null) { +				if (KeyValueUtils.isCSVValueString(oaauth.getSl20EndPoints())) +					sl20EndPoints = KeyValueUtils.normalizeCSVValueString(oaauth.getSl20EndPoints()); +				 +				else { +					if (oaauth.getSl20EndPoints().contains(KeyValueUtils.CSV_DELIMITER)) { +						//remove trailing comma if exist +						sl20EndPoints = oaauth.getSl20EndPoints().substring(0,  +								oaauth.getSl20EndPoints().indexOf(KeyValueUtils.CSV_DELIMITER)); +													 +					} else +						sl20EndPoints = oaauth.getSl20EndPoints(); +					 +				} +			} +			sl20Active = oaauth.isSl20Active(); +			 +		} +		 +		  		return null;  	} @@ -392,7 +420,10 @@ public class OAAuthenticationData implements IOnlineApplicationData {          testing.setUseTestIDLTrustStore(useTestIDLValidationTrustStore); -         +        //store SL2.0 information +        authoa.setSl20Active(isSl20Active());         +        authoa.setSl20EndPoints(getSl20EndPoints()); +                          return null;  	} @@ -768,6 +799,28 @@ public class OAAuthenticationData implements IOnlineApplicationData {  	public List<String> getSzrgwServicesList() {  		return szrgwServicesList;  	} + +	 +	public boolean isSl20Active() { +		return sl20Active; +	} + +	public void setSl20Active(boolean sl20Active) { +		this.sl20Active = sl20Active; +	} + +	public String getSl20EndPoints() { +		return sl20EndPoints; +	} + +	public void setSl20EndPoints(String sl20EndPoints) { +		if (MiscUtil.isNotEmpty(sl20EndPoints)) +			this.sl20EndPoints =  +				KeyValueUtils.removeAllNewlineFromString(sl20EndPoints); +		else +			this.sl20EndPoints = sl20EndPoints; +	} +	  } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAAuthenticationDataValidation.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAAuthenticationDataValidation.java index a758088b1..32ef4a6cc 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAAuthenticationDataValidation.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAAuthenticationDataValidation.java @@ -31,6 +31,7 @@ import javax.servlet.http.HttpServletRequest;  import org.apache.log4j.Logger;  import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants; +import at.gv.egovernment.moa.id.commons.utils.KeyValueUtils;  import at.gv.egovernment.moa.id.commons.validation.ValidationHelper;  import at.gv.egovernment.moa.id.configuration.data.oa.OAAuthenticationData;  import at.gv.egovernment.moa.id.configuration.helper.LanguageHelper; @@ -187,7 +188,65 @@ public class OAAuthenticationDataValidation {  		} -				 +		 +		if (form.isSl20Active()) { +			if (MiscUtil.isNotEmpty(form.getSl20EndPoints())) { +				log.debug("Validate SL2.0 configuration ... ");				 +				List<String> sl20Endpoints = KeyValueUtils.getListOfCSVValues(form.getSl20EndPoints()); +				if (sl20Endpoints.size() == 1) { +					String value = sl20Endpoints.get(0); +					 +					if (!value.startsWith(KeyValueUtils.DEFAULT_VALUE + KeyValueUtils.KEYVVALUEDELIMITER) &&  +							value.contains(KeyValueUtils.KEYVVALUEDELIMITER)) { +						log.warn("SL2.0 endpoint '" + value + "' has wrong format"); +						errors.add(LanguageHelper.getErrorString("validation.general.sl20.endpoints.wrong",  +							new Object[] {value}, request )); +												 +					} else if (!value.startsWith(KeyValueUtils.DEFAULT_VALUE + KeyValueUtils.KEYVVALUEDELIMITER) &&  +							!value.contains(KeyValueUtils.KEYVVALUEDELIMITER) ) { +						log.info("Find one SL2.0 endpoint without 'default='. Start update ... "); +						form.setSl20EndPoints(KeyValueUtils.DEFAULT_VALUE + KeyValueUtils.KEYVVALUEDELIMITER + value);	 +						 +					} +					 +				} else { +					boolean findDefault = false; +					for (String el : sl20Endpoints) { +						if (!el.contains(KeyValueUtils.KEYVVALUEDELIMITER)) { +							log.warn("SL2.0 endpoint '" + el + "' has wrong format"); +							errors.add(LanguageHelper.getErrorString("validation.general.sl20.endpoints.wrong",  +								new Object[] {el}, request )); +							 +						} else { +							if (el.startsWith(KeyValueUtils.DEFAULT_VALUE + KeyValueUtils.KEYVVALUEDELIMITER)) { +								log.debug("Find default endpoint."); +								findDefault = true; +								 +							} else { +								String firstPart = el.split(KeyValueUtils.KEYVVALUEDELIMITER)[0]; +								try {	 +									Integer.valueOf(firstPart); +									 +								} catch (NumberFormatException e) { +									log.warn("SL2.0 endpoint '" + el + "' has wrong format", e); +									errors.add(LanguageHelper.getErrorString("validation.general.sl20.endpoints.wrong",  +											new Object[] {el}, request )); +									 +								}																										 +							}							 +						} +					} +					 +					if (!findDefault) { +						log.warn("SL2.0 endpoints contains NO default endpoint"); +						errors.add(LanguageHelper.getErrorString("validation.general.sl20.endpoints.default",  +								new Object[] {}, request )); +						 +					} +				}								 +			}			 +		} +		  		return errors;  	}  } | 
