diff options
9 files changed, 129 insertions, 23 deletions
| diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/GeneralMOAIDConfig.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/GeneralMOAIDConfig.java index 83795567c..820a07318 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/GeneralMOAIDConfig.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/GeneralMOAIDConfig.java @@ -54,6 +54,7 @@ import at.gv.egovernment.moa.id.commons.db.dao.config.deprecated.TransformsInfoT  import at.gv.egovernment.moa.id.commons.db.dao.config.deprecated.TrustAnchor;  import at.gv.egovernment.moa.id.commons.db.dao.config.deprecated.VerifyAuthBlock;  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.configuration.Constants;  import at.gv.egovernment.moa.id.configuration.data.pvp2.ContactForm;  import at.gv.egovernment.moa.util.MiscUtil; @@ -126,6 +127,7 @@ public class GeneralMOAIDConfig {  	private String SLRequestTemplateHandy = "SLTemplates/template_handyBKU.html";  	private String publicURLPrefix = null; +	private boolean virtualPublicURLPrefixEnabled = false;  	public GeneralMOAIDConfig() {  		chainigmodelist = new HashMap<String, String>(); @@ -163,7 +165,26 @@ public class GeneralMOAIDConfig {  					if (authgen.isTrustManagerRevocationChecking() != null)  						trustmanagerrevocationcheck = authgen.isTrustManagerRevocationChecking(); -					publicURLPrefix = authgen.getPublicURLPreFix(); +					virtualPublicURLPrefixEnabled =  +							KeyValueUtils.isCSVValueString(authgen.getPublicURLPreFix()); +					 +					if (virtualPublicURLPrefixEnabled) { +						//format CSV values with newlines  +						publicURLPrefix = KeyValueUtils.normalizeCSVValueString( +								authgen.getPublicURLPreFix()); +												 +					} else { +						String tmp = authgen.getPublicURLPreFix(); +						if (tmp.contains(KeyValueUtils.CSV_DELIMITER)) { +							//remove trailing comma if exist +							publicURLPrefix = tmp.substring(0,  +									tmp.indexOf(KeyValueUtils.CSV_DELIMITER)); +														 +						} else							 +							publicURLPrefix = tmp; +					} +					 +					  					TimeOuts timeouts = authgen.getTimeOuts();  					if (timeouts != null) { @@ -931,7 +952,12 @@ public class GeneralMOAIDConfig {  	 * @param publicURLPrefix the publicURLPrefix to set  	 */  	public void setPublicURLPrefix(String publicURLPrefix) { -		this.publicURLPrefix = publicURLPrefix; +		if (MiscUtil.isNotEmpty(publicURLPrefix)) +			this.publicURLPrefix =  +				KeyValueUtils.removeAllNewlineFromString(publicURLPrefix); +		else +			this.publicURLPrefix = publicURLPrefix; +		  	}  	/** @@ -961,6 +987,23 @@ public class GeneralMOAIDConfig {  	public void setMoaspssAuthTrustProfileTest(String moaspssAuthTrustProfileTest) {  		this.moaspssAuthTrustProfileTest = moaspssAuthTrustProfileTest;  	} + +	/** +	 * @return the virtualPublicURLPrefixEnabled +	 */ +	public boolean isVirtualPublicURLPrefixEnabled() { +		return virtualPublicURLPrefixEnabled; +	} + +	/** +	 * @param virtualPublicURLPrefixEnabled the virtualPublicURLPrefixEnabled to set +	 */ +	public void setVirtualPublicURLPrefixEnabled( +			boolean virtualPublicURLPrefixEnabled) { +		this.virtualPublicURLPrefixEnabled = virtualPublicURLPrefixEnabled; +	} +	 +	 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 36bf0ba7b..b4a0f9a77 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 @@ -26,6 +26,7 @@ import java.math.BigInteger;  import java.util.*; +import org.apache.commons.lang3.StringUtils;  import org.apache.log4j.Logger;  import at.gv.egiz.components.configuration.meta.api.ConfigurationStorageException; @@ -249,17 +250,24 @@ public class EditGeneralConfigAction extends BasicAction {  //		if (oldauth != null)  //			oldauthgeneral = oldauth.getGeneralConfiguration(); -		//set Public URL Prefix		 +		//set Public URL Prefix  		String pubURLPrefix = moaconfig.getPublicURLPrefix(); -		String normalizedPubURLPrefix = KeyValueUtils.normalizeCSVValueString(pubURLPrefix); +		if (moaconfig.isVirtualPublicURLPrefixEnabled()) { +			dbauthgeneral.setPublicURLPreFix( +					KeyValueUtils.normalizeCSVValueString(pubURLPrefix)); +			 +		} else { +			if (pubURLPrefix.contains(KeyValueUtils.CSV_DELIMITER)) { +				dbauthgeneral.setPublicURLPreFix( +						pubURLPrefix.trim().substring(0,  +								pubURLPrefix.indexOf(KeyValueUtils.CSV_DELIMITER))); +				 +			} else +				dbauthgeneral.setPublicURLPreFix( +						StringUtils.chomp(pubURLPrefix.trim())); +			 +		} -//		if(pubURLPrefix.endsWith("/")) { -//			int length = pubURLPrefix.length(); -//			pubURLPrefix = pubURLPrefix.substring(0, length-1); -//		} -		 -		dbauthgeneral.setPublicURLPreFix(normalizedPubURLPrefix); -		  //		if (MiscUtil.isNotEmpty(moaconfig.getAlternativeSourceID()))  //			dbauthgeneral.setAlternativeSourceID(moaconfig.getAlternativeSourceID());  //		else { diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/moaconfig/MOAConfigValidator.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/moaconfig/MOAConfigValidator.java index bf72e117a..b640e8621 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/moaconfig/MOAConfigValidator.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/moaconfig/MOAConfigValidator.java @@ -32,6 +32,7 @@ import java.util.Map;  import javax.servlet.http.HttpServletRequest; +import org.apache.commons.lang3.StringUtils;  import org.apache.log4j.Logger;  import at.gv.egovernment.moa.id.commons.validation.ValidationHelper; @@ -68,7 +69,8 @@ public class MOAConfigValidator {  		if (MiscUtil.isNotEmpty(check)) {  			String[] publicURLPreFix = check.split(",");  			for (String el : publicURLPreFix) {			 -				if (!ValidationHelper.validateURL(el)) { +				if (!ValidationHelper.validateURL( +						StringUtils.chomp(el.trim()))) {  					log.info("Public URL Prefix " + el + " is not valid");  					errors.add(LanguageHelper.getErrorString("validation.general.publicURLprefix.valid", new Object[]{el}, request));  				} diff --git a/id/ConfigWebTool/src/main/resources/applicationResources_de.properties b/id/ConfigWebTool/src/main/resources/applicationResources_de.properties index 36c952ad0..98e66c4fa 100644 --- a/id/ConfigWebTool/src/main/resources/applicationResources_de.properties +++ b/id/ConfigWebTool/src/main/resources/applicationResources_de.properties @@ -125,6 +125,7 @@ webpages.inderfederation.gateway.entityID=EntityID des PVP Portals  webpages.moaconfig.save.success=Die MOA-ID Konfiguration wurde erfolgreich gespeichert.  webpages.moaconfig.header=Allgemeine Konfiguration  webpages.oaconfig.general.publicURLPreFix=Public URL Prefix +webpages.moaconfig.general.virtualPublicURLPrefixEnabled=Virtuelle IDP aktivieren  webpages.moaconfig.defaultbkus.header=Default BKUs  webpages.moaconfig.slrequesttemplates.header=SecurityLayer Request Templates  webpages.moaconfig.slrequesttemplates.local=Locale BKU diff --git a/id/ConfigWebTool/src/main/resources/applicationResources_en.properties b/id/ConfigWebTool/src/main/resources/applicationResources_en.properties index 46f6451dd..51b1d239e 100644 --- a/id/ConfigWebTool/src/main/resources/applicationResources_en.properties +++ b/id/ConfigWebTool/src/main/resources/applicationResources_en.properties @@ -124,6 +124,7 @@ webpages.inderfederation.gateway.entityID=PVP portal EntityID  webpages.moaconfig.save.success=MOA-ID has been successfully saved.  webpages.moaconfig.header=General configuration  webpages.oaconfig.general.publicURLPreFix=Public URL Prefix +webpages.moaconfig.general.virtualPublicURLPrefixEnabled=Enable virtual IDPs  webpages.moaconfig.defaultbkus.header=Default CCE  webpages.moaconfig.slrequesttemplates.header=SecurityLayer Request Templates  webpages.moaconfig.slrequesttemplates.local=Local CCE diff --git a/id/ConfigWebTool/src/main/webapp/css/index.css b/id/ConfigWebTool/src/main/webapp/css/index.css index 4cbfba19b..00a2fa851 100644 --- a/id/ConfigWebTool/src/main/webapp/css/index.css +++ b/id/ConfigWebTool/src/main/webapp/css/index.css @@ -664,3 +664,8 @@ div .wwgrp br {  #stork_attributelist .wwctrl input[type="checkbox"]{  	margin-left:20px;  } + +#loadGeneralConfig_moaconfig_publicURLPrefix { +	resize: none; +	 +} diff --git a/id/ConfigWebTool/src/main/webapp/js/common.js b/id/ConfigWebTool/src/main/webapp/js/common.js index fb71854c2..dfc3cc78f 100644 --- a/id/ConfigWebTool/src/main/webapp/js/common.js +++ b/id/ConfigWebTool/src/main/webapp/js/common.js @@ -272,4 +272,25 @@ function newAp() {  	clone.innerHTML = clone.innerHTML.replace(/name="storkOA.attributeProviderPlugins\[\d/g, 'name="storkOA.attributeProviderPlugins[' + nextindex);  	clone.innerHTML = clone.innerHTML.replace(/(.*" value=").*?(".*)/g, '$1$2');  	target.parentNode.appendChild(clone); -}
\ No newline at end of file +} + +function setPublicURLPrefixTestBox(checkbox) { +	if (checkbox.checked) { +		var textarea = $("#loadGeneralConfig_moaconfig_publicURLPrefix");  +		textarea.attr("rows", 6); +		textarea.height(120); +		 +	} else { +		var textarea = $("#loadGeneralConfig_moaconfig_publicURLPrefix");  +		textarea.attr("rows", 1); +		textarea.height(25); +		 +	} +	return true; +} + +function generalConfigLoadEvent() { +	var value = $("#loadGeneralConfig_moaconfig_publicURLPrefix").val(); +	$("#loadGeneralConfig_moaconfig_publicURLPrefix").val(value.replace(",",",\n")); +	return true;	 +} diff --git a/id/ConfigWebTool/src/main/webapp/jsp/editMOAConfig.jsp b/id/ConfigWebTool/src/main/webapp/jsp/editMOAConfig.jsp index bc8c57ec2..ac2c8de5a 100644 --- a/id/ConfigWebTool/src/main/webapp/jsp/editMOAConfig.jsp +++ b/id/ConfigWebTool/src/main/webapp/jsp/editMOAConfig.jsp @@ -16,7 +16,7 @@  	</head> -	<body> +	<body onload="generalConfigLoadEvent();">   		<jsp:include page="snippets/header_userinfos.jsp"></jsp:include> @@ -37,13 +37,38 @@  					<s:form namespace="/secure" method="POST" enctype="multipart/form-data"> -							<s:textfield name="moaconfig.publicURLPrefix"  -								value="%{moaconfig.publicURLPrefix}"  -								labelposition="left" -								key="webpages.oaconfig.general.publicURLPreFix" -								cssClass="textfield_long"> -							</s:textfield> +							<s:if test="moaconfig.isVirtualPublicURLPrefixEnabled()"> +								<s:textarea name="moaconfig.publicURLPrefix"  +									value="%{moaconfig.publicURLPrefix}"  +									labelposition="left" +									key="webpages.oaconfig.general.publicURLPreFix" +									cssClass="textfield_long" +									rows="6"								 +									requiredLabel="true" +									style="height:120px;">								 +								</s:textarea> +							</s:if> +							<s:else> +								<s:textarea name="moaconfig.publicURLPrefix"  +									value="%{moaconfig.publicURLPrefix}"  +									labelposition="left" +									key="webpages.oaconfig.general.publicURLPreFix" +									cssClass="textfield_long" +									rows="1"								 +									requiredLabel="true" +									style="height:25px;">								 +								</s:textarea> +							</s:else> +							<s:checkbox name="moaconfig.virtualPublicURLPrefixEnabled"  +								value="%{moaconfig.virtualPublicURLPrefixEnabled}" +								labelposition="left" +								key="webpages.moaconfig.general.virtualPublicURLPrefixEnabled" +								cssClass="checkbox" +								onchange="setPublicURLPrefixTestBox(this);"> +							</s:checkbox> +						 +				  						<div class="oa_config_block">  							<h3><%=LanguageHelper.getGUIString("webpages.moaconfig.defaultbkus.header", request) %></h3> diff --git a/id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/validation/task/impl/GeneralMOAIDConfigurationTask.java b/id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/validation/task/impl/GeneralMOAIDConfigurationTask.java index 616d9f0f4..891295777 100644 --- a/id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/validation/task/impl/GeneralMOAIDConfigurationTask.java +++ b/id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/validation/task/impl/GeneralMOAIDConfigurationTask.java @@ -117,7 +117,7 @@ public class GeneralMOAIDConfigurationTask extends AbstractTaskValidator impleme  		if (MiscUtil.isNotEmpty(check)) {  			String[] preFixList = check.split(",");  			for (String el : preFixList) { -				if (!ValidationHelper.validateURL(el)) { +				if (!ValidationHelper.validateURL(el.trim())) {  					log.info("Public URL Prefix is not valid");  					errors.add(new ValidationObjectIdentifier(  							MOAIDConfigurationConstants.GENERAL_PUBLICURLPREFIX,  @@ -516,7 +516,7 @@ public class GeneralMOAIDConfigurationTask extends AbstractTaskValidator impleme  		String pubURLPrefix = input.get(KeyValueUtils.removePrefixFromKey(MOAIDConfigurationConstants.GENERAL_PUBLICURLPREFIX, getKeyPrefix()));  		String normalizedPubURLPrefix =  KeyValueUtils.normalizeCSVValueString(pubURLPrefix); -		String[] normalizedPubURLPrefixList = normalizedPubURLPrefix.split(",");		 +		String[] normalizedPubURLPrefixList = normalizedPubURLPrefix.split(KeyValueUtils.CSV_DELIMITER);		  		String modifiedPubURLPrefixCSV = null;  		for (String el : normalizedPubURLPrefixList) { @@ -529,7 +529,7 @@ public class GeneralMOAIDConfigurationTask extends AbstractTaskValidator impleme  			if (modifiedPubURLPrefixCSV == null)  				modifiedPubURLPrefixCSV = newPubURLPrefix;  			else -				modifiedPubURLPrefixCSV += "," + newPubURLPrefix; +				modifiedPubURLPrefixCSV += KeyValueUtils.CSV_DELIMITER + newPubURLPrefix;  		} | 
