diff options
| author | Bojan Suzic <bojan.suzic@iaik.tugraz.at> | 2014-02-25 19:01:11 +0100 | 
|---|---|---|
| committer | Bojan Suzic <bojan.suzic@iaik.tugraz.at> | 2014-02-25 19:01:11 +0100 | 
| commit | 8d438e785622695d55dbff05f8383447ff4eb251 (patch) | |
| tree | 91d5de425541d908a675865c69d759afe6429831 /id/ConfigWebTool/src | |
| parent | e352ed4ac809c333ebbba3421f8cb1857850535b (diff) | |
| parent | 26404cedff0e60969c98d7a7cab30f8e7eda9ea6 (diff) | |
| download | moa-id-spss-8d438e785622695d55dbff05f8383447ff4eb251.tar.gz moa-id-spss-8d438e785622695d55dbff05f8383447ff4eb251.tar.bz2 moa-id-spss-8d438e785622695d55dbff05f8383447ff4eb251.zip | |
Merge branch 'ap' into moa2_0_tlenz_bs_3
Conflicts:
	id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OASTORKConfig.java
	id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/stork/STORKConfig.java
	id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AuthenticationRequest.java
Diffstat (limited to 'id/ConfigWebTool/src')
6 files changed, 115 insertions, 1 deletions
| 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 c35bff633..9f1e9cfd8 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 @@ -26,12 +26,14 @@ 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.AttributeProviderPlugin;  import at.gv.egovernment.moa.id.commons.db.dao.config.AuthComponentOA;  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;  import at.gv.egovernment.moa.id.commons.db.dao.config.StorkAttribute;  import at.gv.egovernment.moa.logging.Logger; +import at.gv.egovernment.moa.id.protocols.stork2.AttributeProviderFactory;  public class OASTORKConfig { @@ -78,6 +80,18 @@ public class OASTORKConfig {  						tmp = new AttributeHelper(current);  					attributes.add(tmp); +				} +				 +				// fetch vidp config +				setVidpEnabled(config.isVidpEnabled()); + +				attributeProviderPlugins = config.getAttributeProviders(); +				// - if no attribute providers are configured, add a dummy +				// TODO this is a dirty hack since we have to have one entry to +				// clone from in the web form. Happens when time is short. +				// Sorry. +				if (attributeProviderPlugins.isEmpty()) +					attributeProviderPlugins.add(new AttributeProviderPlugin());  				}  } catch (NullPointerException ex) {                      Logger.error("Nullpointerexception encountered in Configurationinterface");                  } @@ -130,4 +144,30 @@ public class OASTORKConfig {  	public void setHelperAttributes(List<AttributeHelper> attributes) {  		this.attributes = attributes;  	} +	 +	/* +	 * VIDP settings below +	 */ +	private boolean vidpEnabled = false; +	private List<AttributeProviderPlugin> attributeProviderPlugins; + +	public List<String> getAvailableAttributeProviderPlugins() { +		return AttributeProviderFactory.getAvailablePlugins(); +	} +	 +	public List<AttributeProviderPlugin> getAttributeProviderPlugins() { +		return attributeProviderPlugins; +	} +	 +	public void setAttributeProviderPlugins(List<AttributeProviderPlugin> update) { +		attributeProviderPlugins = update; +	} + +	public boolean isVidpEnabled() { +		return vidpEnabled; +	} +	 +	public void setVidpEnabled(boolean update) { +		vidpEnabled = update; +	}  } 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 fd4030937..99bdfdc9c 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 @@ -1070,6 +1070,8 @@ public class EditOAAction extends ActionSupport implements ServletRequestAware,  		stork.setStorkLogonEnabled(storkOA.isStorkLogonEnabled());  		stork.setQaa(storkOA.getQaa());  		stork.setOAAttributes(storkOA.getAttributes()); +		stork.setVidpEnabled(storkOA.isVidpEnabled()); +		stork.setAttributeProviders(storkOA.getAttributeProviderPlugins());  		try {  			if (newentry) { diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OASTORKConfigValidation.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OASTORKConfigValidation.java index f72999020..25e0d751c 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OASTORKConfigValidation.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OASTORKConfigValidation.java @@ -27,8 +27,11 @@ import java.util.List;  import org.apache.log4j.Logger; +import at.gv.egovernment.moa.id.commons.db.dao.config.AttributeProviderPlugin;  import at.gv.egovernment.moa.id.configuration.data.oa.OASTORKConfig;  import at.gv.egovernment.moa.id.configuration.helper.LanguageHelper; +import at.gv.egovernment.moa.id.configuration.validation.ValidationHelper; +import at.gv.egovernment.moa.util.MiscUtil;  public class OASTORKConfigValidation { @@ -45,6 +48,17 @@ public class OASTORKConfigValidation {  			errors.add(LanguageHelper.getErrorString("validation.stork.qaa.outofrange",  					new Object[] {qaa} ));  		} +		 +		for(AttributeProviderPlugin current : oageneral.getAttributeProviderPlugins()) { +			if (MiscUtil.isEmpty(current.getUrl()) || !ValidationHelper.validateURL(current.getUrl())) { +				log.info("AttributeProviderPlugin URL has no valid form."); +				errors.add(LanguageHelper.getErrorString("validation.stork.ap.url.valid")); +			} +			if (MiscUtil.isEmpty(current.getName())) { +				log.info("AttributeProviderPlugin Name is empty."); +				errors.add(LanguageHelper.getErrorString("validation.stork.ap.name.valid")); +			} +		}  		return errors;  	} diff --git a/id/ConfigWebTool/src/main/resources/applicationResources.properties b/id/ConfigWebTool/src/main/resources/applicationResources.properties index 5bc85fdf6..a033205ed 100644 --- a/id/ConfigWebTool/src/main/resources/applicationResources.properties +++ b/id/ConfigWebTool/src/main/resources/applicationResources.properties @@ -210,7 +210,8 @@ webpages.oaconfig.menu.pvp2.show=PVP2 Konfiguration einblenden  webpages.oaconfig.menu.pvp2.hidden=PVP2 Konfiguration ausblenden  webpages.oaconfig.menu.oauth20.show=OAuth 2.0 Konfiguration einblenden  webpages.oaconfig.menu.oauth20.hidden=OAuth 2.0 Konfiguration ausblenden - +webpages.oaconfig.menu.vidp.show=VIDP Konfiguration einblenden +webpages.oaconfig.menu.vidp.hidden=VIDP Konfiguration ausblenden  webpages.oaconfig.menu.stork=STORK Konfiguration @@ -273,6 +274,11 @@ webpages.oaconfig.oauth20.clientId=Client ID  webpages.oaconfig.oauth20.clientSecret=Client Passwort  webpages.oaconfig.oauth20.redirectUri=Redirect Uri  +webpages.oaconfig.vidp.enabled=VIDP interface aktiv +webpages.oaconfig.vidp.ap.new=Neuen Attribut Provider erstellen +webpages.oaconfig.vidp.ap.remove=Entfernen +webpages.oaconfig.vidp.ap.list=Liste der konfigurierten Attribut Provider +  message.title=Meldung:  webpages.oaconfig.success=Die Online-Applikation {0} konnte erfolgreich gespeichert werden. @@ -411,6 +417,8 @@ validation.stork.cpeps.url=CPEPS URL ist ung\u00FCltig  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 +validation.stork.ap.url.valid=Ung\u00FCltige AttributProvider Url +validation.stork.ap.name.valid=Ung\u00FCltiger AttributProvider Name  validation.pvp2.metadataurl.empty=Keine Metadaten URL angegeben.  validation.pvp2.metadataurl.valid=Die Metadaten URL wei\u00DFt kein g\u00FCltiges URL Format auf. diff --git a/id/ConfigWebTool/src/main/webapp/js/common.js b/id/ConfigWebTool/src/main/webapp/js/common.js index 98f7bdacb..5fbbdafd1 100644 --- a/id/ConfigWebTool/src/main/webapp/js/common.js +++ b/id/ConfigWebTool/src/main/webapp/js/common.js @@ -51,6 +51,17 @@ function oaStork() {  		$('#stork_block').css('display', "none");  	}  } +function oaVIDP() { +	if ($('#oa_vidp_area').css('display') == "block") { +		$('#oa_vidp_area').css('display', "none"); +		$('#button_vidp_show').css('display', "block"); +		$('#button_vidp_hidden').css('display', "none"); +	} else { +		$('#oa_vidp_area').css('display', "block"); +		$('#button_vidp_show').css('display', "none"); +		$('#button_vidp_hidden').css('display', "block"); +	} +}  function oaSAML1() {  	if ($('#oa_saml1_area').css('display') == "block") {  		$('#oa_saml1_area').css('display', "none"); @@ -229,4 +240,13 @@ function newStorkAttribute() {  	clone.innerHTML = clone.innerHTML.replace(/name="storkconfig.attributes\[\d/g, 'name="storkconfig.attributes[' + nextindex);  	clone.innerHTML = clone.innerHTML.replace(/(.*" value=").*?(".*)/g, '$1$2');  	target.parentNode.appendChild(clone); +} +function newAp() { +	var target = $(document.getElementById("stork_aplist").getElementsByTagName("tr")).last()[0]; +	var clone = target.cloneNode(true); +	var lastindex = parseInt(clone.innerHTML.match(/name="storkOA.attributeProviderPlugins\[(\d)/)[1]); +	var nextindex = lastindex + 1; +	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 diff --git a/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp b/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp index e182fd805..7887d9d62 100644 --- a/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp +++ b/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp @@ -384,6 +384,13 @@  								<button type="button" class="oa_buttons" onclick="oaSAML1();" id="button_saml1_hidden">  									<%=LanguageHelper.getGUIString("webpages.oaconfig.menu.saml1.hidden", request) %>  								</button> +								 +								<button  type="button" class="oa_buttons" onclick="oaVIDP();" id="button_vidp_show"> +									<%=LanguageHelper.getGUIString("webpages.oaconfig.menu.vidp.show", request) %> +								</button> +								<button type="button" style="display:none" class="oa_buttons" onclick="oaVIDP();" id="button_vidp_hidden"> +									<%=LanguageHelper.getGUIString("webpages.oaconfig.menu.vidp.hidden", request) %> +								</button>  							</s:if>  							<button type="button" class="oa_buttons" onclick="oaPVP2();" id="button_pvp2_show"> @@ -496,6 +503,29 @@  								cssClass="textfield_long">  							</s:textfield>  						</div> +						 +											 +						<div id="oa_vidp_area" class="oa_protocol_area"> +							<h4><%=LanguageHelper.getGUIString("webpages.oaconfig.stork.header", request) %></h4> +	 +							<p><s:checkbox name="storkOA.vidpEnabled"  +								value="%{storkOA.vidpEnabled}" +								labelposition="left" +								key="webpages.oaconfig.vidp.enabled" +								cssClass="checkbox" +								id="OAuseVidp" /></p> +							<h5><%=LanguageHelper.getGUIString("webpages.oaconfig.vidp.ap.list", request) %></h5> +							<table id="stork_aplist"> +								<tr><th>AP Plugin</th><th>URL</th> +								<s:iterator value="storkOA.attributeProviderPlugins" status="stat"> +								  <tr><td><s:select name="storkOA.attributeProviderPlugins[%{#stat.index}].plugin" value="%{plugin}" list="%{storkOA.availableAttributeProviderPlugins}"/></td> +								      <td><s:textfield name="storkOA.attributeProviderPlugins[%{#stat.index}].url" value="%{url}" cssClass="textfield"/></td> +								      <td><input type="button" value="<%=LanguageHelper.getGUIString("webpages.oaconfig.vidp.ap.remove", request) %>" onclick='this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);'/></td></tr> +								</s:iterator> +							</table> +							<input type="button" value="<%=LanguageHelper.getGUIString("webpages.oaconfig.vidp.ap.new", request) %>" onclick='newAp();' /> +								 +						</div>  					</div> | 
