diff options
| author | Thomas Lenz <thomas.lenz@egiz.gv.at> | 2014-03-25 22:02:54 +0100 | 
|---|---|---|
| committer | Thomas Lenz <thomas.lenz@egiz.gv.at> | 2014-03-25 22:02:54 +0100 | 
| commit | fc189a2e69c7468c12621b7d4a3c94343d1a672c (patch) | |
| tree | 89d9e08195bf3c708115ded47a8e588c6e4acbb0 /id/ConfigWebTool | |
| parent | 242a22849402a13e585fada9d055a85f1c6d1ee8 (diff) | |
| parent | 1b47a1e5f5787a3d1681cdee8b8bc1ec7a5cd9c9 (diff) | |
| download | moa-id-spss-fc189a2e69c7468c12621b7d4a3c94343d1a672c.tar.gz moa-id-spss-fc189a2e69c7468c12621b7d4a3c94343d1a672c.tar.bz2 moa-id-spss-fc189a2e69c7468c12621b7d4a3c94343d1a672c.zip | |
merge
Diffstat (limited to 'id/ConfigWebTool')
24 files changed, 2542 insertions, 1438 deletions
| diff --git a/id/ConfigWebTool/ConfigurationInterface.iml b/id/ConfigWebTool/ConfigurationInterface.iml new file mode 100644 index 000000000..10f5ffc26 --- /dev/null +++ b/id/ConfigWebTool/ConfigurationInterface.iml @@ -0,0 +1,193 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"> +  <component name="FacetManager"> +    <facet type="web" name="Web"> +      <configuration> +        <descriptors> +          <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/src/main/webapp/WEB-INF/web.xml" /> +        </descriptors> +        <webroots> +          <root url="file://$MODULE_DIR$/src/main/webapp" relative="/" /> +        </webroots> +      </configuration> +      <facet type="Struts2" name="Struts 2"> +        <configuration> +          <propertiesKeys disabled="false" /> +        </configuration> +      </facet> +    </facet> +    <facet type="javaeeApplication" name="javaEEApplication"> +      <configuration> +        <descriptors> +          <deploymentDescriptor name="application.xml" url="file://$MODULE_DIR$/src/main/webapp/jsp/importexport.jsp" /> +        </descriptors> +      </configuration> +    </facet> +  </component> +  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5" inherit-compiler-output="false"> +    <output url="file://$MODULE_DIR$/target/classes" /> +    <output-test url="file://$MODULE_DIR$/target/test-classes" /> +    <content url="file://$MODULE_DIR$"> +      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> +      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" /> +      <excludeFolder url="file://$MODULE_DIR$/target" /> +    </content> +    <orderEntry type="inheritedJdk" /> +    <orderEntry type="sourceFolder" forTests="false" /> +    <orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.6.6" level="project" /> +    <orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:jstl:1.2" level="project" /> +    <orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:servlet-api:2.4" level="project" /> +    <orderEntry type="library" name="Maven: log4j:log4j:1.2.14" level="project" /> +    <orderEntry type="module" module-name="moa-id-commons" /> +    <orderEntry type="library" name="Maven: org.hibernate:hibernate-core:4.2.1.Final" level="project" /> +    <orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" /> +    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.1.0.GA" level="project" /> +    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" /> +    <orderEntry type="library" name="Maven: org.jboss.spec.javax.transaction:jboss-transaction-api_1.1_spec:1.0.1.Final" level="project" /> +    <orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.0-api:1.0.1.Final" level="project" /> +    <orderEntry type="library" name="Maven: org.javassist:javassist:3.15.0-GA" level="project" /> +    <orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:4.0.1.Final" level="project" /> +    <orderEntry type="library" name="Maven: org.hibernate:hibernate-c3p0:4.2.1.Final" level="project" /> +    <orderEntry type="library" name="Maven: c3p0:c3p0:0.9.1" level="project" /> +    <orderEntry type="library" name="Maven: org.hibernate:hibernate-entitymanager:4.2.1.Final" level="project" /> +    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.1" level="project" /> +    <orderEntry type="module" module-name="moa-common" /> +    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.0.4" level="project" /> +    <orderEntry type="library" name="Maven: iaik.prod:iaik_jce_full:5.101" level="project" /> +    <orderEntry type="library" name="Maven: iaik.prod:iaik_moa:1.5" level="project" /> +    <orderEntry type="library" name="Maven: jaxen:jaxen:1.0-FCS" level="project" /> +    <orderEntry type="library" name="Maven: saxpath:saxpath:1.0-FCS" level="project" /> +    <orderEntry type="library" name="Maven: joda-time:joda-time:2.2" level="project" /> +    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.5" level="project" /> +    <orderEntry type="library" name="Maven: org.slf4j:slf4j-simple:1.7.5" level="project" /> +    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.5" level="project" /> +    <orderEntry type="library" name="Maven: org.slf4j:log4j-over-slf4j:1.7.5" level="project" /> +    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.5" level="project" /> +    <orderEntry type="library" name="Maven: commons-io:commons-io:1.3.2" level="project" /> +    <orderEntry type="library" name="Maven: org.jvnet.hyperjaxb3:hyperjaxb3-ejb-runtime:0.5.6" level="project" /> +    <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" /> +    <orderEntry type="library" name="Maven: org.jvnet.jaxb2_commons:jaxb2-basics-runtime:0.6.2" level="project" /> +    <orderEntry type="library" name="Maven: org.jvnet.hyperjaxb3:maven-hyperjaxb3-plugin:0.5.6" level="project" /> +    <orderEntry type="library" name="Maven: org.jvnet.hyperjaxb3:hyperjaxb3-ejb-plugin:0.5.6" level="project" /> +    <orderEntry type="library" name="Maven: org.jvnet.annox:annox:0.5.0" level="project" /> +    <orderEntry type="library" name="Maven: org.jvnet.jaxb2_commons:jaxb2-basics-annotate:0.6.2" level="project" /> +    <orderEntry type="library" name="Maven: org.jvnet.jaxb2_commons:jaxb2-basics-tools:0.6.2" level="project" /> +    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.7.0" level="project" /> +    <orderEntry type="library" name="Maven: org.jvnet.jaxb2_commons:jaxb2-basics:0.6.2" level="project" /> +    <orderEntry type="library" name="Maven: org.jvnet.hyperjaxb3:hyperjaxb3-ejb-roundtrip:0.5.6" level="project" /> +    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:3.8.1" level="project" /> +    <orderEntry type="library" name="Maven: org.jvnet.jaxb2_commons:jaxb2-basics-testing:0.6.2" level="project" /> +    <orderEntry type="library" name="Maven: xmlunit:xmlunit:1.0" level="project" /> +    <orderEntry type="library" name="Maven: org.jvnet.hyperjaxb3:hyperjaxb3-ejb-schemas-persistence:0.5.6" level="project" /> +    <orderEntry type="library" name="Maven: org.jvnet.hyperjaxb3:hyperjaxb3-ejb-schemas-customizations:0.5.6" level="project" /> +    <orderEntry type="library" name="Maven: org.springframework:spring:2.0.7" level="project" /> +    <orderEntry type="library" name="Maven: org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.8.0" level="project" /> +    <orderEntry type="library" name="Maven: org.jvnet.jaxb2.maven2:maven-jaxb2-plugin-core:0.8.0" level="project" /> +    <orderEntry type="library" name="Maven: com.sun.org.apache.xml.internal:resolver:20050927" level="project" /> +    <orderEntry type="library" name="Maven: org.apache.maven:maven-plugin-api:2.2.1" level="project" /> +    <orderEntry type="library" name="Maven: org.apache.maven:maven-project:2.2.1" level="project" /> +    <orderEntry type="library" name="Maven: org.apache.maven:maven-settings:2.2.1" level="project" /> +    <orderEntry type="library" name="Maven: org.apache.maven:maven-model:2.2.1" level="project" /> +    <orderEntry type="library" name="Maven: org.codehaus.plexus:plexus-utils:1.5.15" level="project" /> +    <orderEntry type="library" name="Maven: org.codehaus.plexus:plexus-interpolation:1.11" level="project" /> +    <orderEntry type="library" name="Maven: org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1" level="project" /> +    <orderEntry type="library" name="Maven: classworlds:classworlds:1.1-alpha-2" level="project" /> +    <orderEntry type="library" name="Maven: org.apache.maven:maven-profile:2.2.1" level="project" /> +    <orderEntry type="library" name="Maven: org.apache.maven:maven-artifact-manager:2.2.1" level="project" /> +    <orderEntry type="library" name="Maven: org.apache.maven:maven-repository-metadata:2.2.1" level="project" /> +    <orderEntry type="library" name="Maven: org.apache.maven:maven-artifact:2.2.1" level="project" /> +    <orderEntry type="library" name="Maven: org.apache.maven.wagon:wagon-provider-api:1.0-beta-6" level="project" /> +    <orderEntry type="library" name="Maven: backport-util-concurrent:backport-util-concurrent:3.1" level="project" /> +    <orderEntry type="library" name="Maven: org.apache.maven:maven-plugin-registry:2.2.1" level="project" /> +    <orderEntry type="library" name="Maven: org.jfrog.maven.annomojo:maven-plugin-anno:1.3.1" level="project" /> +    <orderEntry type="library" name="Maven: org.jvnet.jaxb2.maven2:maven-jaxb22-plugin:0.8.0" level="project" /> +    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.2.5" level="project" /> +    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-xjc:2.2.4-1" level="project" /> +    <orderEntry type="library" name="Maven: mysql:mysql-connector-java:5.1.25" level="project" /> +    <orderEntry type="module" module-name="moa-id-lib" /> +    <orderEntry type="library" name="Maven: eu.stork:oasis-dss-api:1.0.0-RELEASE" level="project" /> +    <orderEntry type="library" name="Maven: eu.medsea.mimeutil:mime-util:2.1.3" level="project" /> +    <orderEntry type="module" module-name="Commons" /> +    <orderEntry type="library" name="Maven: org.opensaml:opensaml:2.6.0" level="project" /> +    <orderEntry type="library" name="Maven: org.opensaml:openws:1.5.0" level="project" /> +    <orderEntry type="library" name="Maven: org.opensaml:xmltooling:1.4.0" level="project" /> +    <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15:1.46" level="project" /> +    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.8" level="project" /> +    <orderEntry type="library" name="Maven: ca.juliusdavies:not-yet-commons-ssl:0.3.9" level="project" /> +    <orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" /> +    <orderEntry type="library" name="Maven: org.apache.santuario:xmlsec:1.5.4" level="project" /> +    <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.xerces:xml-apis:2.10.0" level="project" /> +    <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.xerces:xercesImpl:2.10.0" level="project" /> +    <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.xerces:serializer:2.10.0" level="project" /> +    <orderEntry type="library" scope="RUNTIME" name="Maven: xml-resolver:xml-resolver:1.2" level="project" /> +    <orderEntry type="library" name="Maven: xalan:xalan:2.7.1" level="project" /> +    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" /> +    <orderEntry type="library" name="Maven: org.apache.velocity:velocity:1.7" level="project" /> +    <orderEntry type="library" name="Maven: org.owasp.esapi:esapi:2.0.1" level="project" /> +    <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk16:1.46" level="project" /> +    <orderEntry type="module" module-name="SamlEngine" /> +    <orderEntry type="module" module-name="moa-spss-lib" /> +    <orderEntry type="library" name="Maven: axis:axis:1.0_IAIK" level="project" /> +    <orderEntry type="library" name="Maven: org.apache.axis:axis-jaxrpc:1.4" level="project" /> +    <orderEntry type="library" name="Maven: org.apache.axis:axis-saaj:1.4" level="project" /> +    <orderEntry type="library" name="Maven: axis:axis-wsdl4j:1.5.1" level="project" /> +    <orderEntry type="library" name="Maven: commons-discovery:commons-discovery:0.2" level="project" /> +    <orderEntry type="library" name="Maven: javax.activation:activation:1.1" level="project" /> +    <orderEntry type="library" name="Maven: javax.mail:mail:1.4" level="project" /> +    <orderEntry type="library" scope="RUNTIME" name="Maven: postgresql:postgresql:7.2" level="project" /> +    <orderEntry type="library" name="Maven: xalan-bin-dist:xalan:2.7.1" level="project" /> +    <orderEntry type="library" name="Maven: xalan:serializer:2.7.1" level="project" /> +    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.3.04" level="project" /> +    <orderEntry type="library" name="Maven: xerces:xercesImpl:2.9.0" level="project" /> +    <orderEntry type="library" scope="RUNTIME" name="Maven: xalan-bin-dist:xml-apis:2.7.1" level="project" /> +    <orderEntry type="library" scope="RUNTIME" name="Maven: xalan-bin-dist:serializer:2.7.1" level="project" /> +    <orderEntry type="library" name="Maven: iaik.prod:iaik_ixsil:1.2.2.5" level="project" /> +    <orderEntry type="library" scope="PROVIDED" name="Maven: iaik.prod:iaik_ecc:2.19" level="project" /> +    <orderEntry type="library" name="Maven: iaik.prod:iaik_cms:4.1_MOA" level="project" /> +    <orderEntry type="library" scope="RUNTIME" name="Maven: iaik.prod:iaik_Pkcs11Provider:1.2.4" level="project" /> +    <orderEntry type="library" name="Maven: iaik.prod:iaik_Pkcs11Wrapper:1.2.17" level="project" /> +    <orderEntry type="library" name="Maven: iaik.prod:iaik_tsl:1.0" level="project" /> +    <orderEntry type="library" name="Maven: iaik:iaik_xsect_eval:1.1709142" level="project" /> +    <orderEntry type="library" name="Maven: iaik:iaik_ecc_signed:2.19" level="project" /> +    <orderEntry type="library" name="Maven: iaik:iaik_jce_eval_signed:3.181" level="project" /> +    <orderEntry type="library" name="Maven: iaik:iaik_pki_module:1.0" level="project" /> +    <orderEntry type="library" name="Maven: iaik:iaik_javax_crypto:1.0" level="project" /> +    <orderEntry type="library" name="Maven: iaik:iaik_util:0.23" level="project" /> +    <orderEntry type="library" name="Maven: iaik:iaik_jsse:4.4" level="project" /> +    <orderEntry type="library" name="Maven: iaik:iaik_ssl:4.4" level="project" /> +    <orderEntry type="library" name="Maven: iaik:w3c_http:1.0" level="project" /> +    <orderEntry type="library" name="Maven: org.xerial:sqlite-jdbc:3.7.8-SNAPSHOT" level="project" /> +    <orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" /> +    <orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.2.6" level="project" /> +    <orderEntry type="library" name="Maven: iaik.prod:iaik_util:0.23" level="project" /> +    <orderEntry type="library" name="Maven: iaik.prod:iaik_xsect:1.1709142" level="project" /> +    <orderEntry type="library" name="Maven: iaik.prod:iaik_jsse:4.4" level="project" /> +    <orderEntry type="library" name="Maven: com.sun:webservices-tools:2.0.1" level="project" /> +    <orderEntry type="library" name="Maven: com.sun:webservices-rt:2.0.1" level="project" /> +    <orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3" level="project" /> +    <orderEntry type="library" name="Maven: dav4j:dav4j:0.1" level="project" /> +    <orderEntry type="library" name="Maven: httpsclient:httpsclient:JSSE-1.0" level="project" /> +    <orderEntry type="library" name="Maven: iaik.prod:iaik_X509TrustManager:0.3" level="project" /> +    <orderEntry type="library" name="Maven: regexp:regexp:1.3" level="project" /> +    <orderEntry type="library" name="Maven: com.googlecode.jsontoken:jsontoken:1.0" level="project" /> +    <orderEntry type="library" name="Maven: com.google.code.gson:gson:1.4" level="project" /> +    <orderEntry type="library" name="Maven: com.google.collections:google-collections:1.0" level="project" /> +    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.0.1" level="project" /> +    <orderEntry type="library" name="Maven: at.gv.util:egovutils:1.0.4" level="project" /> +    <orderEntry type="library" name="Maven: commons-validator:commons-validator:1.3.1" level="project" /> +    <orderEntry type="library" name="Maven: commons-digester:commons-digester:1.6" level="project" /> +    <orderEntry type="library" name="Maven: bouncycastle:bcprov-jdk16:140" level="project" /> +    <orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.6.1" level="project" /> +    <orderEntry type="library" name="Maven: org.apache.struts:struts2-core:2.3.14.3" level="project" /> +    <orderEntry type="library" name="Maven: org.apache.struts.xwork:xwork-core:2.3.14.3" level="project" /> +    <orderEntry type="library" name="Maven: ognl:ognl:3.0.6" level="project" /> +    <orderEntry type="library" name="Maven: javassist:javassist:3.11.0.GA" level="project" /> +    <orderEntry type="library" name="Maven: asm:asm:3.3" level="project" /> +    <orderEntry type="library" name="Maven: asm:asm-commons:3.3" level="project" /> +    <orderEntry type="library" name="Maven: asm:asm-tree:3.3" level="project" /> +    <orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.19" level="project" /> +    <orderEntry type="library" name="Maven: org.apache.struts:struts2-json-plugin:2.3.14.3" level="project" /> +    <orderEntry type="library" name="Maven: iaik:commons-iaik:0.7.1" level="project" /> +  </component> +</module> + diff --git a/id/ConfigWebTool/pom.xml b/id/ConfigWebTool/pom.xml index 15228a30e..25dbcc25d 100644 --- a/id/ConfigWebTool/pom.xml +++ b/id/ConfigWebTool/pom.xml @@ -2,13 +2,13 @@  	<parent>    	<groupId>MOA</groupId>      <artifactId>id</artifactId> -    <version>1.9.98-SNAPSHOT</version> +    <version>2.0.0</version>    </parent>    <modelVersion>4.0.0</modelVersion>    <groupId>MOA.id</groupId>    <artifactId>moa-id-configuration</artifactId> -  <version>0.9.8-SNAPSHOT</version> +  <version>1.0.0</version>    <packaging>war</packaging>    <name>MOA-ID 2.0 Configuration Tool</name>    <description>Web based Configuration Tool for MOA-ID 2.x</description> @@ -45,7 +45,7 @@        <dependency>      		<groupId>MOA.id.server</groupId>      		<artifactId>moa-id-commons</artifactId> -    		<version>1.9.98-SNAPSHOT</version> +    		<version>2.0.0</version>      	</dependency>        <dependency>      		<groupId>MOA.id.server</groupId> @@ -68,9 +68,17 @@      					<groupId>com.sun</groupId>      					<artifactId>*</artifactId>      				</exclusion> -    			</exclusions> -				 -		</dependency> +			    	<exclusion> +			       	<groupId>org.slf4j</groupId> +			       	<artifactId>*</artifactId>			         +			    	</exclusion> +    			</exclusions>				 +			</dependency> +			<dependency> +				<groupId>org.slf4j</groupId> +				<artifactId>slf4j-simple</artifactId> +				<version>1.7.5</version> +			</dependency>        <dependency>    		<groupId>org.opensaml</groupId> diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java index 7a9d91a5d..79a966b81 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java @@ -69,9 +69,12 @@ public class Constants {  	public static final String BKU_HANDY = "bkuhandy";  	public static final String MOA_CONFIG_BUSINESSSERVICE = "businessService"; -	public static final String MOA_CONFIG_PROTOCOL_SAML1 = "id_saml1"; +    public static final String MOA_CONFIG_STORKSERVICE = "storkService"; +    public static final String MOA_CONFIG_PROTOCOL_SAML1 = "id_saml1";  	public static final String MOA_CONFIG_PROTOCOL_PVP2 = "id_pvp2x"; -	 +    public static final String MOA_CONFIG_PROTOCOL_STORK2 = "id_stork2"; + +  	public static final String DEFAULT_LOCALBKU_URL = "https://127.0.0.1:3496/https-security-layer-request";  	public static final String DEFAULT_HANDYBKU_URL = "https://www.handy-signatur.at/mobile/https-security-layer-request/default.aspx"; @@ -80,20 +83,24 @@ public class Constants {  	public static final String IDENIFICATIONTYPE_FN = "FN";  	public static final String IDENIFICATIONTYPE_ERSB = "ERSB";  	public static final String IDENIFICATIONTYPE_ZVR = "ZVR"; -	public static final String IDENIFICATIONTYPE_BASEID = "urn:publicid:gv.at:baseid+"; +    public static final String IDENIFICATIONTYPE_STORK = "STORK"; +    public static final String IDENIFICATIONTYPE_BASEID = "urn:publicid:gv.at:baseid+";  	public static final String IDENIFICATIONTYPE_BASEID_FN = IDENIFICATIONTYPE_BASEID + "X" + IDENIFICATIONTYPE_FN;  	public static final String IDENIFICATIONTYPE_BASEID_ZVR = IDENIFICATIONTYPE_BASEID + "X" + IDENIFICATIONTYPE_ZVR;  	public static final String PREFIX_WPBK = "urn:publicid:gv.at:wbpk+"; -	 -	public static final Map<String, String> BUSINESSSERVICENAMES; +    public static final String PREFIX_STORK = "urn:publicid:gv.at:storkid+"; + + +    public static final Map<String, String> BUSINESSSERVICENAMES;  	static {  		Hashtable<String, String> tmp = new Hashtable<String, String>();  		tmp.put(IDENIFICATIONTYPE_FN, "Firmenbuchnummer");  		tmp.put(IDENIFICATIONTYPE_ZVR, "Vereinsnummer");  		tmp.put(IDENIFICATIONTYPE_ERSB, "ERsB Kennzahl"); -		 -		BUSINESSSERVICENAMES = Collections.unmodifiableMap(tmp); +        tmp.put(IDENIFICATIONTYPE_STORK, "STORK"); + +        BUSINESSSERVICENAMES = Collections.unmodifiableMap(tmp);  	}  } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java index 0c4823f43..2dce3534f 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java @@ -92,7 +92,7 @@ public class ConfigurationProvider {  		configFileName = System.getProperty(SYSTEM_PROP_CONFIG);  	    if (configFileName == null) { -	        throw new ConfigurationException("config.01"); +	        throw new ConfigurationException("config.05");  	    }  		// determine the directory of the root config file @@ -377,6 +377,14 @@ public class ConfigurationProvider {  	public String getMailOAActivationSubject() {  		return props.getProperty("general.mail.createOArequest.isactive.subject");  	} + +    public String getDefaultLanguage() { +        try { +            return props.getProperty("general.defaultlanguage").toLowerCase(); +        } catch (Exception ex) { +            return "de"; +        } +    }  	public String getMailOAActivationTemplate() throws ConfigurationException {  		String url = props.getProperty("general.mail.createOArequest.isactive.template"); 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 d6ede8fbf..4c3486b46 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 @@ -55,6 +55,7 @@ import at.gv.egovernment.moa.id.commons.db.dao.config.TransformsInfoType;  import at.gv.egovernment.moa.id.commons.db.dao.config.TrustAnchor;  import at.gv.egovernment.moa.id.commons.db.dao.config.VerifyAuthBlock;  import at.gv.egovernment.moa.id.commons.db.dao.config.VerifyIdentityLink; +import at.gv.egovernment.moa.id.config.legacy.ConfigurationBuilder;  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; @@ -113,6 +114,7 @@ public class GeneralMOAIDConfig {  	private static Map<String, String> chainigmodelist;  	private String trustedCACerts = null; +  	private String defaultBKUOnline = "";  	private String defaultBKULocal = "https://127.0.0.1:3496/https-security-layer-request"; @@ -305,6 +307,7 @@ public class GeneralMOAIDConfig {  			if (modes != null) {  				ChainingModeType defaultmode = modes.getSystemDefaultMode();  				if (defaultmode != null) { +					  					defaultchainigmode = defaultmode.value();  				} 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 980aa4731..3354fd708 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 @@ -31,14 +31,18 @@ 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 {  	private List<CPEPS> cpepslist;  	private List<StorkAttribute> attributes;  	private int qaa; +    private static final Logger log = Logger.getLogger(GeneralStorkConfig.class); + +    public void parse(MOAIDConfiguration config) { +        log.error("STARTED STORK CONFIG"); -	public void parse(MOAIDConfiguration config) {  		if (config != null) {  			AuthComponentGeneral auth = config.getAuthComponentGeneral(); @@ -48,22 +52,23 @@ public class GeneralStorkConfig {  				if (foreign != null) {  					STORK stork = foreign.getSTORK(); +					cpepslist = new ArrayList<CPEPS>(); +					attributes = new ArrayList<StorkAttribute>(); +					  					if (stork != null) {  						// deep clone all the things  						// to foreclose lazyloading session timeouts -						cpepslist = new ArrayList<CPEPS>(); +						  						for(CPEPS current : stork.getCPEPS()) {  							cpepslist.add(current);  						} - +						  						List<StorkAttribute> tmp = stork.getAttributes();  						if(null != tmp) { -							attributes = new ArrayList<StorkAttribute>(); +							  							for(StorkAttribute current : tmp)  								attributes.add(current);  						} -						if(attributes.isEmpty()) -							attributes.add(new StorkAttribute());  						try {  							qaa = stork.getQualityAuthenticationAssuranceLevel(); @@ -71,6 +76,12 @@ public class GeneralStorkConfig {  							qaa = 4;  						}  					} +					 +					if (cpepslist.isEmpty()) +						cpepslist.add(new CPEPS()); +					 +					if(attributes.isEmpty()) +						attributes.add(new StorkAttribute());  				}  			}  		} diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAGeneralConfig.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAGeneralConfig.java index ba58701fc..7510b8932 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAGeneralConfig.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAGeneralConfig.java @@ -37,6 +37,7 @@ import at.gv.egovernment.moa.id.commons.db.dao.config.IdentificationNumber;  import at.gv.egovernment.moa.id.commons.db.dao.config.MOAIDConfiguration;  import at.gv.egovernment.moa.id.commons.db.dao.config.MOAKeyBoxSelector;  import at.gv.egovernment.moa.id.commons.db.dao.config.Mandates; +import at.gv.egovernment.moa.id.commons.db.dao.config.MandatesProfileNameItem;  import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication;  import at.gv.egovernment.moa.id.commons.db.dao.config.TemplateType;  import at.gv.egovernment.moa.id.commons.db.dao.config.TemplatesType; @@ -58,17 +59,19 @@ public class OAGeneralConfig {  	private String friendlyName = null;  	private boolean businessService = false; -	 -	private String target = null; +    private boolean storkService = false; + +    private String target = null;  	private String target_subsector = null;  	private String target_admin = null;  	private static List<String> targetList = null;  	private String targetFriendlyName = null;  	private boolean isAdminTarget = false; -	 +  	private String identificationNumber = null;  	private String identificationType = null;  	private static List<String> identificationTypeList = null; +    private String storkSPTargetCountry = null;  	private String aditionalAuthBlockText = null; @@ -118,7 +121,8 @@ public class OAGeneralConfig {  		 identificationTypeList = Arrays.asList(  				 Constants.IDENIFICATIONTYPE_FN,  				 Constants.IDENIFICATIONTYPE_ZVR, -				 Constants.IDENIFICATIONTYPE_ERSB); +				 Constants.IDENIFICATIONTYPE_ERSB, +                 Constants.IDENIFICATIONTYPE_STORK);  	} @@ -159,8 +163,17 @@ public class OAGeneralConfig {  			businessService = true;  		else   			businessService = false; -		 -		AuthComponentOA oaauth = dbOAConfig.getAuthComponentOA(); + +        if (dbOAConfig.getType().equals(Constants.MOA_CONFIG_STORKSERVICE)) +            storkService = true; +        else +            storkService = false; + +        if (dbOAConfig.getStorkSPTargetCountry() != null) +            storkSPTargetCountry = dbOAConfig.getStorkSPTargetCountry(); + + +        AuthComponentOA oaauth = dbOAConfig.getAuthComponentOA();  		if (oaauth != null) {  			BKUURLS bkuurls = oaauth.getBKUURLS(); @@ -205,22 +218,42 @@ public class OAGeneralConfig {  					if (Constants.PREFIX_WPBK.startsWith(split[0]) && split.length >= 2) {  						identificationType = split[1];  						identificationNumber = split[2]; -					} +					} else if (Constants.PREFIX_STORK.startsWith(split[0]) && split.length >= 2) { +                        identificationType = split[1]; // setting at as iden category ? +                        identificationNumber = split[2]; // setting sp country as ident type -> sp ident +                    }  				}  			}  			Mandates mandates = oaauth.getMandates();  			if (mandates != null) { -				if (MiscUtil.isNotEmpty(mandates.getProfiles())) { -					mandateProfiles = mandates.getProfiles(); -					useMandates = true; +				mandateProfiles = null; +				 +				List<MandatesProfileNameItem> profileList = mandates.getProfileNameItems(); +				for (MandatesProfileNameItem el : profileList) { +					if (mandateProfiles == null) +						mandateProfiles = el.getItem(); -				} else { -					mandateProfiles = new String(); -					useMandates = false; +					else +						mandateProfiles += "," + el.getItem();  				} +				//TODO: only for RC1 +				if (MiscUtil.isNotEmpty(mandates.getProfiles())) { +					if (mandateProfiles == null) +						mandateProfiles = mandates.getProfiles(); +					 +					else +						mandateProfiles += "," + mandates.getProfiles(); +					 +				}  +				 +				if (mandateProfiles != null) +					useMandates = true; +				 +				else +					useMandates = false;  			} @@ -301,6 +334,14 @@ public class OAGeneralConfig {  		return identificationNumber;  	} +    public String getStorkSPTargetCountry() { +        return storkSPTargetCountry; +    } + +    public void setStorkSPTargetCountry(String storkSPTargetCountry) { +        this.storkSPTargetCountry = storkSPTargetCountry; +    } +  	public void setIdentificationNumber(String identificationNumber) {  		this.identificationNumber = identificationNumber;  	} @@ -341,6 +382,14 @@ public class OAGeneralConfig {  		return businessService;  	} +    public boolean isStorkService() { +        return storkService; +    } + +    public void setStorkService(boolean storkService) { +        this.storkService = storkService; +    } +  	public void setBusinessService(boolean businessService) {  		this.businessService = businessService;  	} diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OASAML1Config.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OASAML1Config.java index cdfb20294..bb5baf53e 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OASAML1Config.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OASAML1Config.java @@ -28,13 +28,13 @@ import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication;  public class OASAML1Config { -	private boolean isActive = false; -	private boolean provideStammZahl = false; -	private boolean provideAuthBlock = false; -	private boolean provideIdentityLink = false; -	private boolean provideCertificate = false; -	private boolean provideFullMandateData = false; -	private boolean useCondition = false; +	private Boolean isActive = false; +	private Boolean provideStammZahl = false; +	private Boolean provideAuthBlock = false; +	private Boolean provideIdentityLink = false; +	private Boolean provideCertificate = false; +	private Boolean provideFullMandateData = false; +	private Boolean useCondition = false;  	private int conditionLength = -1; 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 da07b10b0..d5355a421 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,21 +26,31 @@ 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 {  	private boolean isStorkLogonEnabled = false;  	private int qaa; -	private List<AttributeHelper> attributes; +	private List<AttributeHelper> attributes = null; +	/* +	 * VIDP settings below +	 */ +	private boolean vidpEnabled = false; +	private List<AttributeProviderPlugin> attributeProviderPlugins = new ArrayList<AttributeProviderPlugin>(); +	private boolean requireConsent = false; +	  	public OASTORKConfig() { - +		  	}  	/** @@ -65,6 +75,7 @@ public class OASTORKConfig {  				// prepare attribute helper list  				attributes = new ArrayList<AttributeHelper>(); +                try {  				for(StorkAttribute current : ConfigurationDBRead.getMOAIDConfiguration().getAuthComponentGeneral().getForeignIdentities().getSTORK().getAttributes()) {  					AttributeHelper tmp = null; @@ -77,6 +88,21 @@ public class OASTORKConfig {  					attributes.add(tmp);  				} +				 +				// fetch vidp config +				setVidpEnabled(config.isVidpEnabled()); +				setRequireConsent(config.isRequireConsent()); + +				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"); +                }  			}  		}  	} @@ -126,4 +152,32 @@ public class OASTORKConfig {  	public void setHelperAttributes(List<AttributeHelper> attributes) {  		this.attributes = attributes;  	} +	 +	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; +	} +	 +	public boolean isRequireConsent() { +		return requireConsent; +	} +	 +	public void setRequireConsent(boolean update) { +		requireConsent = update; +	}  } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/LanguageHelper.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/LanguageHelper.java index a2f0628eb..73b2708ae 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/LanguageHelper.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/LanguageHelper.java @@ -23,6 +23,10 @@  package at.gv.egovernment.moa.id.configuration.helper; +import at.gv.egovernment.moa.id.configuration.config.ConfigurationProvider; +import at.gv.egovernment.moa.id.configuration.exception.ConfigurationException; +import at.gv.egovernment.moa.logging.Logger; +  import java.text.MessageFormat;  import java.util.Locale;  import java.util.ResourceBundle; @@ -34,9 +38,44 @@ public class LanguageHelper {  	private static ResourceBundle errorRes_DE = ResourceBundle.getBundle("applicationResources", Locale.GERMAN);  	private static ResourceBundle guiRes_DE = ResourceBundle.getBundle("applicationResources", Locale.GERMAN); -	 -	public static String getGUIString(String code, HttpServletRequest request) { -		return guiRes_DE.getString(code); + +    private static ResourceBundle errorRes_EN = ResourceBundle.getBundle("applicationResources_en", Locale.ENGLISH); +    private static ResourceBundle guiRes_EN = ResourceBundle.getBundle("applicationResources_en", Locale.ENGLISH); + +    private static ResourceBundle errorLanguage() { +        Logger.setHierarchy("moa.id.configuration"); +        try { +            ConfigurationProvider configurationProvider = ConfigurationProvider.getInstance(); +            if (configurationProvider.getDefaultLanguage().equals("en")) { +                return errorRes_EN; +            } else { +                return errorRes_DE; +            } +        } catch (ConfigurationException e) { +            Logger.error("Configuration exception while getting ConfigurationProvider instance"); +            e.printStackTrace(); +            return errorRes_DE; +        } +    } + +    private static ResourceBundle guiLanguage() { +        Logger.setHierarchy("moa.id.configuration"); +        try { +            ConfigurationProvider configurationProvider = ConfigurationProvider.getInstance(); +            if (configurationProvider.getDefaultLanguage().equals("en")) { +                return guiRes_EN; +            } else { +                return guiRes_DE; +            } +        } catch (ConfigurationException e) { +            Logger.error("Configuration exception while getting ConfigurationProvider instance"); +            e.printStackTrace(); +            return guiRes_DE; +        } +    } + +    public static String getGUIString(String code, HttpServletRequest request) { +        return guiRes_DE.getString(code);  	}  	public static String getGUIString(String code) { @@ -44,16 +83,15 @@ public class LanguageHelper {  	}  	public static String getErrorString(String code, HttpServletRequest request) { -		return errorRes_DE.getString(code); +		return errorLanguage().getString(code);  	}  	public static String getErrorString(String code) { -		return errorRes_DE.getString(code); +		return errorLanguage().getString(code);  	}  	public static String getGUIString(String code, String parameter, HttpServletRequest request) { -				 -		return MessageFormat.format(getGUIString(code, request), parameter); +        return MessageFormat.format(getGUIString(code, request), parameter);  	}  	public static String getErrorString(String code, Object[] parameter, HttpServletRequest request) { diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/MailHelper.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/MailHelper.java index 6f1112e2e..0aeed8cb5 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/MailHelper.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/MailHelper.java @@ -69,7 +69,7 @@ public class MailHelper {  		String template = readTemplateFromURL(templateurl); -		if (userdb.isIsMandateUser()) { +		if (userdb.isIsMandateUser() != null && userdb.isIsMandateUser()) {  			template = template.replace(PATTERN_GIVENNAME, userdb.getInstitut());  			template = template.replace(PATTERN_FAMILYNAME, ""); @@ -174,7 +174,7 @@ public class MailHelper {  		String template = readTemplateFromURL(templateurl); -		if (userdb.isIsMandateUser()) { +		if (userdb.isIsMandateUser() != null && userdb.isIsMandateUser()) {  			template = template.replace(PATTERN_GIVENNAME, userdb.getInstitut());  			template = template.replace(PATTERN_FAMILYNAME, ""); diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/StringHelper.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/StringHelper.java index 43fc78821..53afa59a0 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/StringHelper.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/StringHelper.java @@ -22,6 +22,8 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.configuration.helper; +import java.io.UnsupportedEncodingException; +  public class StringHelper {  	public static String formatText(String strGivenText) @@ -47,4 +49,14 @@ public class StringHelper {          }          return sbFormattedText.toString();      } +	 +	public static String getUTF8String(String input) {		 +		try { +			return new String(input.getBytes(), "UTF-8"); +				 +		} catch (UnsupportedEncodingException e) { +			e.printStackTrace(); +			return input; +		} +	}  } 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 5df12a7a5..b77b47d15 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 @@ -23,12 +23,7 @@  package at.gv.egovernment.moa.id.configuration.struts.action;  import java.math.BigInteger; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse; @@ -41,6 +36,7 @@ import org.apache.struts2.interceptor.ServletResponseAware;  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.ChainingModeType;  import at.gv.egovernment.moa.id.commons.db.dao.config.ChainingModes;  import at.gv.egovernment.moa.id.commons.db.dao.config.ConnectionParameterClientAuthType; @@ -62,6 +58,7 @@ import at.gv.egovernment.moa.id.commons.db.dao.config.SLRequestTemplates;  import at.gv.egovernment.moa.id.commons.db.dao.config.SSO;  import at.gv.egovernment.moa.id.commons.db.dao.config.STORK;  import at.gv.egovernment.moa.id.commons.db.dao.config.SecurityLayer; +import at.gv.egovernment.moa.id.commons.db.dao.config.StorkAttribute;  import at.gv.egovernment.moa.id.commons.db.dao.config.TimeOuts;  import at.gv.egovernment.moa.id.commons.db.dao.config.TransformsInfoType;  import at.gv.egovernment.moa.id.commons.db.dao.config.TrustAnchor; @@ -73,6 +70,7 @@ import at.gv.egovernment.moa.id.configuration.auth.AuthenticatedUser;  import at.gv.egovernment.moa.id.configuration.data.GeneralMOAIDConfig;  import at.gv.egovernment.moa.id.configuration.data.GeneralStorkConfig;  import at.gv.egovernment.moa.id.configuration.helper.LanguageHelper; +import at.gv.egovernment.moa.id.configuration.helper.StringHelper;  import at.gv.egovernment.moa.id.configuration.validation.ValidationHelper;  import at.gv.egovernment.moa.id.configuration.validation.moaconfig.MOAConfigValidator;  import at.gv.egovernment.moa.id.configuration.validation.moaconfig.StorkConfigValidator; @@ -96,7 +94,8 @@ public class EditGeneralConfigAction extends ActionSupport  	private String formID;  	public String loadConfig() { -		HttpSession session = request.getSession(); + +        HttpSession session = request.getSession();  		if (session == null) {  			log.info("No http Session found.");  			return Constants.STRUTS_ERROR; @@ -113,8 +112,16 @@ public class EditGeneralConfigAction extends ActionSupport  			moaconfig.parse(dbconfig);  			storkconfig = new GeneralStorkConfig();  			storkconfig.parse(dbconfig); -			 -			ConfigurationDBUtils.closeSession(); + +            if (moaconfig == null) { +                log.error("MOA configuration is null"); +            } + +            if (storkconfig == null) { +                log.error("Stork configuration is null"); +            } + +            ConfigurationDBUtils.closeSession();  			formID = Random.nextRandom();  			session.setAttribute(Constants.SESSION_FORMID, formID); @@ -133,7 +140,7 @@ public class EditGeneralConfigAction extends ActionSupport  			log.info("No http Session found.");  			return Constants.STRUTS_ERROR;  		} -		 +  		Object authUserObj = session.getAttribute(Constants.SESSION_AUTH);  		authUser = (AuthenticatedUser) authUserObj; @@ -161,7 +168,7 @@ public class EditGeneralConfigAction extends ActionSupport  			errors.addAll(new StorkConfigValidator().validate(storkconfig));   			if (errors.size() > 0) { -				log.info("General MOA-ID configuration has some erros."); +				log.info("General MOA-ID configuration has some errors.");  				for (String el : errors)  					addActionError(el);	 @@ -198,7 +205,24 @@ public class EditGeneralConfigAction extends ActionSupport  	}  	private String saveFormToDatabase() { -		 + +        log.debug("Saving form to database"); +        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()); +        } + +        try { +            log.error(" ASSERTION " + moaconfig.getTimeoutAssertion()); +        } catch (Exception ex) { +            ex.printStackTrace(); +        } +  		MOAIDConfiguration oldconfig = ConfigurationDBRead.getMOAIDConfiguration();  		AuthComponentGeneral oldauth = null;  		if (oldconfig != null) { @@ -269,7 +293,8 @@ public class EditGeneralConfigAction extends ActionSupport  		dbauthgeneral.setTrustManagerRevocationChecking(moaconfig.isTrustmanagerrevocationcheck()); -		 + +  		Protocols dbprotocols = dbauth.getProtocols();  		if (dbprotocols == null) {  			dbprotocols = new Protocols(); @@ -330,9 +355,10 @@ public class EditGeneralConfigAction extends ActionSupport  			pvp2.setOrganization(pvp2org);  		}  		if (MiscUtil.isNotEmpty(moaconfig.getPvp2OrgDisplayName())) -			pvp2org.setDisplayName(moaconfig.getPvp2OrgDisplayName()); +			pvp2org.setDisplayName(StringHelper.getUTF8String( +					moaconfig.getPvp2OrgDisplayName()));  		if (MiscUtil.isNotEmpty(moaconfig.getPvp2OrgName())) -			pvp2org.setName(moaconfig.getPvp2OrgName()); +			pvp2org.setName(StringHelper.getUTF8String(moaconfig.getPvp2OrgName()));  		if (MiscUtil.isNotEmpty(moaconfig.getPvp2OrgURL()))  			pvp2org.setURL(moaconfig.getPvp2OrgURL()); @@ -349,10 +375,12 @@ public class EditGeneralConfigAction extends ActionSupport  		Contact cont = pvp2cont.get(0);		  		if (MiscUtil.isNotEmpty(moaconfig.getPvp2Contact().getCompany())) -			cont.setCompany(moaconfig.getPvp2Contact().getCompany()); +			cont.setCompany(StringHelper.getUTF8String( +					moaconfig.getPvp2Contact().getCompany()));  		if (MiscUtil.isNotEmpty(moaconfig.getPvp2Contact().getGivenname())) -			cont.setGivenName(moaconfig.getPvp2Contact().getGivenname()); +			cont.setGivenName(StringHelper.getUTF8String( +					moaconfig.getPvp2Contact().getGivenname()));  		//TODO: change to list if required  		if (MiscUtil.isNotEmpty(moaconfig.getPvp2Contact().getMail())) @@ -361,7 +389,8 @@ public class EditGeneralConfigAction extends ActionSupport  			cont.setPhone(Arrays.asList(moaconfig.getPvp2Contact().getPhone()));  		if (MiscUtil.isNotEmpty(moaconfig.getPvp2Contact().getSurname())) -			cont.setSurName(moaconfig.getPvp2Contact().getSurname()); +			cont.setSurName(StringHelper.getUTF8String( +					moaconfig.getPvp2Contact().getSurname()));  		if (MiscUtil.isNotEmpty(moaconfig.getPvp2Contact().getType()))  			cont.setType(moaconfig.getPvp2Contact().getType()); @@ -372,9 +401,11 @@ public class EditGeneralConfigAction extends ActionSupport  		}  		if (MiscUtil.isNotEmpty(moaconfig.getSsoFriendlyName())) -			dbsso.setFriendlyName(moaconfig.getSsoFriendlyName()); +			dbsso.setFriendlyName(StringHelper.getUTF8String( +					moaconfig.getSsoFriendlyName()));  		if (MiscUtil.isNotEmpty(moaconfig.getSsoSpecialText())) -			dbsso.setSpecialText(moaconfig.getSsoSpecialText()); +			dbsso.setSpecialText(StringHelper.getUTF8String( +					moaconfig.getSsoSpecialText()));  //		if (MiscUtil.isNotEmpty(moaconfig.getSsoPublicUrl()))  //			dbsso.setPublicURL(moaconfig.getSsoPublicUrl()); @@ -417,6 +448,7 @@ public class EditGeneralConfigAction extends ActionSupport  //		}  		DefaultBKUs dbbkus = dbconfig.getDefaultBKUs(); +  		if (dbbkus == null) {  			dbbkus = new DefaultBKUs();  			dbconfig.setDefaultBKUs(dbbkus); @@ -480,16 +512,39 @@ public class EditGeneralConfigAction extends ActionSupport  		//TODO: Set STORK Config!!!  		if (oldauth != null) { -			ForeignIdentities oldforeign = oldauth.getForeignIdentities(); +            ForeignIdentities oldforeign = oldauth.getForeignIdentities();  			if (oldforeign != null) {  				STORK oldstork = oldforeign.getSTORK(); -				if (oldstork != null) +				if (oldstork == null)  					oldstork = new STORK(); +                try { +                log.error("QAAAA " + storkconfig.getDefaultQaa());  				oldstork.setQualityAuthenticationAssuranceLevel(storkconfig.getDefaultQaa()); -				oldstork.setAttributes(storkconfig.getAttributes()); -				oldstork.setCPEPS(storkconfig.getCpepslist()); +				 +				if (storkconfig.getAttributes() != null) +					oldstork.setAttributes(storkconfig.getAttributes()); +				 +				else +					oldstork.setAttributes((List<StorkAttribute>) (new ArrayList<StorkAttribute>())); +				 +				if (storkconfig.getCpepslist() != null) +					oldstork.setCPEPS(storkconfig.getCpepslist()); +				 +				else +					oldstork.setCPEPS((List<CPEPS>) (new ArrayList<CPEPS>())); +				  				dbforeign.setSTORK(oldstork); +                } catch (Exception e) { +                    e.printStackTrace(); +                } + +                try{ +                   log.error("CPEPS LIST: " + storkconfig.getCpepslist().size() ); +                    log.error("CPEPS 1:" + storkconfig.getCpepslist().get(0).getCountryCode() +storkconfig.getCpepslist().get(0).getURL()); +                }   catch (Exception ex) { +                    ex.printStackTrace(); +                }  			}  		} @@ -631,6 +686,7 @@ public class EditGeneralConfigAction extends ActionSupport  	 */  	public void setMoaconfig(GeneralMOAIDConfig moaconfig) {  		this.moaconfig = moaconfig; +        log.error("MOA CONFIG SET");  	}  	/** @@ -649,6 +705,7 @@ public class EditGeneralConfigAction extends ActionSupport  	 */  	public void setStorkconfig(GeneralStorkConfig storkconfig) {  		this.storkconfig = storkconfig; +        log.error("STORK CONFIG SET");  	}  	/** @@ -664,8 +721,8 @@ public class EditGeneralConfigAction extends ActionSupport  	public void setFormID(String formID) {  		this.formID = formID;  	} -	 -	 + +  } 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..78747eca6 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 @@ -22,1335 +22,1331 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.configuration.struts.action; -import iaik.utils.URLDecoder; - -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.math.BigInteger; -import java.security.cert.CertificateException; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; - -import org.apache.log4j.Logger; -import org.apache.struts2.interceptor.ServletRequestAware; -import org.apache.struts2.interceptor.ServletResponseAware; -  import at.gv.egovernment.moa.id.auth.builder.LoginFormBuilder;  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.AuthComponentOA; -import at.gv.egovernment.moa.id.commons.db.dao.config.BKUSelectionCustomizationType; -import at.gv.egovernment.moa.id.commons.db.dao.config.BKUURLS; -import at.gv.egovernment.moa.id.commons.db.dao.config.DefaultBKUs; -import at.gv.egovernment.moa.id.commons.db.dao.config.IdentificationNumber; -import at.gv.egovernment.moa.id.commons.db.dao.config.MOAIDConfiguration; -import at.gv.egovernment.moa.id.commons.db.dao.config.MOAKeyBoxSelector; -import at.gv.egovernment.moa.id.commons.db.dao.config.Mandates; -import at.gv.egovernment.moa.id.commons.db.dao.config.OAOAUTH20; -import at.gv.egovernment.moa.id.commons.db.dao.config.OAPVP2; -import at.gv.egovernment.moa.id.commons.db.dao.config.OASAML1; -import at.gv.egovernment.moa.id.commons.db.dao.config.OASSO; -import at.gv.egovernment.moa.id.commons.db.dao.config.OASTORK; -import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication; -import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplicationType; -import at.gv.egovernment.moa.id.commons.db.dao.config.TemplateType; -import at.gv.egovernment.moa.id.commons.db.dao.config.TemplatesType; -import at.gv.egovernment.moa.id.commons.db.dao.config.TransformsInfoType; -import at.gv.egovernment.moa.id.commons.db.dao.config.UserDatabase; +import at.gv.egovernment.moa.id.commons.db.dao.config.*;  import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;  import at.gv.egovernment.moa.id.configuration.Constants;  import at.gv.egovernment.moa.id.configuration.auth.AuthenticatedUser;  import at.gv.egovernment.moa.id.configuration.config.ConfigurationProvider;  import at.gv.egovernment.moa.id.configuration.data.FormularCustomization; -import at.gv.egovernment.moa.id.configuration.data.oa.OAGeneralConfig; -import at.gv.egovernment.moa.id.configuration.data.oa.OAOAuth20Config; -import at.gv.egovernment.moa.id.configuration.data.oa.OAPVP2Config; -import at.gv.egovernment.moa.id.configuration.data.oa.OASAML1Config; -import at.gv.egovernment.moa.id.configuration.data.oa.OASSOConfig; -import at.gv.egovernment.moa.id.configuration.data.oa.OASTORKConfig; +import at.gv.egovernment.moa.id.configuration.data.oa.*;  import at.gv.egovernment.moa.id.configuration.exception.ConfigurationException;  import at.gv.egovernment.moa.id.configuration.helper.LanguageHelper;  import at.gv.egovernment.moa.id.configuration.helper.MailHelper; +import at.gv.egovernment.moa.id.configuration.helper.StringHelper;  import at.gv.egovernment.moa.id.configuration.validation.FormularCustomizationValitator;  import at.gv.egovernment.moa.id.configuration.validation.TargetValidator;  import at.gv.egovernment.moa.id.configuration.validation.ValidationHelper; -import at.gv.egovernment.moa.id.configuration.validation.oa.OAFileUploadValidation; -import at.gv.egovernment.moa.id.configuration.validation.oa.OAGeneralConfigValidation; -import at.gv.egovernment.moa.id.configuration.validation.oa.OAOAUTH20ConfigValidation; -import at.gv.egovernment.moa.id.configuration.validation.oa.OAPVP2ConfigValidation; -import at.gv.egovernment.moa.id.configuration.validation.oa.OASAML1ConfigValidation; -import at.gv.egovernment.moa.id.configuration.validation.oa.OASSOConfigValidation; -import at.gv.egovernment.moa.id.configuration.validation.oa.OASTORKConfigValidation; +import at.gv.egovernment.moa.id.configuration.validation.oa.*;  import at.gv.egovernment.moa.id.util.FormBuildUtils;  import at.gv.egovernment.moa.id.util.Random;  import at.gv.egovernment.moa.util.MiscUtil; -  import com.opensymphony.xwork2.ActionSupport; +import iaik.utils.URLDecoder; +import org.apache.log4j.Logger; +import org.apache.struts2.interceptor.ServletRequestAware; +import org.apache.struts2.interceptor.ServletResponseAware; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.io.*; +import java.math.BigInteger; +import java.security.cert.CertificateException; +import java.util.*;  public class EditOAAction extends ActionSupport implements ServletRequestAware, ServletResponseAware { -	 -	private final Logger log = Logger.getLogger(EditOAAction.class); -	 -	private static final long serialVersionUID = 1L; -	 -	private HttpServletRequest request; -	private HttpServletResponse response; -	 -	private AuthenticatedUser authUser; -	 -	private String oaidobj; -	private boolean newOA; -	private String formID; -	 -	private boolean onlyBusinessService = false; -	private boolean subTargetSet = false; -	private boolean deaktivededBusinessService = false; -	private boolean isMetaDataRefreshRequired = false; -	 -	private String nextPage; -	 -	private OAGeneralConfig generalOA = new OAGeneralConfig(); -	private OAPVP2Config pvp2OA = new OAPVP2Config(); -	private OASAML1Config saml1OA = new OASAML1Config(); -	private OASSOConfig ssoOA = new OASSOConfig(); -	private OAOAuth20Config oauth20OA = new OAOAuth20Config(); -	private OASTORKConfig storkOA = new OASTORKConfig(); -	private FormularCustomization formOA = new FormularCustomization(); -		 -	private InputStream stream; -	 -	private Map<String, byte[]> sendAssertionForm = new HashMap<String, byte[]>(); -	private Map<String, byte[]> bkuSelectionForm = new HashMap<String, byte[]>(); -	 -	// STRUTS actions -	public String inital() { -		HttpSession session = request.getSession(); -		if (session == null) { -			log.info("No http Session found."); -			return Constants.STRUTS_ERROR; -		} -		 -		Object authUserObj = session.getAttribute(Constants.SESSION_AUTH); -		 -		authUser = (AuthenticatedUser) authUserObj; -		 -		long oaid = -1; -		 -		if (!ValidationHelper.validateOAID(oaidobj)) { -			addActionError(LanguageHelper.getErrorString("errors.edit.oa.oaid", request)); -			return Constants.STRUTS_ERROR; -		} -		oaid = Long.valueOf(oaidobj); -		 -		UserDatabase userdb = null; -		OnlineApplication onlineapplication = null; -		 -		if (authUser.isAdmin()) -			onlineapplication = ConfigurationDBRead.getOnlineApplication(oaid); -		 -		else { -			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")); -				return Constants.STRUTS_SUCCESS; -			} -			 -			// TODO: change to direct Database operation -			List<OnlineApplication> oas = userdb.getOnlineApplication(); -			for (OnlineApplication oa : oas) { -				if (oa.getHjid() == oaid) { -					onlineapplication = oa; -					break; -				} -			} -			if (onlineapplication == null) { -				addActionError(LanguageHelper.getErrorString("errors.edit.oa.oaid", request)); -				return Constants.STRUTS_ERROR; -			} -		} -		 -		generalOA.parse(onlineapplication); -		ssoOA.parse(onlineapplication); -		saml1OA.parse(onlineapplication); -		oauth20OA.parse(onlineapplication); -		session.setAttribute(Constants.SESSION_OAUTH20SECRET, this.oauth20OA.getClientSecret()); - -		storkOA.parse(onlineapplication); -		 -		Map<String, String> map = new HashMap<String, String>(); -		map.putAll(FormBuildUtils.getDefaultMap()); -		formOA.parse(onlineapplication, map); -		 -		session.setAttribute(Constants.SESSION_BKUFORMPREVIEW, map); -		 -		List<String> errors = pvp2OA.parse(onlineapplication); -		 -		if (errors.size() > 0) { -			for (String el : errors) -				addActionError(el); -		} -		 -		subTargetSet = MiscUtil.isNotEmpty(generalOA.getTarget_subsector()); -		 -		// set UserSpezific OA Parameters -		if (!authUser.isAdmin()) generateUserSpecificConfigurationOptions(userdb); -		 -		ConfigurationDBUtils.closeSession(); -		session.setAttribute(Constants.SESSION_OAID, oaid); -		 -		formID = Random.nextRandom(); -		session.setAttribute(Constants.SESSION_FORMID, formID); -		 -		newOA = false; -		 -		return Constants.STRUTS_OA_EDIT; -	} -	 -	public String newOA() { -		log.debug("insert new Online-Application"); -		 -		HttpSession session = request.getSession(); -		if (session == null) { -			log.info("No http Session found."); -			return Constants.STRUTS_ERROR; -		} -		 -		session.setAttribute(Constants.SESSION_OAID, null); -		nextPage = Constants.STRUTS_RETURNAREA_VALUES.main.name(); -		 -		Object authUserObj = session.getAttribute(Constants.SESSION_AUTH); -		 -		authUser = (AuthenticatedUser) authUserObj; -		 -		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")); -			return Constants.STRUTS_SUCCESS; -		} -		 -		MOAIDConfiguration moaidconfig = ConfigurationDBRead.getMOAIDConfiguration(); -		if (moaidconfig != null) { -			DefaultBKUs defaultbkus = moaidconfig.getDefaultBKUs(); -			if (defaultbkus != null) { -				generalOA.setBkuHandyURL(defaultbkus.getHandyBKU()); -				generalOA.setBkuLocalURL(defaultbkus.getLocalBKU()); -				generalOA.setBkuOnlineURL(defaultbkus.getOnlineBKU()); -			} -		} -		 -		// set UserSpezific OA Parameters -		if (!authUser.isAdmin()) generateUserSpecificConfigurationOptions(userdb); -		 -		ConfigurationDBUtils.closeSession(); -		 -		newOA = true; -		formID = Random.nextRandom(); -		session.setAttribute(Constants.SESSION_FORMID, formID); -		 -		session.setAttribute(Constants.SESSION_BKUFORMPREVIEW, null); -		 -		this.oauth20OA.generateClientSecret(); -		session.setAttribute(Constants.SESSION_OAUTH20SECRET, this.oauth20OA.getClientSecret()); -		 -		return Constants.STRUTS_OA_EDIT; -	} -	 -	public String saveOA() { -		HttpSession session = request.getSession(); -		if (session == null) { -			log.info("No http Session found."); -			return Constants.STRUTS_ERROR; -		} -		 -		Object authUserObj = session.getAttribute(Constants.SESSION_AUTH); -		authUser = (AuthenticatedUser) authUserObj; -		 -		Object formidobj = session.getAttribute(Constants.SESSION_FORMID); -		if (formidobj != null && formidobj instanceof String) { -			String formid = (String) formidobj; -			if (!formid.equals(formID)) { -				log.warn("FormIDs does not match. Some suspect Form is received from user " + authUser.getFamilyName() -						+ authUser.getGivenName() + authUser.getUserID()); -				return Constants.STRUTS_ERROR; -			} -		} else { -			log.warn("FormIDs does not match. Some suspect Form is received from user " + authUser.getFamilyName() -					+ authUser.getGivenName() + authUser.getUserID()); -			return Constants.STRUTS_ERROR; -		} -		session.setAttribute(Constants.SESSION_FORMID, null); -		 -		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")); -			return Constants.STRUTS_SUCCESS; -		} -		 -		OnlineApplication onlineapplication = null; -		List<String> errors = new ArrayList<String>(); -		 -		Object oadbid = request.getSession().getAttribute(Constants.SESSION_OAID); -		Long oaid = (long) -1; -		 -		if (oadbid != null) { -			try { -				oaid = (Long) oadbid; -				if (oaid < 0 || oaid > Long.MAX_VALUE) { -					addActionError(LanguageHelper.getErrorString("errors.edit.oa.oaid", request)); -					return Constants.STRUTS_ERROR; -				} -				 -			} -			catch (Throwable t) { -				addActionError(LanguageHelper.getErrorString("errors.edit.oa.oaid", request)); -				return Constants.STRUTS_ERROR; -			} -		} -		 -		// valid DBID and check entry -		String oaidentifier = generalOA.getIdentifier(); -		if (MiscUtil.isEmpty(oaidentifier)) { -			log.info("Empty OA identifier"); -			errors.add(LanguageHelper.getErrorString("validation.general.oaidentifier.empty")); -			 -		} else { -			 -			if (!ValidationHelper.validateURL(oaidentifier)) { -				log.warn("OnlineapplikationIdentifier is not a valid URL: " + oaidentifier); -				errors.add(LanguageHelper.getErrorString("validation.general.oaidentifier.valid", -						new Object[] { ValidationHelper.getNotValidOAIdentifierCharacters() })); -			} else { -				 -				if (oaid == -1) { -					onlineapplication = ConfigurationDBRead.getOnlineApplication(oaidentifier); -					newOA = true; -					if (onlineapplication != null) { -						log.info("The OAIdentifier is not unique"); -						errors.add(LanguageHelper.getErrorString("validation.general.oaidentifier.notunique")); -					} -					 -				} else { -					onlineapplication = ConfigurationDBRead.getOnlineApplication(oaid); -					if (!oaidentifier.equals(onlineapplication.getPublicURLPrefix())) { -						 -						if (ConfigurationDBRead.getOnlineApplication(oaidentifier) != null) { -							log.info("The OAIdentifier is not unique"); -							errors.add(LanguageHelper.getErrorString("validation.general.oaidentifier.notunique")); -						} -					} -				} -			} -		} -		 -		// set UserSpezific OA Parameters -		if (!authUser.isAdmin()) generateUserSpecificConfigurationOptions(userdb); -		 -		// check form -		OAGeneralConfigValidation validatior_general = new OAGeneralConfigValidation(); -		OAPVP2ConfigValidation validatior_pvp2 = new OAPVP2ConfigValidation(); -		OASAML1ConfigValidation validatior_saml1 = new OASAML1ConfigValidation(); -		OASSOConfigValidation validatior_sso = new OASSOConfigValidation(); -		OASTORKConfigValidation validator_stork = new OASTORKConfigValidation(); -		FormularCustomizationValitator validator_form = new FormularCustomizationValitator(); -		OAOAUTH20ConfigValidation validatior_oauth20 = new OAOAUTH20ConfigValidation(); -		OAFileUploadValidation valiator_fileUpload = new OAFileUploadValidation(); -		 -		errors.addAll(validatior_general.validate(generalOA, authUser.isAdmin())); -		errors.addAll(validatior_pvp2.validate(pvp2OA)); -		errors.addAll(validatior_saml1.validate(saml1OA, generalOA)); -		errors.addAll(validatior_sso.validate(ssoOA, authUser.isAdmin())); -		errors.addAll(validator_stork.validate(storkOA)); -		errors.addAll(validator_form.validate(formOA)); -		errors.addAll(validatior_oauth20.validate(oauth20OA)); -		 -		//validate BKU-selection template		 -		List<String> templateError = valiator_fileUpload.validate(generalOA.getBkuSelectionFileUploadFileName() -				, generalOA.getBkuSelectionFileUpload(), "validation.general.bkuselection", bkuSelectionForm); -		if (templateError != null && templateError.size() == 0) { -			if (bkuSelectionForm != null && bkuSelectionForm.size() > 0) -				session.setAttribute(Constants.SESSION_BKUSELECTIONTEMPLATE, bkuSelectionForm); -			 -			else -				bkuSelectionForm = (Map<String, byte[]>) session.getAttribute(Constants.SESSION_BKUSELECTIONTEMPLATE); - -		} else { -			errors.addAll(templateError); -			 -		} -		 -		//validate send-assertion template -		templateError = valiator_fileUpload.validate(generalOA.getSendAssertionFileUploadFileName() -				, generalOA.getSendAssertionFileUpload(), "validation.general.sendassertion", sendAssertionForm); -		if (templateError != null && templateError.size() == 0) {			 -			if (sendAssertionForm != null && sendAssertionForm.size() > 0) -				session.setAttribute(Constants.SESSION_SENDASSERTIONTEMPLATE, sendAssertionForm); -			 -			else -				sendAssertionForm = (Map<String, byte[]>) session.getAttribute(Constants.SESSION_SENDASSERTIONTEMPLATE); - -		} else { -			errors.addAll(templateError); -			 -		} -		 -		 -		// Do not allow SSO in combination with special BKUSelection features -		if (ssoOA.isUseSSO() && (formOA.isOnlyMandateAllowed() || !formOA.isShowMandateLoginButton())) { -			log.warn("Special BKUSelection features can not be used in combination with SSO"); -			errors.add(LanguageHelper.getErrorString("validation.general.bkuselection.specialfeatures.valid")); -		} -		 -		if (errors.size() > 0) { -			log.info("OAConfiguration with ID " + generalOA.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 { -			 -			boolean newentry = false; -			 -			if (onlineapplication == null) { -				onlineapplication = new OnlineApplication(); -				newentry = true; -				onlineapplication.setIsActive(false); -				 -				if (!authUser.isAdmin()) { -					onlineapplication.setIsAdminRequired(true); -					 -				} else -					isMetaDataRefreshRequired = true; -				 -			} else { -				if (!authUser.isAdmin() && !onlineapplication.getPublicURLPrefix().equals(generalOA.getIdentifier())) { -					 -					onlineapplication.setIsAdminRequired(true); -					onlineapplication.setIsActive(false); -					log.info("User with ID " + authUser.getUserID() + " change OA-PublicURLPrefix. Reaktivation is required."); -				} -				 -			} -			 -			if ((onlineapplication.isIsAdminRequired() == null) -					|| (authUser.isAdmin() && generalOA.isActive() && onlineapplication.isIsAdminRequired())) { -				 -				onlineapplication.setIsAdminRequired(false); -				isMetaDataRefreshRequired = true; -				 -				if (onlineapplication.getHjid() != null) userdb = ConfigurationDBRead.getUsersWithOADBID(onlineapplication.getHjid()); -				 -				if (userdb != null && !userdb.isIsAdmin()) { -					try { -						MailHelper.sendUserOnlineApplicationActivationMail(userdb.getGivenname(), userdb.getFamilyname(), -								userdb.getInstitut(), onlineapplication.getPublicURLPrefix(), userdb.getMail()); -					} -					catch (ConfigurationException e) { -						log.warn("Sending Mail to User " + userdb.getMail() + " failed", e); -					} -				} -			} - -			//save OA configuration -			String error = saveOAConfigToDatabase(onlineapplication, newentry); -			if (MiscUtil.isNotEmpty(error)) { -				log.warn("OA configuration can not be stored!"); -				addActionError(error); -				 -				formID = Random.nextRandom(); -				session.setAttribute(Constants.SESSION_FORMID, formID); -				return Constants.STRUTS_ERROR_VALIDATION; -			} -			 -			//set metadata reload flag if reload is required  -			if (pvp2OA.getMetaDataURL() != null) { -				 -				try { -					if (isMetaDataRefreshRequired -							|| !pvp2OA.getMetaDataURL().equals(onlineapplication.getAuthComponentOA().getOAPVP2().getMetadataURL()) -							|| pvp2OA.getFileUpload() != null -							|| pvp2OA.isReLoad()) { -						 -						log.debug("Set PVP2 Metadata refresh flag."); -						MOAIDConfiguration moaconfig = ConfigurationDBRead.getMOAIDConfiguration(); -						moaconfig.setPvp2RefreshItem(new Date()); -						ConfigurationDBUtils.saveOrUpdate(moaconfig); -						 -					} -				} -				catch (Throwable e) { -					log.info("Found no MetadataURL in OA-Databaseconfig!", e); -				} -				 -			} -		} -		 -		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", generalOA.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", generalOA.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() { -		 -		HttpSession session = request.getSession(); -		if (session == null) { -			log.info("No http Session found."); -			return Constants.STRUTS_ERROR; -		} -		 -		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", generalOA.getIdentifier(), request)); -		 -		ConfigurationDBUtils.closeSession(); -		 -		return Constants.STRUTS_SUCCESS; -	} -	 -	public String deleteOA() { -		HttpSession session = request.getSession(); -		if (session == null) { -			log.info("No http Session found."); -			return Constants.STRUTS_ERROR; -		} -		 -		Object authUserObj = session.getAttribute(Constants.SESSION_AUTH); -		authUser = (AuthenticatedUser) authUserObj; -		 -		Object formidobj = session.getAttribute(Constants.SESSION_FORMID); -		if (formidobj != null && formidobj instanceof String) { -			String formid = (String) formidobj; -			if (!formid.equals(formID)) { -				log.warn("FormIDs does not match. Some suspect Form is received from user " + authUser.getFamilyName() -						+ authUser.getGivenName() + authUser.getUserID()); -				return Constants.STRUTS_ERROR; -			} -		} else { -			log.warn("FormIDs does not match. Some suspect Form is received from user " + authUser.getFamilyName() -					+ authUser.getGivenName() + authUser.getUserID()); -			return Constants.STRUTS_ERROR; -		} -		session.setAttribute(Constants.SESSION_FORMID, null); -		 -		Object nextPageAttr = session.getAttribute(Constants.SESSION_RETURNAREA); -		if (nextPageAttr != null && nextPageAttr instanceof String) { -			nextPage = (String) nextPageAttr; -			 -		} else { -			nextPage = Constants.STRUTS_RETURNAREA_VALUES.main.name(); -		} -		 -		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")); -			return Constants.STRUTS_SUCCESS; -		} -		 -		String oaidentifier = generalOA.getIdentifier(); -		if (MiscUtil.isEmpty(oaidentifier)) { -			log.info("Empty OA identifier"); -			addActionError(LanguageHelper.getErrorString("validation.general.oaidentifier.empty")); -			 -			formID = Random.nextRandom(); -			session.setAttribute(Constants.SESSION_FORMID, formID); -			return Constants.STRUTS_ERROR_VALIDATION; -			 -		} else { -			if (ValidationHelper.isValidOAIdentifier(oaidentifier)) { -				log.warn("IdentificationNumber contains potentail XSS characters: " + oaidentifier); -				addActionError(LanguageHelper.getErrorString("validation.general.oaidentifier.valid", -						new Object[] { ValidationHelper.getNotValidOAIdentifierCharacters() })); -				 -				formID = Random.nextRandom(); -				session.setAttribute(Constants.SESSION_FORMID, formID); -				return Constants.STRUTS_ERROR_VALIDATION; -			} -		} -		 -		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; -				} -			} -			 -			ConfigurationDBUtils.closeSession(); -			 -			addActionMessage(LanguageHelper.getGUIString("webpages.oaconfig.delete.message", generalOA.getIdentifier(), request)); -			 -			return Constants.STRUTS_SUCCESS; -			 -		} else { -			ConfigurationDBUtils.closeSession(); -			addActionError(LanguageHelper.getGUIString("webpages.oaconfig.delete.error", generalOA.getIdentifier(), request)); -			return Constants.STRUTS_SUCCESS; -		} -		 -	} -	 -	public String bkuFramePreview() { -		 -		String preview = null; -		 -		HttpSession session = request.getSession(); -		if (session == null) { -			log.info("No http Session found."); -			preview = LanguageHelper.getErrorString("error.bkuformpreview.notpossible"); -			 -		} else { -			InputStream input = null; -			 -			try { -				Object mapobj = session.getAttribute(Constants.SESSION_BKUFORMPREVIEW); -				if (mapobj != null && mapobj instanceof Map<?, ?>) { -					 -					ConfigurationProvider config = ConfigurationProvider.getInstance(); -					String templateURL = config.getConfigRootDir() + ConfigurationProvider.HTMLTEMPLATE_DIR -							+ ConfigurationProvider.HTMLTEMPLATE_FILE; -					 -					File file = new File(templateURL); -					input = new FileInputStream(file); -					 -					String contextpath = config.getMOAIDInstanceURL(); -					if (MiscUtil.isEmpty(contextpath)) { -						log.info("NO MOA-ID instance URL configurated."); -						throw new ConfigurationException("No MOA-ID instance configurated"); -					} -					 -					preview = LoginFormBuilder.getTemplate(input); -					preview = preview.replace(LoginFormBuilder.CONTEXTPATH, contextpath); -					 -					Map<String, String> map = (Map<String, String>) mapobj; -					 -					request.setCharacterEncoding("UTF-8"); -					 -					String module = request.getParameter(Constants.REQUEST_FORMCUSTOM_MODULE); -					String value = request.getParameter(Constants.REQUEST_FORMCUSTOM_VALUE); -					 -					if (value != null) { -						String[] query = URLDecoder.decode(request.getQueryString()).split("&"); -						value = query[1].substring("value=".length()); -					} -					 -					synchronized (map) { -						 -						if (MiscUtil.isNotEmpty(module)) { -							if (map.containsKey("#" + module + "#")) { -								if (MiscUtil.isNotEmpty(value)) { -									if (FormBuildUtils.FONTFAMILY.contains(module) || FormBuildUtils.HEADER_TEXT.contains(module) -											|| value.startsWith("#")) -										map.put("#" + module + "#", value); -									else -										map.put("#" + module + "#", "#" + value); -									 -								} else { -									map.put("#" + module + "#", FormBuildUtils.getDefaultMap().get("#" + module + "#")); -								} -							} -						} -						preview = FormBuildUtils.customiceLayoutBKUSelection(preview, true, false, map, true); -					} -					 -				} else { -					preview = LanguageHelper.getErrorString("error.bkuformpreview.notpossible"); -					 -				} -				 -			} -			catch (Exception e) { -				log.warn("BKUSelection Preview can not be generated.", e); -				preview = LanguageHelper.getErrorString("error.bkuformpreview.notpossible"); -				 -			} -		} -		 -		stream = new ByteArrayInputStream(preview.getBytes()); -		 -		return Constants.STRUTS_SUCCESS; -	} -	 -	private String saveOAConfigToDatabase(OnlineApplication dboa, boolean newentry) { -		 -		AuthComponentOA authoa = dboa.getAuthComponentOA(); -		if (authoa == null) { -			authoa = new AuthComponentOA(); -			dboa.setAuthComponentOA(authoa); -		} -		 -		if (authUser.isAdmin()) dboa.setIsActive(generalOA.isActive()); -		 -		dboa.setFriendlyName(generalOA.getFriendlyName()); -		dboa.setCalculateHPI(generalOA.isCalculateHPI()); -		dboa.setRemoveBPKFromAuthBlock(generalOA.isHideBPKAuthBlock()); -		 -		if (authUser.isAdmin()) -			dboa.setKeyBoxIdentifier(MOAKeyBoxSelector.fromValue(generalOA.getKeyBoxIdentifier())); -		else { -			if (newentry) dboa.setKeyBoxIdentifier(MOAKeyBoxSelector.SECURE_SIGNATURE_KEYPAIR); -		} -		 -		dboa.setPublicURLPrefix(generalOA.getIdentifier()); -		 -		if (generalOA.isBusinessService() || onlyBusinessService) { -			 -			dboa.setType(Constants.MOA_CONFIG_BUSINESSSERVICE); -			 -			String num = generalOA.getIdentificationNumber().replaceAll(" ", ""); -			if (num.startsWith(Constants.IDENIFICATIONTYPE_FN)) { -				num = num.substring(Constants.IDENIFICATIONTYPE_FN.length()); -				 -				num = at.gv.egovernment.moa.util.StringUtils.deleteLeadingZeros(num); -				 -				// num = StringUtils.leftPad(num, 7, '0'); -			} -			 -			if (num.startsWith(Constants.IDENIFICATIONTYPE_ZVR)) num = num.substring(Constants.IDENIFICATIONTYPE_ZVR.length()); -			 -			if (num.startsWith(Constants.IDENIFICATIONTYPE_ERSB)) num = num.substring(Constants.IDENIFICATIONTYPE_ERSB.length()); -			 -			IdentificationNumber idnumber = new IdentificationNumber(); -			idnumber.setValue(Constants.PREFIX_WPBK + generalOA.getIdentificationType() + "+" + num); -			idnumber.setType(Constants.BUSINESSSERVICENAMES.get(generalOA.getIdentificationType())); -			 -			authoa.setIdentificationNumber(idnumber); -			 -		} else { -			dboa.setType(null); -			 -			if (authUser.isAdmin()) { -				if (MiscUtil.isNotEmpty(generalOA.getTarget_admin()) && generalOA.isAdminTarget()) { -					dboa.setTarget(generalOA.getTarget_admin()); -					dboa.setTargetFriendlyName(generalOA.getTargetFriendlyName()); -					 -				} else { -					 -					String target = generalOA.getTarget(); -					 -					if (MiscUtil.isNotEmpty(generalOA.getTarget_subsector()) && subTargetSet) -						dboa.setTarget(target + "-" + generalOA.getTarget_subsector()); -					else -						dboa.setTarget(target); -					 -					String targetname = TargetValidator.getTargetFriendlyName(target); -					if (MiscUtil.isNotEmpty(targetname)) dboa.setTargetFriendlyName(targetname); -					 -				} -				 -			} else { -				 -				if (MiscUtil.isNotEmpty(generalOA.getTarget())) { -					 -					String target = generalOA.getTarget(); -					 -					if (MiscUtil.isNotEmpty(generalOA.getTarget_subsector()) && subTargetSet) -						dboa.setTarget(target + "-" + generalOA.getTarget_subsector()); -					 -					else -						dboa.setTarget(target); -					 -					String targetname = TargetValidator.getTargetFriendlyName(target); -					if (MiscUtil.isNotEmpty(targetname)) dboa.setTargetFriendlyName(targetname); -					 -				} -			} -		} -		 -		//store BKU-URLs -		BKUURLS bkuruls = new BKUURLS(); -		authoa.setBKUURLS(bkuruls); -		if (authUser.isAdmin()) { -			bkuruls.setHandyBKU(generalOA.getBkuHandyURL()); -			bkuruls.setLocalBKU(generalOA.getBkuLocalURL()); -			bkuruls.setOnlineBKU(generalOA.getBkuOnlineURL()); -		} -		 -		TemplatesType templates = authoa.getTemplates(); -		if (templates == null) { -			templates = new TemplatesType(); -			authoa.setTemplates(templates); -		} -		 -		//store BKU-selection and send-assertion templates -		if (authUser.isAdmin()) { -			 -			if(generalOA.isDeleteBKUTemplate()) -				templates.setBKUSelectionTemplate(null); -			 -			if (generalOA.isDeleteSendAssertionTemplate()) -				templates.setSendAssertionTemplate(null); -			 -			 -			if (bkuSelectionForm != null && bkuSelectionForm.size() > 0) { -				TransformsInfoType template = new TransformsInfoType(); -				 -				Iterator<String> interator = bkuSelectionForm.keySet().iterator(); -				template.setFilename(interator.next()); -				template.setTransformation(bkuSelectionForm.get( -						template.getFilename())); -				 -				templates.setBKUSelectionTemplate(template);					 -			} -			 -			if (sendAssertionForm != null && sendAssertionForm.size() > 0) { -				TransformsInfoType template = new TransformsInfoType(); -				 -				Iterator<String> interator = sendAssertionForm.keySet().iterator(); -				template.setFilename(interator.next()); -				template.setTransformation(sendAssertionForm.get( -						template.getFilename())); -				 -				templates.setSendAssertionTemplate(template);					 -			}	 -		} -		 -		 -		//store BKU-selection customization -		BKUSelectionCustomizationType bkuselectioncustom = templates.getBKUSelectionCustomization(); -		if (bkuselectioncustom == null) { -			bkuselectioncustom = new BKUSelectionCustomizationType(); -			templates.setBKUSelectionCustomization(bkuselectioncustom); -		} -		 -		Mandates mandates = new Mandates(); -		if (generalOA.isUseMandates()) { -			mandates.setProfiles(generalOA.getMandateProfiles()); -			 -		} else { -			mandates.setProfiles(new String()); -		} -		 -		authoa.setMandates(mandates); -		bkuselectioncustom.setMandateLoginButton(MiscUtil.isNotEmpty(generalOA.getMandateProfiles())); -		bkuselectioncustom.setOnlyMandateLoginAllowed(formOA.isOnlyMandateAllowed()); -		 -		if (authUser.isAdmin()) { -			templates.setAditionalAuthBlockText(generalOA.getAditionalAuthBlockText()); -			 -			List<TemplateType> template = templates.getTemplate(); -			if (generalOA.isLegacy()) { -				 -				if (template == null) -					template = new ArrayList<TemplateType>(); -				else -					template.clear(); -				 -				if (MiscUtil.isNotEmpty(generalOA.getSLTemplateURL1())) { -					TemplateType el = new TemplateType(); -					el.setURL(generalOA.getSLTemplateURL1()); -					template.add(el); -				} else -					template.add(new TemplateType());				 -				if (MiscUtil.isNotEmpty(generalOA.getSLTemplateURL2())) { -					TemplateType el = new TemplateType(); -					el.setURL(generalOA.getSLTemplateURL2()); -					template.add(el); -				}else -					template.add(new TemplateType()); -				if (MiscUtil.isNotEmpty(generalOA.getSLTemplateURL3())) { -					TemplateType el = new TemplateType(); -					el.setURL(generalOA.getSLTemplateURL3()); -					template.add(el); -				}else -					template.add(new TemplateType()); -				 -			} else { -				if (template != null && template.size() > 0) template.clear(); -			} -			 -			bkuselectioncustom.setBackGroundColor(parseColor(formOA.getBackGroundColor())); -			bkuselectioncustom.setFrontColor(parseColor(formOA.getFrontColor())); -			 -			bkuselectioncustom.setHeaderBackGroundColor(parseColor(formOA.getHeader_BackGroundColor())); -			bkuselectioncustom.setHeaderFrontColor(parseColor(formOA.getHeader_FrontColor())); -			bkuselectioncustom.setHeaderText(formOA.getHeader_text()); -			 -			bkuselectioncustom.setButtonBackGroundColor(parseColor(formOA.getButton_BackGroundColor())); -			bkuselectioncustom.setButtonBackGroundColorFocus(parseColor(formOA.getButton_BackGroundColorFocus())); -			bkuselectioncustom.setButtonFontColor(parseColor(formOA.getButton_FrontColor())); -			 -			if (MiscUtil.isNotEmpty(formOA.getAppletRedirectTarget())) -				bkuselectioncustom.setAppletRedirectTarget(formOA.getAppletRedirectTarget()); -			 -			bkuselectioncustom.setFontType(formOA.getFontType()); -			 -			bkuselectioncustom.setAppletHeight(formOA.getApplet_height()); -			bkuselectioncustom.setAppletWidth(formOA.getApplet_width()); -			 -		} -		 -		// set default transformation if it is empty -		List<TransformsInfoType> transformsInfo = authoa.getTransformsInfo(); -		if (transformsInfo == null) { -			// TODO: set OA specific transformation if it is required -			 -		} -		 -		OAPVP2 pvp2 = authoa.getOAPVP2(); -		if (pvp2 == null) { -			pvp2 = new OAPVP2(); -			authoa.setOAPVP2(pvp2); -		} -		 -		pvp2.setMetadataURL(pvp2OA.getMetaDataURL()); -		try { -			 -			if (pvp2OA.getFileUpload() != null) pvp2.setCertificate(pvp2OA.getCertificate()); -			 -		} -		catch (CertificateException e) { -			log.info("Uploaded Certificate can not be found", e); -			return LanguageHelper.getErrorString("validation.pvp2.certificate.notfound"); -		} -		catch (IOException e) { -			log.info("Uploaded Certificate can not be parsed", e); -			return LanguageHelper.getErrorString("validation.pvp2.certificate.format"); -		} -		 -		OASAML1 saml1 = authoa.getOASAML1(); -		if (saml1 == null) { -			saml1 = new OASAML1(); -			authoa.setOASAML1(saml1); -			saml1.setIsActive(false); -		} -		 -		if (authUser.isAdmin()) { -			saml1.setIsActive(saml1OA.isActive()); -		} -		 -		if (saml1.isIsActive() != null && saml1.isIsActive()) { -			saml1.setProvideAUTHBlock(saml1OA.isProvideAuthBlock()); -			saml1.setProvideCertificate(saml1OA.isProvideCertificate()); -			saml1.setProvideFullMandatorData(saml1OA.isProvideFullMandateData()); -			saml1.setProvideIdentityLink(saml1OA.isProvideIdentityLink()); -			saml1.setProvideStammzahl(saml1OA.isProvideStammZahl()); -			saml1.setUseCondition(saml1OA.isUseCondition()); -			saml1.setConditionLength(BigInteger.valueOf(saml1OA.getConditionLength())); -			// TODO: set sourceID -			// saml1.setSourceID(""); -		} -		 -		OASSO sso = authoa.getOASSO(); -		if (sso == null) { -			sso = new OASSO(); -			authoa.setOASSO(sso); -			sso.setAuthDataFrame(true); -		} -		sso.setUseSSO(ssoOA.isUseSSO()); -		 -		if (authUser.isAdmin()) sso.setAuthDataFrame(ssoOA.isShowAuthDataFrame()); -		 -		sso.setSingleLogOutURL(ssoOA.getSingleLogOutURL()); -		 -		if (oauth20OA != null) { -			log.debug("Saving OAuth 2.0 configuration:"); -			OAOAUTH20 oaOAuth20 = authoa.getOAOAUTH20(); -			if (oaOAuth20 == null) { -				oaOAuth20 = new OAOAUTH20(); -				authoa.setOAOAUTH20(oaOAuth20); -			} -			 -			oaOAuth20.setOAuthClientId(generalOA.getIdentifier()); -			// oaOAuth20.setOAuthClientSecret(oauth20OA.getClientSecret()); -			oaOAuth20.setOAuthRedirectUri(oauth20OA.getRedirectUri()); -			log.debug("client id: " + oauth20OA.getClientId()); -			log.debug("client secret: " + oauth20OA.getClientSecret()); -			log.debug("redirect uri:" + oauth20OA.getRedirectUri()); -			 -			oaOAuth20.setOAuthClientSecret((String) request.getSession().getAttribute(Constants.SESSION_OAUTH20SECRET)); -			request.getSession().setAttribute(Constants.SESSION_OAUTH20SECRET, null); -			 -		} -		 -		 -		// fetch stork configuration from database model -		OASTORK stork = authoa.getOASTORK(); -		if (stork == null) { -			// if there is none, create a new one with default values. -			stork = new OASTORK(); -			authoa.setOASTORK(stork); -			stork.setStorkLogonEnabled(false); -		} -		// transfer the incoming data to the database model -		stork.setStorkLogonEnabled(storkOA.isStorkLogonEnabled()); -		stork.setQaa(storkOA.getQaa()); -		stork.setOAAttributes(storkOA.getAttributes()); - -		try { -			if (newentry) { -				ConfigurationDBUtils.save(dboa); -				 -				if (!authUser.isAdmin()) { -					UserDatabase user = ConfigurationDBRead.getUserWithID(authUser.getUserID()); -					 -					List<OnlineApplication> useroas = user.getOnlineApplication(); -					if (useroas == null) useroas = new ArrayList<OnlineApplication>(); -					 -					useroas.add(dboa); -					ConfigurationDBUtils.saveOrUpdate(user); -				} -			} -			 -			else -				ConfigurationDBUtils.saveOrUpdate(dboa); -			 -		} -		catch (MOADatabaseException e) { -			log.warn("Online-Application can not be stored.", e); -			return LanguageHelper.getErrorString("error.db.oa.store"); -		} -		 -		return null; -	} -	 -	private String parseColor(String color) { -		String value = ""; -		 -		if (MiscUtil.isNotEmpty(color)) { -			if (!color.startsWith("#")) -				value = "#" + color; -			else -				value = color; -		} -		return value; -	} -	 -	private void generateUserSpecificConfigurationOptions(UserDatabase userdb) { -		 -		if (userdb.isIsMandateUser() != null && userdb.isIsMandateUser()) { -			String bpk = userdb.getBpk(); -			if (bpk.startsWith(Constants.IDENIFICATIONTYPE_BASEID_FN) || bpk.startsWith(Constants.IDENIFICATIONTYPE_BASEID_ZVR)) { -				 -				onlyBusinessService = true; -				generalOA.setBusinessService(true); -				 -			} -			 -			deaktivededBusinessService = true; -			String[] split = bpk.split("\\+"); -			generalOA.setIdentificationType(split[1].substring(1)); -			 -			if (bpk.startsWith(Constants.IDENIFICATIONTYPE_BASEID_FN)) -				generalOA.setIdentificationNumber(at.gv.egovernment.moa.util.StringUtils.deleteLeadingZeros(split[2])); -			else -				generalOA.setIdentificationNumber(split[2]); -			 -		} -		 -	} -	 -	public String setGeneralOAConfig() { -		 -		return Constants.STRUTS_SUCCESS; -	} -	 -	public String setSAML1OAConfig() { -		 -		return Constants.STRUTS_SUCCESS; -	} -	 -	public String setPVP2OAConfig() { -		 -		return Constants.STRUTS_SUCCESS; -	} -	 -	public String setSSOOAConfig() { -		 -		return Constants.STRUTS_SUCCESS; -	} -	 -	public String setSTORKOAConfig() { -		 -		return Constants.STRUTS_SUCCESS; -	} -	 -	// Getter and Setter -	public void setServletResponse(HttpServletResponse arg0) { -		this.response = arg0; -		 -	} -	 -	public void setServletRequest(HttpServletRequest arg0) { -		this.request = arg0; -		 -	} -	 -	public HttpServletRequest getRequest() { -		return request; -	} -	 -	public void setRequest(HttpServletRequest request) { -		this.request = request; -	} -	 -	public HttpServletResponse getResponse() { -		return response; -	} -	 -	public void setResponse(HttpServletResponse response) { -		this.response = response; -	} -	 -	public OAGeneralConfig getGeneralOA() { -		return generalOA; -	} -	 -	public void setGeneralOA(OAGeneralConfig generalOA) { -		this.generalOA = generalOA; -	} -	 -	public OAPVP2Config getPvp2OA() { -		return pvp2OA; -	} -	 -	public void setPvp2OA(OAPVP2Config pvp2oa) { -		pvp2OA = pvp2oa; -	} -	 -	public OASAML1Config getSaml1OA() { -		return saml1OA; -	} -	 -	public void setSaml1OA(OASAML1Config saml1oa) { -		saml1OA = saml1oa; -	} -	 -	public OASSOConfig getSsoOA() { -		return ssoOA; -	} -	 -	public void setSsoOA(OASSOConfig ssoOA) { -		this.ssoOA = ssoOA; -	} -	 -	public OASTORKConfig getStorkOA() { -		return storkOA; -	} -	 -	public void setStorkOA(OASTORKConfig storkOA) { -		this.storkOA = storkOA; -	} -	 -	/** -	 * @param oaidobj -	 *            the oaidobj to set -	 */ -	public void setOaidobj(String oaidobj) { -		this.oaidobj = oaidobj; -	} -	 -	/** -	 * @return the authUser -	 */ -	public AuthenticatedUser getAuthUser() { -		return authUser; -	} -	 -	/** -	 * @return the newOA -	 */ -	public boolean isNewOA() { -		return newOA; -	} -	 -	/** -	 * @param newOA -	 *            the newOA to set -	 */ -	public void setNewOA(boolean newOA) { -		this.newOA = newOA; -	} -	 -	/** -	 * @return the nextPage -	 */ -	public String getNextPage() { -		return nextPage; -	} -	 -	/** -	 * @return the formID -	 */ -	public String getFormID() { -		return formID; -	} -	 -	/** -	 * @param formID -	 *            the formID to set -	 */ -	public void setFormID(String formID) { -		this.formID = formID; -	} -	 -	/** -	 * @return the onlyBusinessService -	 */ -	public boolean isOnlyBusinessService() { -		return onlyBusinessService; -	} -	 -	/** -	 * @param onlyBusinessService -	 *            the onlyBusinessService to set -	 */ -	public void setOnlyBusinessService(boolean onlyBusinessService) { -		this.onlyBusinessService = onlyBusinessService; -	} -	 -	/** -	 * @return the subTargetSet -	 */ -	public boolean isSubTargetSet() { -		return subTargetSet; -	} -	 -	/** -	 * @param subTargetSet -	 *            the subTargetSet to set -	 */ -	public void setSubTargetSet(boolean subTargetSet) { -		this.subTargetSet = subTargetSet; -	} -	 -	/** -	 * @return the deaktivededBusinessService -	 */ -	public boolean isDeaktivededBusinessService() { -		return deaktivededBusinessService; -	} -	 -	/** -	 * @param deaktivededBusinessService -	 *            the deaktivededBusinessService to set -	 */ -	public void setDeaktivededBusinessService(boolean deaktivededBusinessService) { -		this.deaktivededBusinessService = deaktivededBusinessService; -	} -	 -	/** -	 * @return the formOA -	 */ -	public FormularCustomization getFormOA() { -		return formOA; -	} -	 -	/** -	 * @param formOA -	 *            the formOA to set -	 */ -	public void setFormOA(FormularCustomization formOA) { -		this.formOA = formOA; -	} -	 -	/** -	 * @return the stream -	 */ -	public InputStream getStream() { -		return stream; -	} -	 -	public OAOAuth20Config getOauth20OA() { -		return oauth20OA; -	} -	 -	public void setOauth20OA(OAOAuth20Config oauth20OA) { -		this.oauth20OA = oauth20OA; -	} -	 + +    private final Logger log = Logger.getLogger(EditOAAction.class); + +    private static final long serialVersionUID = 1L; + +    private HttpServletRequest request; +    private HttpServletResponse response; + +    private AuthenticatedUser authUser; + +    private String oaidobj; +    private boolean newOA; +    private String formID; + +    private boolean onlyBusinessService = false; +    private boolean onlyStorkService = false; +    private boolean subTargetSet = false; +    private boolean deaktivededBusinessService = false; +    private boolean deactivatedStorkService = false; +    private boolean isMetaDataRefreshRequired = false; + +    private String nextPage; + +    private OAGeneralConfig generalOA = new OAGeneralConfig(); +    private OAPVP2Config pvp2OA = new OAPVP2Config(); +    private OASAML1Config saml1OA = new OASAML1Config(); +    private OASSOConfig ssoOA = new OASSOConfig(); +    private OAOAuth20Config oauth20OA = new OAOAuth20Config(); +    private OASTORKConfig storkOA = new OASTORKConfig(); +    private FormularCustomization formOA = new FormularCustomization(); + +    private InputStream stream; + +    private Map<String, byte[]> sendAssertionForm = new HashMap<String, byte[]>(); +    private Map<String, byte[]> bkuSelectionForm = new HashMap<String, byte[]>(); + +    // STRUTS actions +    public String inital() { +        HttpSession session = request.getSession(); +        if (session == null) { +            log.info("No http Session found."); +            return Constants.STRUTS_ERROR; +        } + +        Object authUserObj = session.getAttribute(Constants.SESSION_AUTH); + +        authUser = (AuthenticatedUser) authUserObj; + +        long oaid = -1; + +        if (!ValidationHelper.validateOAID(oaidobj)) { +            addActionError(LanguageHelper.getErrorString("errors.edit.oa.oaid", request)); +            return Constants.STRUTS_ERROR; +        } +        oaid = Long.valueOf(oaidobj); + +        UserDatabase userdb = null; +        OnlineApplication onlineapplication = null; + +        if (authUser.isAdmin()) +            onlineapplication = ConfigurationDBRead.getOnlineApplication(oaid); + +        else { +            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")); +                return Constants.STRUTS_SUCCESS; +            } + +            // TODO: change to direct Database operation +            List<OnlineApplication> oas = userdb.getOnlineApplication(); +            for (OnlineApplication oa : oas) { +                if (oa.getHjid() == oaid) { +                    onlineapplication = oa; +                    break; +                } +            } +            if (onlineapplication == null) { +                addActionError(LanguageHelper.getErrorString("errors.edit.oa.oaid", request)); +                return Constants.STRUTS_ERROR; +            } +        } + +        generalOA.parse(onlineapplication); +        ssoOA.parse(onlineapplication); +        saml1OA.parse(onlineapplication); +        oauth20OA.parse(onlineapplication); +        session.setAttribute(Constants.SESSION_OAUTH20SECRET, this.oauth20OA.getClientSecret()); + +        storkOA.parse(onlineapplication); + +        Map<String, String> map = new HashMap<String, String>(); +        map.putAll(FormBuildUtils.getDefaultMap()); +        formOA.parse(onlineapplication, map); + +        session.setAttribute(Constants.SESSION_BKUFORMPREVIEW, map); + +        List<String> errors = pvp2OA.parse(onlineapplication); + +        if (errors.size() > 0) { +            for (String el : errors) +                addActionError(el); +        } + +        subTargetSet = MiscUtil.isNotEmpty(generalOA.getTarget_subsector()); + +        // set UserSpezific OA Parameters +        if (!authUser.isAdmin()) generateUserSpecificConfigurationOptions(userdb); + +        ConfigurationDBUtils.closeSession(); +        session.setAttribute(Constants.SESSION_OAID, oaid); + +        formID = Random.nextRandom(); +        session.setAttribute(Constants.SESSION_FORMID, formID); + +        newOA = false; + +        return Constants.STRUTS_OA_EDIT; +    } + +    public String newOA() { +        log.debug("insert new Online-Application"); + +        HttpSession session = request.getSession(); +        if (session == null) { +            log.info("No http Session found."); +            return Constants.STRUTS_ERROR; +        } + +        session.setAttribute(Constants.SESSION_OAID, null); +        nextPage = Constants.STRUTS_RETURNAREA_VALUES.main.name(); + +        Object authUserObj = session.getAttribute(Constants.SESSION_AUTH); + +        authUser = (AuthenticatedUser) authUserObj; + +        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")); +            return Constants.STRUTS_SUCCESS; +        } + +        MOAIDConfiguration moaidconfig = ConfigurationDBRead.getMOAIDConfiguration(); +        if (moaidconfig != null) { +            DefaultBKUs defaultbkus = moaidconfig.getDefaultBKUs(); +            if (defaultbkus != null) { +                generalOA.setBkuHandyURL(defaultbkus.getHandyBKU()); +                generalOA.setBkuLocalURL(defaultbkus.getLocalBKU()); +                generalOA.setBkuOnlineURL(defaultbkus.getOnlineBKU()); +            } +        } + +        // set UserSpezific OA Parameters +        if (!authUser.isAdmin()) generateUserSpecificConfigurationOptions(userdb); + +        ConfigurationDBUtils.closeSession(); + +        //VIDP attribute provider configuration +        storkOA = new OASTORKConfig(); +        storkOA.getAttributeProviderPlugins().add(new AttributeProviderPlugin()); +         +        newOA = true; +        formID = Random.nextRandom(); +        session.setAttribute(Constants.SESSION_FORMID, formID); + +        session.setAttribute(Constants.SESSION_BKUFORMPREVIEW, null); + +        this.oauth20OA.generateClientSecret(); +        session.setAttribute(Constants.SESSION_OAUTH20SECRET, this.oauth20OA.getClientSecret()); + +        return Constants.STRUTS_OA_EDIT; +    } + +    public String saveOA() { +        HttpSession session = request.getSession(); +        if (session == null) { +            log.info("No http Session found."); +            return Constants.STRUTS_ERROR; +        } + +        Object authUserObj = session.getAttribute(Constants.SESSION_AUTH); +        authUser = (AuthenticatedUser) authUserObj; + +        Object formidobj = session.getAttribute(Constants.SESSION_FORMID); +        if (formidobj != null && formidobj instanceof String) { +            String formid = (String) formidobj; +            if (!formid.equals(formID)) { +                log.warn("FormIDs does not match. Some suspect Form is received from user " + authUser.getFamilyName() +                        + authUser.getGivenName() + authUser.getUserID()); +                return Constants.STRUTS_ERROR; +            } +        } else { +            log.warn("FormIDs does not match. Some suspect Form is received from user " + authUser.getFamilyName() +                    + authUser.getGivenName() + authUser.getUserID()); +            return Constants.STRUTS_ERROR; +        } +        session.setAttribute(Constants.SESSION_FORMID, null); + +        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")); +            return Constants.STRUTS_SUCCESS; +        } + +        OnlineApplication onlineapplication = null; +        List<String> errors = new ArrayList<String>(); + +        Object oadbid = request.getSession().getAttribute(Constants.SESSION_OAID); +        Long oaid = (long) -1; + +        if (oadbid != null) { +            try { +                oaid = (Long) oadbid; +                if (oaid < 0 || oaid > Long.MAX_VALUE) { +                    addActionError(LanguageHelper.getErrorString("errors.edit.oa.oaid", request)); +                    return Constants.STRUTS_ERROR; +                } + +            } catch (Throwable t) { +                addActionError(LanguageHelper.getErrorString("errors.edit.oa.oaid", request)); +                return Constants.STRUTS_ERROR; +            } +        } + +        // valid DBID and check entry +        String oaidentifier = generalOA.getIdentifier(); +        if (MiscUtil.isEmpty(oaidentifier)) { +            log.info("Empty OA identifier"); +            errors.add(LanguageHelper.getErrorString("validation.general.oaidentifier.empty")); + +        } else { + +            if (!ValidationHelper.validateURL(oaidentifier)) { +                log.warn("OnlineapplikationIdentifier is not a valid URL: " + oaidentifier); +                errors.add(LanguageHelper.getErrorString("validation.general.oaidentifier.valid", +                        new Object[]{ValidationHelper.getNotValidOAIdentifierCharacters()})); +            } else { + +                if (oaid == -1) { +                    onlineapplication = ConfigurationDBRead.getOnlineApplication(oaidentifier); +                    newOA = true; +                    if (onlineapplication != null) { +                        log.info("The OAIdentifier is not unique"); +                        errors.add(LanguageHelper.getErrorString("validation.general.oaidentifier.notunique")); +                    } + +                } else { +                    onlineapplication = ConfigurationDBRead.getOnlineApplication(oaid); +                    if (!oaidentifier.equals(onlineapplication.getPublicURLPrefix())) { + +                        if (ConfigurationDBRead.getOnlineApplication(oaidentifier) != null) { +                            log.info("The OAIdentifier is not unique"); +                            errors.add(LanguageHelper.getErrorString("validation.general.oaidentifier.notunique")); +                        } +                    } +                } +            } +        } + +        // set UserSpezific OA Parameters +        if (!authUser.isAdmin()) generateUserSpecificConfigurationOptions(userdb); + +        // check form +        OAGeneralConfigValidation validatior_general = new OAGeneralConfigValidation(); +        OAPVP2ConfigValidation validatior_pvp2 = new OAPVP2ConfigValidation(); +        OASAML1ConfigValidation validatior_saml1 = new OASAML1ConfigValidation(); +        OASSOConfigValidation validatior_sso = new OASSOConfigValidation(); +        OASTORKConfigValidation validator_stork = new OASTORKConfigValidation(); +        FormularCustomizationValitator validator_form = new FormularCustomizationValitator(); +        OAOAUTH20ConfigValidation validatior_oauth20 = new OAOAUTH20ConfigValidation(); +        OAFileUploadValidation valiator_fileUpload = new OAFileUploadValidation(); + +        errors.addAll(validatior_general.validate(generalOA, authUser.isAdmin())); +        errors.addAll(validatior_pvp2.validate(pvp2OA)); +        errors.addAll(validatior_saml1.validate(saml1OA, generalOA)); +        errors.addAll(validatior_sso.validate(ssoOA, authUser.isAdmin())); +        errors.addAll(validator_stork.validate(storkOA)); +        errors.addAll(validator_form.validate(formOA)); +        errors.addAll(validatior_oauth20.validate(oauth20OA)); + +        //validate BKU-selection template +        List<String> templateError = valiator_fileUpload.validate(generalOA.getBkuSelectionFileUploadFileName() +                , generalOA.getBkuSelectionFileUpload(), "validation.general.bkuselection", bkuSelectionForm); +        if (templateError != null && templateError.size() == 0) { +            if (bkuSelectionForm != null && bkuSelectionForm.size() > 0) +                session.setAttribute(Constants.SESSION_BKUSELECTIONTEMPLATE, bkuSelectionForm); + +            else +                bkuSelectionForm = (Map<String, byte[]>) session.getAttribute(Constants.SESSION_BKUSELECTIONTEMPLATE); + +        } else { +            errors.addAll(templateError); + +        } + +        //validate send-assertion template +        templateError = valiator_fileUpload.validate(generalOA.getSendAssertionFileUploadFileName() +                , generalOA.getSendAssertionFileUpload(), "validation.general.sendassertion", sendAssertionForm); +        if (templateError != null && templateError.size() == 0) { +            if (sendAssertionForm != null && sendAssertionForm.size() > 0) +                session.setAttribute(Constants.SESSION_SENDASSERTIONTEMPLATE, sendAssertionForm); + +            else +                sendAssertionForm = (Map<String, byte[]>) session.getAttribute(Constants.SESSION_SENDASSERTIONTEMPLATE); + +        } else { +            errors.addAll(templateError); + +        } + + +        // Do not allow SSO in combination with special BKUSelection features +        if (ssoOA.isUseSSO() && (formOA.isOnlyMandateAllowed() || !formOA.isShowMandateLoginButton())) { +            log.warn("Special BKUSelection features can not be used in combination with SSO"); +            errors.add(LanguageHelper.getErrorString("validation.general.bkuselection.specialfeatures.valid")); +        } + +        if (errors.size() > 0) { +            log.info("OAConfiguration with ID " + generalOA.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 { + +            boolean newentry = false; + +            if (onlineapplication == null) { +                onlineapplication = new OnlineApplication(); +                newentry = true; +                onlineapplication.setIsActive(false); + +                if (!authUser.isAdmin()) { +                    onlineapplication.setIsAdminRequired(true); + +                } else +                    isMetaDataRefreshRequired = true; + +            } else { +                if (!authUser.isAdmin() && !onlineapplication.getPublicURLPrefix().equals(generalOA.getIdentifier())) { + +                    onlineapplication.setIsAdminRequired(true); +                    onlineapplication.setIsActive(false); +                    log.info("User with ID " + authUser.getUserID() + " change OA-PublicURLPrefix. Reaktivation is required."); +                } + +            } + +            if ((onlineapplication.isIsAdminRequired() == null) +                    || (authUser.isAdmin() && generalOA.isActive() && onlineapplication.isIsAdminRequired())) { + +                onlineapplication.setIsAdminRequired(false); +                isMetaDataRefreshRequired = true; + +                if (onlineapplication.getHjid() != null) +                    userdb = ConfigurationDBRead.getUsersWithOADBID(onlineapplication.getHjid()); + +                if (userdb != null && !userdb.isIsAdmin()) { +                    try { +                        MailHelper.sendUserOnlineApplicationActivationMail(userdb.getGivenname(), userdb.getFamilyname(), +                                userdb.getInstitut(), onlineapplication.getPublicURLPrefix(), userdb.getMail()); +                    } catch (ConfigurationException e) { +                        log.warn("Sending Mail to User " + userdb.getMail() + " failed", e); +                    } +                } +            } + +            //save OA configuration +            String error = saveOAConfigToDatabase(onlineapplication, newentry); +            if (MiscUtil.isNotEmpty(error)) { +                log.warn("OA configuration can not be stored!"); +                addActionError(error); + +                formID = Random.nextRandom(); +                session.setAttribute(Constants.SESSION_FORMID, formID); +                return Constants.STRUTS_ERROR_VALIDATION; +            } + +            //set metadata reload flag if reload is required +            if (pvp2OA.getMetaDataURL() != null) { + +                try { +                    if (isMetaDataRefreshRequired +                            || !pvp2OA.getMetaDataURL().equals(onlineapplication.getAuthComponentOA().getOAPVP2().getMetadataURL()) +                            || pvp2OA.getFileUpload() != null +                            || pvp2OA.isReLoad()) { + +                        log.debug("Set PVP2 Metadata refresh flag."); +                        MOAIDConfiguration moaconfig = ConfigurationDBRead.getMOAIDConfiguration(); +                        moaconfig.setPvp2RefreshItem(new Date()); +                        ConfigurationDBUtils.saveOrUpdate(moaconfig); + +                    } +                } catch (Throwable e) { +                    log.info("Found no MetadataURL in OA-Databaseconfig!", e); +                } + +            } +        } + +        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", generalOA.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", generalOA.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() { + +        HttpSession session = request.getSession(); +        if (session == null) { +            log.info("No http Session found."); +            return Constants.STRUTS_ERROR; +        } + +        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", generalOA.getIdentifier(), request)); + +        ConfigurationDBUtils.closeSession(); + +        return Constants.STRUTS_SUCCESS; +    } + +    public String deleteOA() { +        HttpSession session = request.getSession(); +        if (session == null) { +            log.info("No http Session found."); +            return Constants.STRUTS_ERROR; +        } + +        Object authUserObj = session.getAttribute(Constants.SESSION_AUTH); +        authUser = (AuthenticatedUser) authUserObj; + +        Object formidobj = session.getAttribute(Constants.SESSION_FORMID); +        if (formidobj != null && formidobj instanceof String) { +            String formid = (String) formidobj; +            if (!formid.equals(formID)) { +                log.warn("FormIDs does not match. Some suspect Form is received from user " + authUser.getFamilyName() +                        + authUser.getGivenName() + authUser.getUserID()); +                return Constants.STRUTS_ERROR; +            } +        } else { +            log.warn("FormIDs does not match. Some suspect Form is received from user " + authUser.getFamilyName() +                    + authUser.getGivenName() + authUser.getUserID()); +            return Constants.STRUTS_ERROR; +        } +        session.setAttribute(Constants.SESSION_FORMID, null); + +        Object nextPageAttr = session.getAttribute(Constants.SESSION_RETURNAREA); +        if (nextPageAttr != null && nextPageAttr instanceof String) { +            nextPage = (String) nextPageAttr; + +        } else { +            nextPage = Constants.STRUTS_RETURNAREA_VALUES.main.name(); +        } + +        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")); +            return Constants.STRUTS_SUCCESS; +        } + +        String oaidentifier = generalOA.getIdentifier(); +        if (MiscUtil.isEmpty(oaidentifier)) { +            log.info("Empty OA identifier"); +            addActionError(LanguageHelper.getErrorString("validation.general.oaidentifier.empty")); + +            formID = Random.nextRandom(); +            session.setAttribute(Constants.SESSION_FORMID, formID); +            return Constants.STRUTS_ERROR_VALIDATION; + +        } else { +            if (ValidationHelper.isValidOAIdentifier(oaidentifier)) { +                log.warn("IdentificationNumber contains potentail XSS characters: " + oaidentifier); +                addActionError(LanguageHelper.getErrorString("validation.general.oaidentifier.valid", +                        new Object[]{ValidationHelper.getNotValidOAIdentifierCharacters()})); + +                formID = Random.nextRandom(); +                session.setAttribute(Constants.SESSION_FORMID, formID); +                return Constants.STRUTS_ERROR_VALIDATION; +            } +        } + +        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; +                } +            } + +            ConfigurationDBUtils.closeSession(); + +            addActionMessage(LanguageHelper.getGUIString("webpages.oaconfig.delete.message", generalOA.getIdentifier(), request)); + +            return Constants.STRUTS_SUCCESS; + +        } else { +            ConfigurationDBUtils.closeSession(); +            addActionError(LanguageHelper.getGUIString("webpages.oaconfig.delete.error", generalOA.getIdentifier(), request)); +            return Constants.STRUTS_SUCCESS; +        } + +    } + +    public String bkuFramePreview() { + +        String preview = null; + +        HttpSession session = request.getSession(); +        if (session == null) { +            log.info("No http Session found."); +            preview = LanguageHelper.getErrorString("error.bkuformpreview.notpossible"); + +        } else { +            InputStream input = null; + +            try { +                Object mapobj = session.getAttribute(Constants.SESSION_BKUFORMPREVIEW); +                if (mapobj != null && mapobj instanceof Map<?, ?>) { + +                    ConfigurationProvider config = ConfigurationProvider.getInstance(); +                    String templateURL = config.getConfigRootDir() + ConfigurationProvider.HTMLTEMPLATE_DIR +                            + ConfigurationProvider.HTMLTEMPLATE_FILE; + +                    File file = new File(templateURL); +                    input = new FileInputStream(file); + +                    String contextpath = config.getMOAIDInstanceURL(); +                    if (MiscUtil.isEmpty(contextpath)) { +                        log.info("NO MOA-ID instance URL configurated."); +                        throw new ConfigurationException("No MOA-ID instance configurated"); +                    } + +                    preview = LoginFormBuilder.getTemplate(input); +                    preview = preview.replace(LoginFormBuilder.CONTEXTPATH, contextpath); + +                    Map<String, String> map = (Map<String, String>) mapobj; + +                    request.setCharacterEncoding("UTF-8"); + +                    String module = request.getParameter(Constants.REQUEST_FORMCUSTOM_MODULE); +                    String value = request.getParameter(Constants.REQUEST_FORMCUSTOM_VALUE); + +                    if (value != null) { +                        String[] query = URLDecoder.decode(request.getQueryString()).split("&"); +                        value = query[1].substring("value=".length()); +                    } + +                    synchronized (map) { + +                        if (MiscUtil.isNotEmpty(module)) { +                            if (map.containsKey("#" + module + "#")) { +                                if (MiscUtil.isNotEmpty(value)) { +                                    if (FormBuildUtils.FONTFAMILY.contains(module) || FormBuildUtils.HEADER_TEXT.contains(module) +                                            || value.startsWith("#")) +                                        map.put("#" + module + "#", value); +                                    else +                                        map.put("#" + module + "#", "#" + value); + +                                } else { +                                    map.put("#" + module + "#", FormBuildUtils.getDefaultMap().get("#" + module + "#")); +                                } +                            } +                        } +                        preview = FormBuildUtils.customiceLayoutBKUSelection(preview, true, false, map, true); +                    } + +                } else { +                    preview = LanguageHelper.getErrorString("error.bkuformpreview.notpossible"); + +                } + +            } catch (Exception e) { +                log.warn("BKUSelection Preview can not be generated.", e); +                preview = LanguageHelper.getErrorString("error.bkuformpreview.notpossible"); + +            } +        } + +        stream = new ByteArrayInputStream(preview.getBytes()); + +        return Constants.STRUTS_SUCCESS; +    } + +    private String saveOAConfigToDatabase(OnlineApplication dboa, boolean newentry) { + +        AuthComponentOA authoa = dboa.getAuthComponentOA(); +        if (authoa == null) { +            authoa = new AuthComponentOA(); +            dboa.setAuthComponentOA(authoa); +        } + +        if (authUser.isAdmin()) dboa.setIsActive(generalOA.isActive()); + +        dboa.setFriendlyName(generalOA.getFriendlyName()); +        dboa.setCalculateHPI(generalOA.isCalculateHPI()); +        dboa.setRemoveBPKFromAuthBlock(generalOA.isHideBPKAuthBlock()); + +        if (authUser.isAdmin()) +            dboa.setKeyBoxIdentifier(MOAKeyBoxSelector.fromValue(generalOA.getKeyBoxIdentifier())); +        else { +            if (newentry) dboa.setKeyBoxIdentifier(MOAKeyBoxSelector.SECURE_SIGNATURE_KEYPAIR); +        } + +        dboa.setPublicURLPrefix(generalOA.getIdentifier()); + +        if (generalOA.isStorkService() || onlyStorkService) { +            dboa.setType(Constants.MOA_CONFIG_STORKSERVICE); +            dboa.setStorkSPTargetCountry(generalOA.getStorkSPTargetCountry()); + + +            IdentificationNumber idnumber = new IdentificationNumber(); +            idnumber.setValue(Constants.PREFIX_STORK + "AT+" + generalOA.getStorkSPTargetCountry()); +            idnumber.setType(Constants.BUSINESSSERVICENAMES.get(generalOA.getIdentificationType())); + +            authoa.setIdentificationNumber(idnumber); + +        } else if (generalOA.isBusinessService() || onlyBusinessService) { + +            dboa.setType(Constants.MOA_CONFIG_BUSINESSSERVICE); + +            String num = generalOA.getIdentificationNumber().replaceAll(" ", ""); +            if (num.startsWith(Constants.IDENIFICATIONTYPE_FN)) { +                num = num.substring(Constants.IDENIFICATIONTYPE_FN.length()); + +                num = at.gv.egovernment.moa.util.StringUtils.deleteLeadingZeros(num); + +                // num = StringUtils.leftPad(num, 7, '0'); +            } + +            if (num.startsWith(Constants.IDENIFICATIONTYPE_ZVR)) +                num = num.substring(Constants.IDENIFICATIONTYPE_ZVR.length()); + +            if (num.startsWith(Constants.IDENIFICATIONTYPE_ERSB)) +                num = num.substring(Constants.IDENIFICATIONTYPE_ERSB.length()); + +            IdentificationNumber idnumber = new IdentificationNumber(); +            idnumber.setValue(Constants.PREFIX_WPBK + generalOA.getIdentificationType() + "+" + num); +            idnumber.setType(Constants.BUSINESSSERVICENAMES.get(generalOA.getIdentificationType())); + +            authoa.setIdentificationNumber(idnumber); + +        } else { +            dboa.setType(null); + +            if (authUser.isAdmin()) { +                if (MiscUtil.isNotEmpty(generalOA.getTarget_admin()) && generalOA.isAdminTarget()) { +                    dboa.setTarget(generalOA.getTarget_admin()); +                    dboa.setTargetFriendlyName(generalOA.getTargetFriendlyName()); + +                } else { + +                    String target = generalOA.getTarget(); + +                    if (MiscUtil.isNotEmpty(generalOA.getTarget_subsector()) && subTargetSet) +                        dboa.setTarget(target + "-" + generalOA.getTarget_subsector()); +                    else +                        dboa.setTarget(target); + +                    String targetname = TargetValidator.getTargetFriendlyName(target); +                    if (MiscUtil.isNotEmpty(targetname)) dboa.setTargetFriendlyName(targetname); + +                } + +            } else { + +                if (MiscUtil.isNotEmpty(generalOA.getTarget())) { + +                    String target = generalOA.getTarget(); + +                    if (MiscUtil.isNotEmpty(generalOA.getTarget_subsector()) && subTargetSet) +                        dboa.setTarget(target + "-" + generalOA.getTarget_subsector()); + +                    else +                        dboa.setTarget(target); + +                    String targetname = TargetValidator.getTargetFriendlyName(target); +                    if (MiscUtil.isNotEmpty(targetname)) dboa.setTargetFriendlyName(targetname); + +                } +            } +        } + +        //store BKU-URLs +        BKUURLS bkuruls = new BKUURLS(); +        authoa.setBKUURLS(bkuruls); +        if (authUser.isAdmin()) { +            bkuruls.setHandyBKU(generalOA.getBkuHandyURL()); +            bkuruls.setLocalBKU(generalOA.getBkuLocalURL()); +            bkuruls.setOnlineBKU(generalOA.getBkuOnlineURL()); +        } + +        TemplatesType templates = authoa.getTemplates(); +        if (templates == null) { +            templates = new TemplatesType(); +            authoa.setTemplates(templates); +        } + +        //store BKU-selection and send-assertion templates +        if (authUser.isAdmin()) { + +            if (generalOA.isDeleteBKUTemplate()) +                templates.setBKUSelectionTemplate(null); + +            if (generalOA.isDeleteSendAssertionTemplate()) +                templates.setSendAssertionTemplate(null); + + +            if (bkuSelectionForm != null && bkuSelectionForm.size() > 0) { +                TransformsInfoType template = new TransformsInfoType(); + +                Iterator<String> interator = bkuSelectionForm.keySet().iterator(); +                template.setFilename(interator.next()); +                template.setTransformation(bkuSelectionForm.get( +                        template.getFilename())); + +                templates.setBKUSelectionTemplate(template); +            } + +            if (sendAssertionForm != null && sendAssertionForm.size() > 0) { +                TransformsInfoType template = new TransformsInfoType(); + +                Iterator<String> interator = sendAssertionForm.keySet().iterator(); +                template.setFilename(interator.next()); +                template.setTransformation(sendAssertionForm.get( +                        template.getFilename())); + +                templates.setSendAssertionTemplate(template); +            } +        } + + +        //store BKU-selection customization +        BKUSelectionCustomizationType bkuselectioncustom = templates.getBKUSelectionCustomization(); +        if (bkuselectioncustom == null) { +            bkuselectioncustom = new BKUSelectionCustomizationType(); +            templates.setBKUSelectionCustomization(bkuselectioncustom); +        } + +        Mandates mandates = new Mandates(); +        if (generalOA.isUseMandates()) { +            mandates.setProfiles(generalOA.getMandateProfiles()); + +        } else { +            mandates.setProfiles(new String()); +        } + +        authoa.setMandates(mandates); +        bkuselectioncustom.setMandateLoginButton(MiscUtil.isNotEmpty(generalOA.getMandateProfiles())); +        bkuselectioncustom.setOnlyMandateLoginAllowed(formOA.isOnlyMandateAllowed()); + +        if (authUser.isAdmin()) { +            templates.setAditionalAuthBlockText(generalOA.getAditionalAuthBlockText()); + +            List<TemplateType> template = templates.getTemplate(); +            if (generalOA.isLegacy()) { + +                if (template == null) +                    template = new ArrayList<TemplateType>(); +                else +                    template.clear(); + +                if (MiscUtil.isNotEmpty(generalOA.getSLTemplateURL1())) { +                    TemplateType el = new TemplateType(); +                    el.setURL(generalOA.getSLTemplateURL1()); +                    template.add(el); +                } else +                    template.add(new TemplateType()); +                if (MiscUtil.isNotEmpty(generalOA.getSLTemplateURL2())) { +                    TemplateType el = new TemplateType(); +                    el.setURL(generalOA.getSLTemplateURL2()); +                    template.add(el); +                } else +                    template.add(new TemplateType()); +                if (MiscUtil.isNotEmpty(generalOA.getSLTemplateURL3())) { +                    TemplateType el = new TemplateType(); +                    el.setURL(generalOA.getSLTemplateURL3()); +                    template.add(el); +                } else +                    template.add(new TemplateType()); + +            } else { +                if (template != null && template.size() > 0) template.clear(); +            } + +            bkuselectioncustom.setBackGroundColor(parseColor(formOA.getBackGroundColor())); +            bkuselectioncustom.setFrontColor(parseColor(formOA.getFrontColor())); + +            bkuselectioncustom.setHeaderBackGroundColor(parseColor(formOA.getHeader_BackGroundColor())); +            bkuselectioncustom.setHeaderFrontColor(parseColor(formOA.getHeader_FrontColor())); +            bkuselectioncustom.setHeaderText(formOA.getHeader_text()); + +            bkuselectioncustom.setButtonBackGroundColor(parseColor(formOA.getButton_BackGroundColor())); +            bkuselectioncustom.setButtonBackGroundColorFocus(parseColor(formOA.getButton_BackGroundColorFocus())); +            bkuselectioncustom.setButtonFontColor(parseColor(formOA.getButton_FrontColor())); + +            if (MiscUtil.isNotEmpty(formOA.getAppletRedirectTarget())) +                bkuselectioncustom.setAppletRedirectTarget(formOA.getAppletRedirectTarget()); + +            bkuselectioncustom.setFontType(formOA.getFontType()); + +            bkuselectioncustom.setAppletHeight(formOA.getApplet_height()); +            bkuselectioncustom.setAppletWidth(formOA.getApplet_width()); + +        } + +        // set default transformation if it is empty +        List<TransformsInfoType> transformsInfo = authoa.getTransformsInfo(); +        if (transformsInfo == null) { +            // TODO: set OA specific transformation if it is required + +        } + +        OAPVP2 pvp2 = authoa.getOAPVP2(); +        if (pvp2 == null) { +            pvp2 = new OAPVP2(); +            authoa.setOAPVP2(pvp2); +        } + +        pvp2.setMetadataURL(pvp2OA.getMetaDataURL()); +        try { + +            if (pvp2OA.getFileUpload() != null) pvp2.setCertificate(pvp2OA.getCertificate()); + +        } catch (CertificateException e) { +            log.info("Uploaded Certificate can not be found", e); +            return LanguageHelper.getErrorString("validation.pvp2.certificate.notfound"); +        } catch (IOException e) { +            log.info("Uploaded Certificate can not be parsed", e); +            return LanguageHelper.getErrorString("validation.pvp2.certificate.format"); +        } + +        OASAML1 saml1 = authoa.getOASAML1(); +        if (saml1 == null) { +            saml1 = new OASAML1(); +            authoa.setOASAML1(saml1); +            saml1.setIsActive(false); +        } + +        if (authUser.isAdmin()) { +            saml1.setIsActive(saml1OA.isActive()); +        } + +        if (saml1.isIsActive() != null && saml1.isIsActive()) { +            saml1.setProvideAUTHBlock(saml1OA.isProvideAuthBlock()); +            saml1.setProvideCertificate(saml1OA.isProvideCertificate()); +            saml1.setProvideFullMandatorData(saml1OA.isProvideFullMandateData()); +            saml1.setProvideIdentityLink(saml1OA.isProvideIdentityLink()); +            saml1.setProvideStammzahl(saml1OA.isProvideStammZahl()); +            saml1.setUseCondition(saml1OA.isUseCondition()); +            saml1.setConditionLength(BigInteger.valueOf(saml1OA.getConditionLength())); +            // TODO: set sourceID +            // saml1.setSourceID(""); +        } + +        OASSO sso = authoa.getOASSO(); +        if (sso == null) { +            sso = new OASSO(); +            authoa.setOASSO(sso); +            sso.setAuthDataFrame(true); +        } +        sso.setUseSSO(ssoOA.isUseSSO()); + +        if (authUser.isAdmin()) sso.setAuthDataFrame(ssoOA.isShowAuthDataFrame()); + +        sso.setSingleLogOutURL(ssoOA.getSingleLogOutURL()); + +        if (oauth20OA != null) { +            log.debug("Saving OAuth 2.0 configuration:"); +            OAOAUTH20 oaOAuth20 = authoa.getOAOAUTH20(); +            if (oaOAuth20 == null) { +                oaOAuth20 = new OAOAUTH20(); +                authoa.setOAOAUTH20(oaOAuth20); +            } + +            oaOAuth20.setOAuthClientId(generalOA.getIdentifier()); +            // oaOAuth20.setOAuthClientSecret(oauth20OA.getClientSecret()); +            oaOAuth20.setOAuthRedirectUri(oauth20OA.getRedirectUri()); +            log.debug("client id: " + oauth20OA.getClientId()); +            log.debug("client secret: " + oauth20OA.getClientSecret()); +            log.debug("redirect uri:" + oauth20OA.getRedirectUri()); + +            oaOAuth20.setOAuthClientSecret((String) request.getSession().getAttribute(Constants.SESSION_OAUTH20SECRET)); +            request.getSession().setAttribute(Constants.SESSION_OAUTH20SECRET, null); + +        } + + +        // fetch stork configuration from database model +        OASTORK stork = authoa.getOASTORK(); +        if (stork == null) { +            // if there is none, create a new one with default values. +            stork = new OASTORK(); +            authoa.setOASTORK(stork); +            stork.setStorkLogonEnabled(false); +        } +        // transfer the incoming data to the database model +        stork.setStorkLogonEnabled(storkOA.isStorkLogonEnabled()); +        stork.setQaa(storkOA.getQaa()); +        stork.setOAAttributes(storkOA.getAttributes()); +        stork.setVidpEnabled(storkOA.isVidpEnabled()); +        stork.setRequireConsent(storkOA.isRequireConsent()); +        stork.setAttributeProviders(storkOA.getAttributeProviderPlugins()); + +        try { +            if (newentry) { +                ConfigurationDBUtils.save(dboa); + +                if (!authUser.isAdmin()) { +                    UserDatabase user = ConfigurationDBRead.getUserWithID(authUser.getUserID()); + +                    List<OnlineApplication> useroas = user.getOnlineApplication(); +                    if (useroas == null) useroas = new ArrayList<OnlineApplication>(); + +                    useroas.add(dboa); +                    ConfigurationDBUtils.saveOrUpdate(user); +                } +            } else +                ConfigurationDBUtils.saveOrUpdate(dboa); + +        } catch (MOADatabaseException e) { +            log.warn("Online-Application can not be stored.", e); +            return LanguageHelper.getErrorString("error.db.oa.store"); +        } + +        return null; +    } + +    private String parseColor(String color) { +        String value = ""; + +        if (MiscUtil.isNotEmpty(color)) { +            if (!color.startsWith("#")) +                value = "#" + color; +            else +                value = color; +        } +        return value; +    } + +    private void generateUserSpecificConfigurationOptions(UserDatabase userdb) { + +        if (userdb.isIsMandateUser() != null && userdb.isIsMandateUser()) { +            String bpk = userdb.getBpk(); +            if (bpk.startsWith(Constants.IDENIFICATIONTYPE_BASEID_FN) || bpk.startsWith(Constants.IDENIFICATIONTYPE_BASEID_ZVR)) { +                onlyBusinessService = true; +                generalOA.setBusinessService(true); +            } else if (bpk.startsWith(Constants.IDENIFICATIONTYPE_STORK)) { +                onlyStorkService = true; +                generalOA.setStorkService(true); +            } + +            deaktivededBusinessService = true; +            deactivatedStorkService = true; +            String[] split = bpk.split("\\+"); +            generalOA.setIdentificationType(split[1].substring(1)); + +            if (bpk.startsWith(Constants.IDENIFICATIONTYPE_BASEID_FN)) +                generalOA.setIdentificationNumber(at.gv.egovernment.moa.util.StringUtils.deleteLeadingZeros(split[2])); +            else +                generalOA.setIdentificationNumber(split[2]); + +        } + +    } + +    public String setGeneralOAConfig() { + +        return Constants.STRUTS_SUCCESS; +    } + +    public String setSAML1OAConfig() { + +        return Constants.STRUTS_SUCCESS; +    } + +    public String setPVP2OAConfig() { + +        return Constants.STRUTS_SUCCESS; +    } + +    public String setSSOOAConfig() { + +        return Constants.STRUTS_SUCCESS; +    } + +    public String setSTORKOAConfig() { + +        return Constants.STRUTS_SUCCESS; +    } + +    // Getter and Setter +    public void setServletResponse(HttpServletResponse arg0) { +        this.response = arg0; + +    } + +    public void setServletRequest(HttpServletRequest arg0) { +        this.request = arg0; + +    } + +    public HttpServletRequest getRequest() { +        return request; +    } + +    public void setRequest(HttpServletRequest request) { +        this.request = request; +    } + +    public HttpServletResponse getResponse() { +        return response; +    } + +    public void setResponse(HttpServletResponse response) { +        this.response = response; +    } + +    public OAGeneralConfig getGeneralOA() { +        return generalOA; +    } + +    public void setGeneralOA(OAGeneralConfig generalOA) { +        this.generalOA = generalOA; +    } + +    public OAPVP2Config getPvp2OA() { +        return pvp2OA; +    } + +    public void setPvp2OA(OAPVP2Config pvp2oa) { +        pvp2OA = pvp2oa; +    } + +    public OASAML1Config getSaml1OA() { +        return saml1OA; +    } + +    public void setSaml1OA(OASAML1Config saml1oa) { +        saml1OA = saml1oa; +    } + +    public OASSOConfig getSsoOA() { +        return ssoOA; +    } + +    public void setSsoOA(OASSOConfig ssoOA) { +        this.ssoOA = ssoOA; +    } + +    public OASTORKConfig getStorkOA() { +        return storkOA; +    } + +    public void setStorkOA(OASTORKConfig storkOA) { +        this.storkOA = storkOA; +    } + +    /** +     * @param oaidobj the oaidobj to set +     */ +    public void setOaidobj(String oaidobj) { +        this.oaidobj = oaidobj; +    } + +    /** +     * @return the authUser +     */ +    public AuthenticatedUser getAuthUser() { +        return authUser; +    } + +    /** +     * @return the newOA +     */ +    public boolean isNewOA() { +        return newOA; +    } + +    /** +     * @param newOA the newOA to set +     */ +    public void setNewOA(boolean newOA) { +        this.newOA = newOA; +    } + +    /** +     * @return the nextPage +     */ +    public String getNextPage() { +        return nextPage; +    } + +    /** +     * @return the formID +     */ +    public String getFormID() { +        return formID; +    } + +    /** +     * @param formID the formID to set +     */ +    public void setFormID(String formID) { +        this.formID = formID; +    } + +    /** +     * @return the onlyBusinessService +     */ +    public boolean isOnlyBusinessService() { +        return onlyBusinessService; +    } + +    /** +     * @param onlyStorkService the onlyStorkService to set +     */ +    public void setOnlyStorkService(boolean onlyStorkService) { +        this.onlyStorkService = onlyStorkService; +    } + +    /** +     * @return the onlyStorkService +     */ +    public boolean isOnlyStorkService() { +        return onlyStorkService; +    } + +    /** +     * @param onlyBusinessService the onlyBusinessService to set +     */ +    public void setOnlyBusinessService(boolean onlyBusinessService) { +        this.onlyBusinessService = onlyBusinessService; +    } + + +    /** +     * @return the subTargetSet +     */ +    public boolean isSubTargetSet() { +        return subTargetSet; +    } + +    /** +     * @param subTargetSet the subTargetSet to set +     */ +    public void setSubTargetSet(boolean subTargetSet) { +        this.subTargetSet = subTargetSet; +    } + +    /** +     * @return the deaktivededBusinessService +     */ +    public boolean isDeaktivededBusinessService() { +        return deaktivededBusinessService; +    } + +    /** +     * @return the deactivatedStorkService +     */ +    public boolean isDeactivatedStorkService() { +        return deactivatedStorkService; +    } + +    /** +     * @param deactivatedStorkService the deactivatedStorkService to set +     */ + +    public void setDeactivatedStorkService(boolean deactivatedStorkService) { + +        this.deactivatedStorkService = deactivatedStorkService; +    } + +    /** +     * @param deaktivededBusinessService the deaktivededBusinessService to set +     */ +    public void setDeaktivededBusinessService(boolean deaktivededBusinessService) { +        this.deaktivededBusinessService = deaktivededBusinessService; +    } + +    /** +     * @return the formOA +     */ +    public FormularCustomization getFormOA() { +        return formOA; +    } + +    /** +     * @param formOA the formOA to set +     */ +    public void setFormOA(FormularCustomization formOA) { +        this.formOA = formOA; +    } + +    /** +     * @return the stream +     */ +    public InputStream getStream() { +        return stream; +    } + +    public OAOAuth20Config getOauth20OA() { +        return oauth20OA; +    } + +    public void setOauth20OA(OAOAuth20Config oauth20OA) { +        this.oauth20OA = oauth20OA; +    } +  } diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/ImportExportAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/ImportExportAction.java index 3bc2d4ac5..655ce7a59 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/ImportExportAction.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/ImportExportAction.java @@ -198,6 +198,10 @@ implements ServletRequestAware, ServletResponseAware {  				ConfigurationDBUtils.closeSession();  			} +			//set new formID +			formID = Random.nextRandom(); +			session.setAttribute(Constants.SESSION_FORMID, formID); +			  			log.info("Legacy Configuration load is completed.");  			addActionMessage(LanguageHelper.getGUIString("webpages.inportexport.success"));  			return Constants.STRUTS_SUCCESS; @@ -285,6 +289,11 @@ implements ServletRequestAware, ServletResponseAware {  				ConfigurationDBUtils.closeSession();  			} + +			//set new formID +			formID = Random.nextRandom(); +			session.setAttribute(Constants.SESSION_FORMID, formID); +			  			return Constants.STRUTS_SUCCESS;  		} else {  			log.info("No access to Import/Export for User with ID" + authUser.getUserID()); @@ -317,15 +326,20 @@ implements ServletRequestAware, ServletResponseAware {  					+ authUser.getFamilyName() + authUser.getGivenName() + authUser.getUserID());  			return Constants.STRUTS_ERROR;  		} +  		session.setAttribute(Constants.SESSION_FORMID, null);  		if (authUser.isAdmin()) {  			if (fileUpload == null) {  				addActionError(LanguageHelper.getErrorString("errors.importexport.nofile")); +				 +				formID = Random.nextRandom(); +				session.setAttribute(Constants.SESSION_FORMID, formID); +				  				return Constants.STRUTS_ERROR_VALIDATION;  			} -		 +			  			log.info("Load configuration from MOA-ID 2.x XML configuration");  			try { @@ -367,6 +381,10 @@ implements ServletRequestAware, ServletResponseAware {  				ConfigurationDBUtils.closeSession();  			} +			//set new formID +			formID = Random.nextRandom(); +			session.setAttribute(Constants.SESSION_FORMID, formID); +			  			log.info("XML Configuration load is completed.");  			addActionMessage(LanguageHelper.getGUIString("webpages.inportexport.success"));  			return Constants.STRUTS_SUCCESS; diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IndexAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IndexAction.java index a51709e04..8004ab520 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IndexAction.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IndexAction.java @@ -278,6 +278,18 @@ public class IndexAction extends ActionSupport implements ServletRequestAware,  				Response samlResponse = (Response) messageContext.getInboundMessage(); +				//ckeck InResponseTo matchs requestID  +				if (MiscUtil.isEmpty(authID)) { +					log.info("NO AuthRequestID"); +					return Constants.STRUTS_ERROR; +				} +				 +				if (!authID.equals(samlResponse.getInResponseTo())) { +					log.warn("PVPRequestID does not match PVP2 Assertion ID!"); +					return Constants.STRUTS_ERROR; +					 +				} +				  				Signature sign = samlResponse.getSignature();  				if (sign == null) {  					log.info("Only http POST Requests can be used"); @@ -352,29 +364,9 @@ public class IndexAction extends ActionSupport implements ServletRequestAware,  						saml2assertions = samlResponse.getAssertions();  					} -					 -								 -					if (MiscUtil.isEmpty(authID)) { -						log.info("NO AuthRequestID"); -						return Constants.STRUTS_ERROR; -					} -					 +										  					for (org.opensaml.saml2.core.Assertion saml2assertion : saml2assertions) { -						 -						Subject subject = saml2assertion.getSubject(); -						List<SubjectConfirmation> subjectconformlist = subject.getSubjectConfirmations(); -						for (SubjectConfirmation el : subjectconformlist) { -							if (el.getMethod().equals(SubjectConfirmation.METHOD_BEARER)) { -								SubjectConfirmationData date = el.getSubjectConfirmationData(); -								 -								if (!authID.equals(date.getInResponseTo())) { -									log.warn("PVPRequestID does not match PVP2 Assertion ID!"); -									return Constants.STRUTS_ERROR; -									 -								}		 -							} -						} -												 +					  						Conditions conditions = saml2assertion.getConditions();  						DateTime notbefore = conditions.getNotBefore();  						DateTime notafter = conditions.getNotOnOrAfter(); @@ -383,6 +375,13 @@ public class IndexAction extends ActionSupport implements ServletRequestAware,  							return Constants.STRUTS_ERROR;  						} + +						Subject subject = saml2assertion.getSubject(); +						if (subject == null) { +							log.warn("Assertion has no Subject element"); +							return Constants.STRUTS_ERROR; +							 +						}  						NameID nameID = subject.getNameID();  						if (nameID == null) { diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAGeneralConfigValidation.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAGeneralConfigValidation.java index d3a2241d3..637500c1e 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAGeneralConfigValidation.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAGeneralConfigValidation.java @@ -172,14 +172,29 @@ public class OAGeneralConfigValidation {  		boolean businessservice = form.isBusinessService(); -		 -		if (businessservice) { +        boolean storkservice = form.isStorkService(); + +		if (storkservice) { +          check = form.getStorkSPTargetCountry(); +            if ((check==null)||(check.length() < 1)) { +                log.warn("Stork target country is not known"); +                errors.add(LanguageHelper.getErrorString("validation.general.stork.sptarget")); +            } + +            if (check.length() > 10) { +                log.warn("Incorrect size of Stork target country, too many characters"); +                errors.add(LanguageHelper.getErrorString("validation.general.stork.sptargetsize")); +            } + + + +        } else if (businessservice) {  			//check identification type  			check = form.getIdentificationType();  			if (!form.getIdentificationTypeList().contains(check)) {  				log.info("IdentificationType is not known."); -				errors.add(LanguageHelper.getErrorString("validation.general.identificationtype.valid")); +				errors.add(LanguageHelper.getErrorString("validation.general.stork.sptarget"));  			}  			//check identification number 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..554aa9ff0 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,33 @@ public class OASTORKConfigValidation {  			errors.add(LanguageHelper.getErrorString("validation.stork.qaa.outofrange",  					new Object[] {qaa} ));  		} +		 +		if (oageneral.isVidpEnabled()) {		 +			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.empty")); +					 +				} else { +					if (!oageneral.getAvailableAttributeProviderPlugins().contains(current.getName())) { +						log.info("AttributeProviderPlugin Name is not supported."); +						errors.add(LanguageHelper.getErrorString("validation.stork.ap.name.valid")); +					}				 +				} +				 +				if (MiscUtil.isEmpty(current.getAttributes()) || !current.getAttributes().matches("[a-zA-Z]+(, ?[a-zA-Z]+)*")) { +					log.info("AttributeProviderPlugin attributes are empty or do not match csv format."); +					errors.add(LanguageHelper.getErrorString("validation.stork.ap.attributes.valid")); +				} +			} +			 +		} else { +			oageneral.setAttributeProviderPlugins(null); +		}  		return errors;  	} diff --git a/id/ConfigWebTool/src/main/resources/applicationResources.properties b/id/ConfigWebTool/src/main/resources/applicationResources.properties index 914c4cd62..34d2bc81f 100644 --- a/id/ConfigWebTool/src/main/resources/applicationResources.properties +++ b/id/ConfigWebTool/src/main/resources/applicationResources.properties @@ -5,6 +5,7 @@ config.01=Configfile is not found.  config.02=Configfile is not readable.  config.03=Hibernate Database connector can not be initialized  config.04=OpenSAML (PVP2 Login) can not be initialized +config.05=Configuration file not defined  error.title=Fehler:  error.general.text=W\u00E4hrend der Verarbeitung ist ein interner Fehler auftetreten. Bitte Versuchen Sie es nocheinmal oder kontaktieren Sie den Administrator. @@ -107,7 +108,7 @@ webpages.moaconfig.certificates.trustmanagerrev=TrustManagerRevocationChecking  webpages.moaconfig.certificates.trustCACerts=TrustedCACertificates  webpages.moaconfig.certificates.chainingmode=ChainingMode  webpages.moaconfig.timeout.header=Session TimeOuts -webpages.moaconfig.timeout.assertion=Assertion [sec] +webpages.moaconfig.timeout.assertion=Anmeldedaten [sec]  webpages.moaconfig.timeout.MOASessionCreated=SSO Session authentifiziert [sec]  webpages.moaconfig.timeout.MOASessionUpdated=SSO Session letzter Zugriff [sec]  webpages.moaconfig.moasp.header=MOA-SP Konfiguration @@ -184,7 +185,10 @@ webpages.oaconfig.general.mandate.profiles=Profile  webpages.oaconfig.general.mandate.usemandate=Vollmachten (ja/nein)  webpages.oaconfig.general.friendlyname=Name der Online-Applikation  webpages.oaconfig.general.isbusinessservice=Privatwirtschaftliche Applikation +webpages.oaconfig.general.isstorkservice=Stork Applikation  webpages.oaconfig.general.public.header=Öffentlicher Bereich +webpages.oaconfig.general.stork.header=STORK Bereich +webpages.oaconfig.general.stork.countrycode=Landesvorwahl  webpages.oaconfig.general.target.friendlyname=Bezeichnung des Bereichs (Frei w\u00E4hlbar)  webpages.oaconfig.general.target.admin.checkbox=Anderen Bereich frei definieren  webpages.oaconfig.general.target.admin=Bereich (Frei w\u00E4hlbar) @@ -209,7 +213,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 @@ -239,6 +244,11 @@ webpages.oaconfig.sso.useauthdataframe=Zus\u00E4tzliche Userabfrage  webpages.oaconfig.sso.usesso=Single Sign-On verwenden  webpages.oaconfig.stork.header=Secure idenTity acrOss boRders linKed +webpages.oaconfig.stork.enabledcpeps=aktivierte Zielländer +webpages.oaconfig.stork.attributes.header=angeforderte Attribute +webpages.oaconfig.stork.attributes.used=anfordern? +webpages.oaconfig.stork.attributes.name=Attributname +webpages.oaconfig.stork.attributes.mandatory=obligatorisch?  webpages.oaconfig.stork.usestork=STORK Logon aktivieren  webpages.moaconfig.stork.pepslist=C-PEPS Konfiguration  webpages.moaconfig.stork.newpeps=Neuen PEPS konfigurieren @@ -272,6 +282,12 @@ 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.requireconsent=Zustimmung f\u00FCr das Ausliefern der Attribute vom Benutzer einholen? +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. @@ -395,7 +411,8 @@ validation.general.identificationnumber.fn.valid=Die Firmenbuchnummer hat kein g  validation.general.oaidentifier.empty=Es wurde kein eindeutiger Identifier f\u00FCr die Online-Applikation angegeben.  validation.general.oaidentifier.valid=Der eindeutige Identifier f\u00FCr die Online-Applikation ist keine g\u00FCltige URL.  validation.general.oaidentifier.notunique=Der gew\u00E4hlte eindeutige Identifier ist bereits vorhanden. Eine Eintragung der Online-Applikation ist nicht m\u00F6glich. - +validation.general.stork.sptarget=Der STORK SP-Target ist leer. +validation.general.stork.sptargetsize=Die Definition von STORK SP-Target ist nicht korrekt: zu viele Buchstaben.  validation.general.bkuselection.filename.valid=Der Dateiname des BKU-Selektion Templates enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0}  validation.general.bkuselection.file.valid=Das BKU-Selektion Templates konnte nicht geladen werden.  validation.general.bkuselection.file.selected=Es kann nur EIN BKU-Selektion Template angegeben werden. @@ -410,6 +427,10 @@ 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.empty=Ung\u00FCltiger AttributProvider Name +validation.stork.ap.name.valid=Ung\u00FCltiger AttributProvider Name +validation.stork.ap.attributes.valid=Ung\u00FCltige Attributconfiguration f\u00FCr ein Attribut Provider Plugin. Feld darf nicht leer sein und ist als csv anzugeben.  validation.pvp2.metadataurl.empty=Keine Metadaten URL angegeben.  validation.pvp2.metadataurl.valid=Die Metadaten URL wei\u00DFt kein g\u00FCltiges URL Format auf. @@ -436,4 +457,4 @@ validation.general.form.button.color.front=Die Vordergrundfarbe der BKU-Auswahlb  validation.general.form.appletredirecttarget=Der RedirectTarget beinhaltet einen ung\\u00FCltiten Wert.  validation.general.form.fonttype=Der BKU-Auswahl Schrifttyp enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0}  validation.general.form.applet.width=Die Appleth\u00F6he ist keine g\\u00FCltige Zahl. -validation.general.form.applet.height=Die Appletbreite ist keine g\\u00FCltige Zahl.
\ No newline at end of file +validation.general.form.applet.height=Die Appletbreite ist keine g\\u00FCltige Zahl. diff --git a/id/ConfigWebTool/src/main/resources/applicationResources_en.properties b/id/ConfigWebTool/src/main/resources/applicationResources_en.properties new file mode 100644 index 000000000..c66572969 --- /dev/null +++ b/id/ConfigWebTool/src/main/resources/applicationResources_en.properties @@ -0,0 +1,459 @@ +title=MOA-ID 2.x Configuration Tool + + +config.01=Configfile is not found. +config.02=Configfile is not readable. +config.03=Hibernate Database connector can not be initialized +config.04=OpenSAML (PVP2 Login) can not be initialized +config.05=Configuration file not defined + +error.title=Fehler: +error.general.text=W\u00E4hrend der Verarbeitung ist ein interner Fehler auftetreten. Bitte Versuchen Sie es nocheinmal oder kontaktieren Sie den Administrator. +errors.listOAs.noOA=Es wurden keine Online-Applikationen in der Datenbank gefunden. +errors.edit.oa.oaid=Es wurde keine g\u00FCtige Online-Applikations-ID \u00FCbergeben. +errors.edit.oa.oaid.allowed=Sie besitzen nicht die ben\u00F6tigen Rechte um auf diese Online-Applikation zuzugreifen. +error.oa.pvp2.certificate=Das hinterlegte PVP2 Zertifikat konnte nicht gelesen werden. +error.db.oa.store=Die Konfiguration konnte nicht in der Datenbank gespeichert werden. +errors.notallowed=Sie besitzen nicht die n\u00F6tigen Rechte um diese Funktion zu benutzen. +errors.importexport.nofile=Es wurde keine Datei angegeben. +errors.importexport.legacyimport=Der Importvorgang der Legacy-Konfiguration wurde mit einem Fehler abgebrochen (Fehler={0}). +errors.importexport.export=Die MOA-ID 2.x Konfiguration konnte nicht in ein XML File exportiert werden. (Fehler={0}) +errors.importexport.import=Der Importvorgang der XML Konfiguration wurde mit einem Fehler abgebrochen (Fehler={0}). +errors.importexport.export.noconfig=Die Konfiguration kann nicht exportiert werden da keine MOA-ID Konfiguration vorhanden ist. +errors.edit.user.userid=Es wurde keine g\u00FCtige User ID \u00FCbergeben. +errors.edit.user.save=Der Benutzer konnte nicht in die Datenbank eingetragen werden. +errors.edit.user.notallowed=Das Bearbeiten fremder Benutzereinstellungen ist nur dem Admin erlaubt. +error.login=Der Anmeldevorgang wurde abgebrochen. Bitte Versuchen sie es noch einmal. +error.mail.send=An die angegebene Mailadresse konnte keine Nachticht versendet werden. +error.mail.verification=Der Verifikationsvorgang wurde durch einen internen Fehler unterbrochen. Bitte Versuchen sie es noch einmal. +error.editoa.mailverification=Die Verwaltung von Online-Applikationen ist vor\u00FCbergehend deaktiviert, da die Mailadresse des Benutzeraccounts noch nicht verifiziert wurde. +error.bkuformpreview.notpossible="Die Vorschau konnte nicht generiert werden da ein interner Fehler auftreten ist." +error.oa.oauth.redirecturi=Redirect URL ist keine richtige URL +error.oa.oauth.clientSecret=Client-Secret darf nicht leer sein +error.oa.oauth.keyname=Key-Name darf nicht leer sein +error.oa.oauth.keystore=Keystore darf nicht leer sein und muss eine richtige URL sein. + +mail.userrequest.subject=Accountanforderung MOA-ID 2.x Konfigurationstool + + +webpages.error.header=Es ist ein Fehler aufgetreten +webpages.index.header=Welcome to MOA-ID 2.x Configuration +webpages.index.desciption.head=Um dieses Service nutzen zu k\u00F6nnen m\u00FCssen sie sich einloggen. +webpages.index.login=Login +webpages.index.logout=Logout +webpages.index.login.pvp2=Anmeldung mit B\u00FCrgerkarte oder Handy-Signature +webpages.index.login.notallowed=Entweder sind Benutzername oder Passwort sind nicht korrekt oder der Account wurde noch nicht aktiviert. +webpages.index.username.unkown=Der Benutzer ist nicht bekannt. +webpages.index.username.notactive=Der Benutzer wurde durch den Administrator noch nicht freigeschalten. +webpages.index.password.false=Das Passwort stimmt nicht. + +webpages.inportexport.header=Konfiguration Importieren/Exportieren +webpages.inportexport.success=Die Konfiguration konnte erfolgreich importiert werden. +webpages.inportexport.legacyimport.header=Legacy Konfiguration importieren (MOA-ID < 2.0) +webpages.inportexport.legacyimport.upload=Legacy Konfiguration +webpages.edit.import=Importieren +webpages.edit.export=Exportieren +webpages.inportexport.import.header=MOA-ID 2.x Konfiguration +webpages.inportexport.import.upload=Konfiguration importieren +webpages.inportexport.import.download=Konfiguration exportieren +webpages.inportexport.descripten=ACHTUNG\: Die importierte Konfiguration ersetzt eine aktuell vorhandene Konfiguration vollst\u00E4ndig\! + +webpages.usermanagement.newuser=Neuen Benutzer erstellen +webpages.usermanagement.header=Benutzerverwaltung +webpages.listUsers.list.header=Liste aller vorhandenen Benutzer +webpages.listUsers.list.first=Familien-/Firmenname +webpages.listUsers.list.second=Vorname +webpages.listUsers.list.third=Benutzername +webpages.edituser.header=Benutzerdaten +webpages.edituser.givenname=Vorname +webpages.edituser.familyName=Familienname +webpages.edituser.institut=Organisation +webpages.edituser.phone=Telefonnummer +webpages.edituser.mail=EMail Adresse +webpages.edituser.access.header=Zugangsdaten +webpages.edituser.username=Username +webpages.edituser.password=Password +webpages.edituser.password_second=Kennwort wiederholen +webpages.edituser.bpk=BPK +webpages.edituser.role.header=Rechte und Role +webpages.edituser.active=Benutzer ist aktiviert +webpages.edituser.admin=Benutzer ist Admin +webpages.edit.delete.user=Benutzer l\u00F6schen +webpages.edit.newUser=Neuen Benutzer anfordern +webpages.edituser.isusernamepasswordallowed=Benutzername/Passwort erlauben +webpages.edituser.changemailaddress.verify=Bevor Sie Online-Applikationen verwalten k\u00F6nnen muss Ihre Mailadresse verifzieren werden. Eine entsprechende Mail wurde bereits an Ihr angegebenes Postfach versendet. +webpages.edituser.verify.mail.button=Mailadresse pr\u00FCfen +webpages.edituser.verify.mail.message=Es wurde eine Verifikationsmail an Ihr Postfach versendet + +webpages.mainpage.menu.oa.insert=Neue Applikation anlegen +webpages.mainpage.menu.oa.display=Meine Applikationen +webpages.mainpage.menu.oa.search=Applikation suchen +webpages.mainpage.menu.general.user=Meine Daten +webpages.mainpage.menu.general.importexport=Importieren/Exportieren +webpages.mainpage.menu.general.config.moaid=Allgemeine Konfiguration +webpages.mainpage.menu.general.usermanagement=Benutzerverwaltung +webpages.mainpage.menu.general.adminrequests=Offene Anfragen + +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.defaultbkus.header=Default BKUs +webpages.moaconfig.slrequesttemplates.header=SecurtiyLayer Request Templates +webpages.moaconfig.slrequesttemplates.local=Locale BKU +webpages.moaconfig.slrequesttemplates.handy=Handy BKU +webpages.moaconfig.slrequesttemplates.online=Online BKU +webpages.moaconfig.certificates.header=Zertifikatspr\u00FCfung +webpages.moaconfig.certificates.certstore=CertStoreDirecorty +webpages.moaconfig.certificates.trustmanagerrev=TrustManagerRevocationChecking +webpages.moaconfig.certificates.trustCACerts=TrustedCACertificates +webpages.moaconfig.certificates.chainingmode=ChainingMode +webpages.moaconfig.timeout.header=Session TimeOuts +webpages.moaconfig.timeout.assertion=Assertion [sec] +webpages.moaconfig.timeout.MOASessionCreated=SSO Session authentifiziert [sec] +webpages.moaconfig.timeout.MOASessionUpdated=SSO Session letzter Zugriff [sec] +webpages.moaconfig.moasp.header=MOA-SP Konfiguration +webpages.moaconfig.moasp.idltrustprofile=Personenbindung Trustprofil +webpages.moaconfig.moasp.authtrustprofile=Authentfizierungsblock Trustprofil +webpages.moaconfig.moasp.authblocktransform=Authentfizierungsblock Transformationen +webpages.moaconfig.moasp.url=URL zum MOA-SP Service +webpages.moaconfig.identitylinksigners=IdentityLinkSigners +webpages.moaconfig.services.header=Externe Services +webpages.moaconfig.services.mandates=Online-Vollmachten Service URL +webpages.moaconfig.services.szrgw=SZR Gateway Service URL +webpages.moaconfig.sso.header=Single Sign-On +webpages.moaconfig.sso.PublicUrl=SSO Service URL-Prefix +webpages.moaconfig.sso.FriendlyName=SSO Service Name +webpages.moaconfig.services.sso.Target=SSO Service Target +webpages.moaconfig.services.sso.SpecialText=SSO AuthBlockText +webpages.moaconfig.protocols.header=Protokolle +webpages.moaconfig.protocols.allowed.header=Protokolle aktivieren +webpages.moaconfig.protocols.legacy.header=Legacy Modus aktivieren +webpages.moaconfig.protocols.legacy.saml1=SAML1 +webpages.moaconfig.protocols.legacy.pvp2=PVP2.1 +webpages.moaconfig.protocols.oauth=OpenID Connect +webpages.moaconfig.protocols.saml1.header=SAML1 Konfiguration +webpages.moaconfig.protocols.saml1.sourceID=SourceID +webpages.moaconfig.protocols.pvp2.header=PVP2 Konfiguration +webpages.moaconfig.protocols.pvp2.PublicUrlPrefix=PVP2 Service URL-Prefix +webpages.moaconfig.protocols.pvp2.IssuerName=PVP Service Name +webpages.moaconfig.protocols.pvp2.org.header=Organisation +webpages.moaconfig.protocols.pvp2.org.name=Kurzbezeichnung +webpages.moaconfig.protocols.pvp2.org.displayname=Vollst\u00E4ndiger Name +webpages.moaconfig.protocols.pvp2.org.url=URL der Organisation +webpages.moaconfig.protocols.pvp2.contact.header=Kontaktdaten +webpages.moaconfig.protocols.pvp2.contact.surename=Familienname +webpages.moaconfig.protocols.pvp2.contact.givenname=Vorname +webpages.moaconfig.protocols.pvp2.contact.email=Mailadresse +webpages.moaconfig.protocols.pvp2.contact.company=Unternehmen +webpages.moaconfig.protocols.pvp2.contact.phone=Telefonnummer +webpages.moaconfig.protocols.pvp2.contact.type=Type des Kontakts +webpages.moaconfig.sl.transormations.header=SecurityLayer Transformationen +webpages.moaconfig.sl.transormations.filename=Dateiname +webpages.moaconfig.sl.transormations.upload=Neue Transformation hochladen + +webpages.listOAs.list.first=Eindeutige Kennung +webpages.listOAs.list.second=Name der Online-Applikation + +webpages.searchoa.header=Online-Applikation suchen +webpages.searchoa.search.friendlyname=Name der Online-Applikation +webpages.searchoa.butten.search=Suchen + +webpages.oaconfig.header=Konfiguration der Onlineapplikation +webpages.oaconfig.general.isActive=Online-Applikation ist aktiviert +webpages.oaconfig.general.bku.header=BKU Konfiguration +webpages.oaconfig.general.bku.local=Locale BKU +webpages.oaconfig.general.bku.online=Online BKU +webpages.oaconfig.general.bku.handy=Handy BKU +webpages.oaconfig.general.bku.slversion=SecurityLayer Version +webpages.oaconfig.general.bku.keyboxidentifier=KeyBoxIdentifier +webpages.oaconfig.general.bku.legacy=SecurityLayerTemplates (Legacy Request) +webpages.oaconfig.general.bku.sltemplate.first=SecurityLayer Template +webpages.oaconfig.general.bku.sltemplate.second=SecurityLayer Template (WhiteList) +webpages.oaconfig.general.bku.sltemplate.third=SecurityLayer Template (WhiteList) + +webpages.oaconfig.general.bku.delete=L\u00F6schen +webpages.oaconfig.general.bku.bkuselection.header=BKU-Selection Template +webpages.oaconfig.general.bku.bkuselection.filename=Dateiname +webpages.oaconfig.general.bku.bkuselection.upload=Neues Template hochladen +webpages.oaconfig.general.bku.sendassertion.header=Send-Assertion Template +webpages.oaconfig.general.bku.sendassertion.filename=Dateiname +webpages.oaconfig.general.bku.sendassertion.upload=Neues Template hochladen + +webpages.oaconfig.general.identification=Eindeutiger Identifikatior (PublicURLPrefix) +webpages.oaconfig.general.mandate.header=Vollmachten +webpages.oaconfig.general.mandate.profiles=Profile +webpages.oaconfig.general.mandate.usemandate=Vollmachten (ja/nein) +webpages.oaconfig.general.friendlyname=Name der Online-Applikation +webpages.oaconfig.general.isbusinessservice=Privatwirtschaftliche Applikation +webpages.oaconfig.general.isstorkservice=Stork Applikation +webpages.oaconfig.general.public.header=Öffentlicher Bereich +webpages.oaconfig.general.stork.header=STORK Bereich +webpages.oaconfig.general.stork.countrycode=Landesvorwahl +webpages.oaconfig.general.target.friendlyname=Bezeichnung des Bereichs (Frei w\u00E4hlbar) +webpages.oaconfig.general.target.admin.checkbox=Anderen Bereich frei definieren +webpages.oaconfig.general.target.admin=Bereich (Frei w\u00E4hlbar) +webpages.oaconfig.general.target.friendlyname.disabled=Bezeichnung des Bereichs (vom Administrator eingestellt) +webpages.oaconfig.general.target.admin.disabled=Bereich (vom Administrator eingestellt) +webpages.oaconfig.general.target=Bereich (Target) +webpages.oaconfig.general.target.subsector=Sub-Bereich +webpages.oaconfig.general.target.subsector.checkbox=Target verfeinern +webpages.oaconfig.general.business.header=Privatwirtschaftlicher Bereich +webpages.oaconfig.general.business.value=Identifikationsnummer +webpages.oaconfig.general.business.type=Type der Identifikationsnummer +webpages.oaconfig.general.aditional.header=Zusätzliche allgemeine Einstellungen +webpages.oaconfig.general.aditional.authblocktext=AuthblockText +webpages.oaconfig.general.aditional.iframe=B\u00FCrgerkartenauswahl im IFrame +webpages.oaconfig.general.aditional.useUTC=UTC Zeit verwenden +webpages.oaconfig.general.aditional.calculateHPI="TODO!" +webpages.oaconfig.general.isHideBPKAuthBlock=bPK/wbPK im AuthBlock ausblenden + +webpages.oaconfig.menu.saml1.show=SAML1 Konfiguration einblenden +webpages.oaconfig.menu.saml1.hidden=SAML1 Konfiguration ausblenden +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 + +webpages.oaconfig.protocols.header=Authentifizierungsprotokolle + +webpages.oaconfig.general.BKUSelection.button.show=Login-Fenster Konfiguration einblenden +webpages.oaconfig.general.BKUSelection.button.hidden=Login-Fenster Konfiguration ausblenden +webpages.oaconfig.general.BKUSelection.header=Formularkonfiguration +webpages.oaconfig.general.BKUSelection.isOnlyMandateLoginAllowed=Nur Vollmachtenanmeldung erlauben +webpages.oaconfig.general.BKUSelection.backgroundcolor=Hintergrundfarbe der BKU-Auswahl +webpages.oaconfig.general.BKUSelection.frontcolor=Vordergrundfarbe der BKU-Auswahl +webpages.oaconfig.general.BKUSelection.header.backgroundcolor=Hintergrundfarbe der \u00DCberschrift +webpages.oaconfig.general.BKUSelection.header.frontcolor=Vordergrundfarbe der \u00DCberschrift +webpages.oaconfig.general.BKUSelection.header.text=\u00DCberschriftstext +webpages.oaconfig.general.BKUSelection.header.button.background=Hintergrundfarbe der Schaltfl\u00E4chen +webpages.oaconfig.general.BKUSelection.header.button.background.focus=Hintergrundfarbe der Schaltfl\u00E4chen (Focus) +webpages.oaconfig.general.BKUSelection.header.button.front=Vordergrundfarbe der Schaltfl\u00E4chen +webpages.oaconfig.general.BKUSelection.redirectTarget=Targetparameter +webpages.oaconfig.general.BKUSelection.fonttype=Formularschrifttyp +webpages.oaconfig.general.BKUSelection.fonttype.list=Formularschrifttypen +webpages.oaconfig.general.BKUSelection.header.applet.height=Appleth\u00F6he +webpages.oaconfig.general.BKUSelection.header.applet.width=Appletbreite + +webpages.oaconfig.sso.header=Single Sign-On +webpages.oaconfig.sso.singlelogouturl=Single Log-Out URL +webpages.oaconfig.sso.useauthdataframe=Zus\u00E4tzliche Userabfrage +webpages.oaconfig.sso.usesso=Single Sign-On verwenden + +webpages.oaconfig.stork.header=Secure idenTity acrOss boRders linKed +webpages.oaconfig.stork.usestork=STORK Logon aktivieren +webpages.oaconfig.stork.attributes.header=angeforderte Attribute +webpages.oaconfig.stork.attributes.used=anfordern? +webpages.oaconfig.stork.attributes.name=Attributname +webpages.oaconfig.stork.attributes.mandatory=obligatorisch? +webpages.oaconfig.stork.enabledcpeps=aktivierte Zielländer +webpages.moaconfig.stork.pepslist=C-PEPS Konfiguration +webpages.moaconfig.stork.newpeps=Neuen PEPS konfigurieren +webpages.moaconfig.stork.removepeps=l\u00F6schen +webpages.moaconfig.stork.qaa.default=Standard QAA-Level ausw\u00E4hlen +webpages.moaconfig.stork.attributes.heading=Attributkonfiguration +webpages.moaconfig.stork.attributes.new=Neues Attribut hinzuf\u00FCgen +webpages.moaconfig.stork.attributes.heading.name=Attributname +webpages.moaconfig.stork.attributes.heading.mandatory=zwingend +webpages.moaconfig.stork.attributes.remove=l\u00F6schen +webpages.moaconfig.stork.qaa=Mindest-QAA-Level f\u00FCr diese OA ausw\u00E4hlen + +webpages.oaconfig.protocols.saml1.header=SAML1 Konfiguration +webpages.oaconfig.saml1.isActice=SAML1 aktivieren +webpages.oaconfig.saml1.provideStammZahl=Stammzahl \u00FCbertragen +webpages.oaconfig.saml1.provideAuthBlock=Authentifizierungsblock \u00FCbertragen +webpages.oaconfig.saml1.provideIdentityLink=Personenbindung \u00FCbertragen +webpages.oaconfig.saml1.provideCertificate=Zertifikat \u00FCbertragen +webpages.oaconfig.saml1.provideFullMandateData=Vollst\u00E4ndige Vollmacht \u00FCbertragen +webpages.oaconfig.saml1.useCondition=Usecondition +webpages.oaconfig.saml1.conditionLength=ConditionLength + +webpages.oaconfig.protocols.pvp2.header=PVP2.x Konfiguration +webpages.oaconfig.pvp2.reload=PVP2.x konfiguration neu laden +webpages.oaconfig.pvp2.metaDataURL=URL zu den Metadaten +webpages.oaconfig.pvp2.certifcate=Zertifikat hochladen +webpages.oaconfig.pvp2.certifcate.info=Infos zum Zertifikat + +webpages.oaconfig.protocols.oauth20.header=OAuth 2.0 Konfiguration +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.requireconsent=Zustimmung f\u00FCr das Ausliefern der Attribute vom Benutzer einholen? +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. +webpages.oaconfig.success.admin=Die Online-Applikation {0} konnte erfolgreich gespeichert werden. Es ist jedoch eine Aktivierung durch den Administrator erforderlich. +webpages.oaconfig.cancle=Die Bearbeitung der Online-Applikation {0} wurde abgebrochen. + +webpages.oaconfig.delete.message=Die Online-Applikation {0} wurde erfolgreich gel\u00F6scht. +webpages.oaconfig.delete.error=Die Online-Applikation {0} konnte nicht gel\u00F6scht werden. + +webpages.edit.save=\u00C4nderungen Speichern +webpages.edit.back=Zur\u00FCck und \u00C4nderungen verwerfen +webpages.edit.delete=Online-Applikation l\u00F6schen + +webpages.header.info=Sie sind angemeldet als: +webpages.header.lastlogin=Letzte Anmeldung am: + +webpages.openadminrequests.header=Offene Antr\u00E4ge +webpages.openadminrequests.users.header=Benutzeraccounts +webpages.openadminrequests.oas.header=Online-Applikationen + + +validation.newuser.mailaddress=Die Validierung der Mailadresse konnte erfolgreich durchgef\u00FChrt werden. + +validation.edituser.familyname.empty=Der Familienname ist leer. +validation.edituser.familyname.valid=Der Familienname enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.edituser.givenname.empty=Der Vorname ist leer. +validation.edituser.givenname.valid=Der Vorname enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.edituser.institut.empty=Die Organisation ist leer. +validation.edituser.institut.valid=Die Organisation enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.edituser.mail.empty=Die EMail Adresse ist leer. +validation.edituser.mail.valid=Die EMail Adresse hat kein g\u00FCltiges Format. +validation.edituser.phone.empty=Die Telefonnummer ist leer. +validation.edituser.phone.valid=Die Telefonnummer hat kein g\u00FCltiges Form +validation.edituser.username.empty=Der Benutzername ist leer. +validation.edituser.username.valid=Der Benutzername enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.edituser.username.duplicate=Der Benutzername ist bereits vergeben +validation.edituser.password.empty=Das Passwort ist leer. +validation.edituser.password.valid=Das Passwort konnte nicht in einen g\u00FCltigen Schl\u00FCssel transferiert werden. +validation.edituser.password.equal=Die Passw\u00F6rter sind nicht identisch. +validation.edituser.bpk.valid=Die BPK enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} + +validation.general.SAML1SourceID=Die SAML1SourceID enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.publicURLprefix.empty=Public URL Prefix Feld ist leer. +validation.general.publicURLprefix.valid=Public URL Prefix hat kein g\u00F6ltiges Format. +validation.general.certStoreDirectory.empty=CertStoreDirectory Feld ist leer. +validation.general.certStoreDirectory.valid=Das CertStoreDirectory Feld enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.Defaultchainigmode.empty=Es wurde kein DefaultChainingMode gew\u00E4hlt. +validation.general.Defaultchainigmode.valid=Der DefaultChainingMode enth\u00E4lt einen ung\u00F6ltigen Wert. +validation.general.IdentityLinkSigners.empty=Es wurde kein IdentityLinkSigner angegeben +validation.general.IdentityLinkSigners.valid=Der IdentityLinkSigner in der Zeile {0} enth\u00E4lt ein ung\u00FCltiges Zeichen. Folgende Zeichen sind nicht erlaubt\: {1} +validation.general.mandateservice.valid=Die URL zum Online-Vollmachten Service hat kein g\u00F6ltiges Format. +validation.general.moasp.auth.transformation.empty=Die Transformation f\u00F6r den Authentfizierungsblock ist leer. +validation.general.moasp.auth.transformation.valid=Die Transformation f\u00F6r den Authentfizierungsblock  in der Zeile {0} enth\u00E4lt ein ung\u00FCltiges Zeichen. Folgende Zeichen sind nicht erlaubt\: {1} +validation.general.moasp.auth.trustprofile.empty=Das TrustProfile zur Pr\u00F6fung des Authentfizierungsblock ist leer. +validation.general.moasp.auth.trustprofile.valid=Das TrustProfile zur Pr\u00F6fung des Authentfizierungsblock enth\u00E4lt ein ung\u00FCltiges Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.moasp.idl.trustprofile.empty=Das TrustProfile zur Pr\u00F6fung der Personenbindung ist leer. +validation.general.moasp.idl.trustprofile.valid=Das TrustProfile zur Pr\u00F6fung der Personenbindung  enth\u00E4lt ein ung\u00FCltiges Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.moaspss.url.valid=Die URL zum MOA-SP/SS Service hat kein g\u00F6ltiges Format. +validation.general.protocol.pvp2.issuername.valid=PVP2\: Service Name enth\u00E4lt ein ung\u00FCltiges Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.protocol.pvp2.org.displayname.valid=PVP2 Organisation\: Vollst\u00E4ndiger Name enth\u00E4lt ein ung\u00FCltiges Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.protocol.pvp2.org.name.valid=PVP2 Organisation\: Kurzbezeichnung enth\u00E4lt ein ung\u00FCltiges Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.protocol.pvp2.org.url.valid=PVP2 Organisation\: URL hat kein g\u00F6ltiges Format. +validation.general.protocol.pvp2.serviceurl.valid=PVP2\: Service URL-Prefix hat kein g\u00F6ltiges Format. +validation.general.protocol.pvp2.contact.company.valid=PVP2 Kontaktdaten\: Der Firmenname enth\u00E4lt ein ung\u00FCltiges Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.protocol.pvp2.contact.givenname.valid=PVP2 Kontaktdaten\: Der Familienname enth\u00E4lt ein ung\u00FCltiges Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.protocol.pvp2.contact.surename.valid=PVP2 Kontaktdaten\: Der Vorname enth\u00E4lt ein ung\u00FCltiges Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.protocol.pvp2.contact.type.valid=PVP2 Kontaktdaten: Der angegebene Kontakttyp existiert nicht. +validation.general.protocol.pvp2.contact.mail.valid=PVP2 Kontaktdaten\: Die EMail Adresse ist nicht g\u00FCltig. +validation.general.protocol.pvp2.contact.phone.valid=PVP2 Kontaktdaten\: Die Telefonnummer ist nicht g\u00FCltig. +validation.general.timeouts.assertion.valid=Das Feld Assertion TimeOut hat keinen g\u00F6ltigen Wert. +validation.general.timeouts.moasessioncreated.valid=Das Feld MOASessionCreated TimeOut hat keinen g\u00FCltigen Wert. +validation.general.timeouts.moasessionupdated.valid=Das Feld MOASessionUpdated TimeOut hat keinen g\u00FCltigen Wert. + +validation.general.slrequest.handy.empty=Die URL zum SecurityLayer Template f\u00F6r die Handy-BKU ist leer. +validation.general.slrequest.handy.valid=Die URL zum SecurityLayer Template f\u00F6r die Handy-BKU hat kein g\u00F6ltiges Format. +validation.general.slrequest.local.empty=Die URL zum SecurityLayer Template f\u00F6r die locale BKU ist leer. +validation.general.slrequest.local.valid=Die URL zum SecurityLayer Template f\u00F6r die locale BKU hat kein g\u00F6ltiges Format. +validation.general.slrequest.online.empty=Die URL zum SecurityLayer Template f\u00F6r die Online-BKU ist leer. +validation.general.slrequest.online.valid=Die URL zum SecurityLayer Template f\u00F6r die Online-BKU hat kein g\u00F6ltiges Format. +validation.general.sso.friendlyname.valid=Der SSO Service Name enth\u00E4lt ein ung\u00FCltiges Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.sso.identificationnumber.valid=Die SSO IdentificationNumber enth\u00E4lt ein ung\u00FCltiges Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.sso.publicurl.valid=Der SSO Service URL-Prefix hat kein g\u00F6ltiges Format. +validation.general.sso.specialauthtext.valid=Der SSO AuthBlockText enth\u00E4lt ein ung\u00FCltiges Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.sso.target.empty=Das SSO Target Feld ist leer. +validation.general.sso.target.valid=Das SSO Target Feld enth\u00E4lt ein ung\u00FCltiges Target. +validation.general.szrgw.url.valid=Die URL des SZR Gateways hat kein g\u00F6ltiges Format. +validation.general.trustedcacerts.empty=Das Feld TrustedCACertificates ist leer. +validation.general.trustedcacerts.valid=Das Feld TrustedCACertificates enth\u00E4lt ein ung\u00FCltiges Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.slrequest.filename.valid=Der Dateiname der angegebenen SecurtityLayer Transformation enth\u00E4lt ein ung\u00FCltiges Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.slrequest.file.valid=Die angegebenen SecurtityLayer Transformation konnte nicht geladen werden. + +validation.general.aditionalauthblocktext=Der Zusatztext f\u00FCr den AuthBlock enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.bku.handy.empty=Die URL f\u00FCr die Handy-BKU ist leer. +validation.general.bku.handy.valid=Die URL f\u00FCr die Handy-BKU hat kein g\u00FCltiges Format. +validation.general.bku.local.empty=Die URL f\u00FCr die lokale BKU ist leer. +validation.general.bku.local.valid=Die URL f\u00FCr die locale BKU hat kein g\u00FCltiges Format. +validation.general.bku.online.empty=Die URL f\u00FCr die Online-BKU ist leer. +validation.general.bku.online.valid=Die URL f\u00FCr die Online-BKU hat kein g\u00FCltiges Format. +validation.general.oafriendlyname.empty=Es wurde kein Name f\u00FCr die Online-Applikation angegeben. +validation.general.oafriendlyname.valid=Der Name der Online-Applikation enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.keyboxidentifier.empty=Es wurde kein KeyBoxIdentifier ausgew\u00E4hlt. +validation.general.keyboxidentifier.valid=Der KeyBoxIdentifier hat ein ung\u00FCltiges Format. +validation.general.sltemplates.empty=Wenn der Legacymodus verwendet werden soll muss zumindest ein SecurityLayer Template angegeben werden. +validation.general.sltemplate1.valid=Die erste SecurityLayer Template URL hat kein g\u00FCltiges Format. +validation.general.sltemplate2.valid=Die zweite SecurityLayer Template URL hat kein g\u00FCltiges Format. +validation.general.sltemplate3.valid=Die dritte SecurityLayer Template URL hat kein g\u00FCltiges Format. +validation.general.mandate.profiles=Die Liste von Vollmachtsprofilen enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.mandate.usemandate=Die Konfiguration von Vollmachtsprofile ist nur mit aktivierten Vollmachten m\u00F6glich. +validation.general.target.empty=Der Target f\u00FCr die Online-Applikation ist leer. +validation.general.target.valid=Der Target f\u00FCr die Online-Applikation hat kein g\u00FCltiges Format. +validation.general.target.subsector.valid=Der Target-Subsektor hat kein g\u00FCltiges Format. +validation.general.target.admin.valid=Der Admin-Target f\u00FCr die Online-Applikation hat kein g\u00FCltiges Format. +validation.general.target.publicserviceurl=Die Domain des eindeutigen Identifiers f\u00FCr die Online-Applikation erlaubt nur Applikationen aus dem privatwirtschaftlichen Bereich. +validation.general.slversion=Die SecurtiyLayer Version ist kein Zahlenformat. +validation.general.slversion.business=Im privatwirtschaftlichen Bereich muss die SecurityLayerversion mindestes 1.2 betragen. Die SLVersion wurde auf 1.2 ge\u00E4ndert. +validation.general.targetfriendlyname=Der Name des Bereichs (Target) enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.identificationtype.valid=Der Identifikationstype wird nicht unterst\u00FCtzt. +validation.general.identificationnumber.empty=Im privatwirtschaftlichen Bereich ist eine Identifikationsnummer erforderlich. +validation.general.identificationnumber.valid=Die Identifikationsnummer f\u00FCr den privatwirtschaftlichen Bereich enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.identificationnumber.fn.valid=Die Firmenbuchnummer hat kein g\u00FCltiges Format. +validation.general.oaidentifier.empty=Es wurde kein eindeutiger Identifier f\u00FCr die Online-Applikation angegeben. +validation.general.oaidentifier.valid=Der eindeutige Identifier f\u00FCr die Online-Applikation ist keine g\u00FCltige URL. +validation.general.oaidentifier.notunique=Der gew\u00E4hlte eindeutige Identifier ist bereits vorhanden. Eine Eintragung der Online-Applikation ist nicht m\u00F6glich. +validation.general.stork.sptarget=Der STORK SP-Target ist leer. +validation.general.stork.sptargetsize=Die Definition von STORK SP-Target ist nicht korrekt: zu viele Buchstaben. +validation.general.bkuselection.filename.valid=Der Dateiname des BKU-Selektion Templates enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.bkuselection.file.valid=Das BKU-Selektion Templates konnte nicht geladen werden. +validation.general.bkuselection.file.selected=Es kann nur EIN BKU-Selektion Template angegeben werden. +validation.general.sendassertion.filename.valid=Der Dateiname des Send-Assertion Templates enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.sendassertion.file.valid=Das Send-Assertion Templates konnte nicht geladen werden. +validation.general.sendassertion.file.selected=Es kann nur EIN Send-Assertion Template angegeben werden. + + +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.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.stork.ap.attributes.valid=Ung\u00FCltige Attributconfiguration f\u00FCr ein Attribut Provider Plugin. Feld darf nicht leer sein und ist als csv anzugeben. + +validation.pvp2.metadataurl.empty=Keine Metadaten URL angegeben. +validation.pvp2.metadataurl.valid=Die Metadaten URL wei\u00DFt kein g\u00FCltiges URL Format auf. +validation.pvp2.metadataurl.read=Unter der angegebenen Metadaten URL konnten keine Informationen abgerufen werden. +validation.pvp2.metadata.verify=Die Metadaten konnten nicht mit dem angegebenen Zertifikat verifziert werden. +validation.pvp2.certificate.format=Das angegebene PVP2 Zertifikat wei\u00DFt kein g\u00FCltiges Format auf. +validation.pvp2.certificate.notfound=Kein PVP2 Zertifikat eingef\u00FCgt. + +validation.sso.logouturl.empty=Eine URL zum Single Log-Out Service ist erforderlich. +validation.sso.logouturl.valid=Die URL zum Single Log-Out Service wei\u00DFt kein g\u00FCltiges Format auf. + +validation.saml1.providestammzahl=ProvideStammZahl kann nicht mit Applikationen aus dem privatwirtschaftlichen Bereich kombiniert werden. + +validation.general.bkuselection.specialfeatures.valid=Die speziellen Einstellungen f\u00FCr die BKU Auswahl (Vollmachtsanmeldung ausblenden / zwingend voraussetzen) k\u00F6nnen nicht in Kombination mit SSO verwendet werden. +validation.general.bkuselection.specialfeatures.combination=Eine zwingend erforderliche Vollmachtenanmeldung in Kombination mit einer ausgeblendeten Vollmachtenauswahlcheckbox ist nicht m\u00F6glich. +validation.general.form.color.background=Die Hintergrundfarbe f\\u00FCr die BKU Auswahl enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\\#FFFFFF) +validation.general.form.color.front=Die Vordergrundfarbe f\\u00FCr die BKU Auswahl enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\\#FFFFFF) +validation.general.form.header.color.back=Die Hintergrundfarbe der BKU-Auswahl\\u00FCberschrift enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\\#FFFFFF) +validation.general.form.header.color.front=Die Vordergrundfarbe der BKU-Auswahl\\u00FCberschrift enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\\#FFFFFF) +validation.general.form.header.text=Die BKU-Auswahl\\u00FCberschrift enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.form.button.color.back.focus=Die Hintergrundfarbe f\\u00FCr Focus der BKU-Auswahlbuttons enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\\#FFFFFF) +validation.general.form.button.color.back=Die Hintergrundfarbe der BKU-Auswahlbuttons enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\\#FFFFFF) +validation.general.form.button.color.front=Die Vordergrundfarbe der BKU-Auswahlbuttons enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\\#FFFFFF) +validation.general.form.appletredirecttarget=Der RedirectTarget beinhaltet einen ung\\u00FCltiten Wert. +validation.general.form.fonttype=Der BKU-Auswahl Schrifttyp enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0} +validation.general.form.applet.width=Die Appleth\u00F6he ist keine g\\u00FCltige Zahl. +validation.general.form.applet.height=Die Appletbreite ist keine g\\u00FCltige Zahl. diff --git a/id/ConfigWebTool/src/main/webapp/css/index.css b/id/ConfigWebTool/src/main/webapp/css/index.css index e3d2763c2..4f497faaa 100644 --- a/id/ConfigWebTool/src/main/webapp/css/index.css +++ b/id/ConfigWebTool/src/main/webapp/css/index.css @@ -183,6 +183,11 @@ body {     margin-left: 10px;  } +.oa_protocol_area >h5 { +	clear: both; +  margin-left: 10px; +  padding-top: 10px; +}  .oa_config_block {  	padding-left: 15px; @@ -218,6 +223,12 @@ body {  		padding-top: 25px;  } +.oa_config_block h4 { +		clear: both; +		padding-top: 20px; +		margin-bottom: 10px; +} +  #loadOA_webpages_oaconfig_pvp2_certifcate_info{  	width: 100%;  } diff --git a/id/ConfigWebTool/src/main/webapp/js/common.js b/id/ConfigWebTool/src/main/webapp/js/common.js index 384e40509..d31a65d87 100644 --- a/id/ConfigWebTool/src/main/webapp/js/common.js +++ b/id/ConfigWebTool/src/main/webapp/js/common.js @@ -22,17 +22,33 @@   *******************************************************************************/  function oaBusinessService() {  	if ($('#OAisbusinessservice').attr('checked') == 'checked') { -		 -		$('#oa_config_businessservice').css('display', "block"); +        $('#OAisstorkservice').attr('checked',false); +        $('#oa_config_storkservice').css('display', "none"); +        $('#oa_config_businessservice').css('display', "block");  		$('#oa_config_publicservice').css('display', "none");  	} else { -		 -		$('#oa_config_businessservice').css('display', "none"); +        $('#oa_config_storkservice').css('display', "none"); +        $('#oa_config_businessservice').css('display', "none");  		$('#oa_config_publicservice').css('display', "block");  	}		  } +function oaStorkService() { +    if ($('#OAisstorkservice').attr('checked') == 'checked') { +        $('#OAisbusinessservice').attr('checked',false); +        $('#oa_config_storkservice').css('display', "block"); +        $('#oa_config_businessservice').css('display', "none"); +        $('#oa_config_publicservice').css('display', "none"); + +    } else { +        $('#oa_config_storkservice').css('display', "none"); +        $('#oa_config_businessservice').css('display', "none"); +        $('#oa_config_publicservice').css('display', "block"); + +    } +} +  function oaSSOService() {  	if ($('#OAuseSSO').attr('checked') == 'checked') { @@ -45,12 +61,23 @@ function oaSSOService() {  	}  }  function oaStork() { -	if ($('#OAuseSTORKLogon').attr('checked') == 'checked') { +	if ($('#OAuseSTORKLogon').is(':checked')) {  		$('#stork_block').css('display', "block");  	} else {  		$('#stork_block').css('display', "none");  	}  } +function oaVIDP() { +	if ($('#oa_vidp_area').css('display') == "none") { +		$('#oa_vidp_area').css('display', "block"); +		$('#button_vidp_show').css('display', "none"); +		$('#button_vidp_hidden').css('display', "block"); +	} else { +		$('#oa_vidp_area').css('display', "none"); +		$('#button_vidp_show').css('display', "block"); +		$('#button_vidp_hidden').css('display', "none"); +	} +}  function oaSAML1() {  	if ($('#oa_saml1_area').css('display') == "block") {  		$('#oa_saml1_area').css('display', "none"); @@ -187,12 +214,16 @@ function userOnLoad() {  	return true;  }  function oaOnLoad() { +    oaStorkService();  	oaBusinessService();  	oaSSOService();  	oaLegacyService(); +	oaStork();  	AdminTarget();  	oaTargetSubSector(); +	oaVIDP(); +	  	$(".colorfield").each(  		function() {  			$(this).ColorPicker({ @@ -210,7 +241,12 @@ function oaOnLoad() {  function newPeps() {  	var target = $(document.getElementById("stork_pepslist").getElementsByTagName("tr")).last()[0];  	var clone = target.cloneNode(true); -	var lastindex = parseInt(clone.innerHTML.match(/name="storkconfig.cpepslist\[(\d)/)[1]); +	try { +        var lastindex = parseInt(clone.innerHTML.match(/name="storkconfig.cpepslist\[(\d)/)[1]); +    } catch (err) { + +        var lastindex = 1; +    }  	var nextindex = lastindex + 1;  	clone.innerHTML = clone.innerHTML.replace(/name="storkconfig.cpepslist\[\d/g, 'name="storkconfig.cpepslist[' + nextindex);  	clone.innerHTML = clone.innerHTML.replace(/(.*" value=").*?(".*)/g, '$1$2'); @@ -224,4 +260,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/editMOAConfig.jsp b/id/ConfigWebTool/src/main/webapp/jsp/editMOAConfig.jsp index 9f89f9a9d..945d4b0b5 100644 --- a/id/ConfigWebTool/src/main/webapp/jsp/editMOAConfig.jsp +++ b/id/ConfigWebTool/src/main/webapp/jsp/editMOAConfig.jsp @@ -248,14 +248,19 @@  								key="webpages.moaconfig.stork.qaa.default"  								labelposition="left" />  							<h4><%=LanguageHelper.getGUIString("webpages.moaconfig.stork.pepslist", request) %></h4> -							<table id="stork_pepslist"> +                            <table id="stork_pepslist">  								<tr><th>Country Shortcode</th><th>PEPS URL</th>  								<s:iterator value="storkconfig.cpepslist" status="stat">  								  <tr><td><s:textfield name="storkconfig.cpepslist[%{#stat.index}].countryCode" value="%{countryCode}" cssClass="textfield_short"/></td>  								      <td><s:textfield name="storkconfig.cpepslist[%{#stat.index}].URL" value="%{URL}" cssClass="textfield_long"/></td>  								      <td><input type="button" value="<%=LanguageHelper.getGUIString("webpages.moaconfig.stork.removepeps", request) %>" onclick='this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);'/></td></tr>  								</s:iterator> -							</table> +                                <s:if test="%{storkconfig.cpepslist == null}"> +                                    <tr><td><s:textfield name="storkconfig.cpepslist[0].countryCode" value="CC" cssClass="textfield_short"/></td> +                                        <td><s:textfield name="storkconfig.cpepslist[0].URL" value="http://" cssClass="textfield_long"/></td> +                                        <td><input type="button" value="<%=LanguageHelper.getGUIString("webpages.moaconfig.stork.removepeps", request) %>" onclick='this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);'/></td></tr> +                                </s:if> +                            </table>  							<input type="button" value="<%=LanguageHelper.getGUIString("webpages.moaconfig.stork.newpeps", request) %>" onclick='newPeps();' />  							<h4><%=LanguageHelper.getGUIString("webpages.moaconfig.stork.attributes.heading", request) %></h4>  							<table id="stork_attributelist"> diff --git a/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp b/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp index e182fd805..d5396d06e 100644 --- a/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp +++ b/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp @@ -59,16 +59,29 @@  							key="webpages.oaconfig.general.friendlyname"  							cssClass="textfield_long">  						</s:textfield> -												 -						<s:checkbox name="generalOA.businessService"  -							value="%{generalOA.businessService}" -							labelposition="left" -							key="webpages.oaconfig.general.isbusinessservice" -							cssClass="checkbox" -							onclick="oaBusinessService();" -							id="OAisbusinessservice" -							disabled="%{isOnlyBusinessService()}"> -						</s:checkbox> + +                        <s:checkbox name="generalOA.businessService" +                                    value="%{generalOA.businessService}" +                                    labelposition="left" +                                    key="webpages.oaconfig.general.isbusinessservice" +                                    cssClass="checkbox" +                                    onclick="oaBusinessService();" +                                    id="OAisbusinessservice" +                                    > +                        </s:checkbox> + +						<s:if test="authUser.isAdmin()"> +                        <s:checkbox name="generalOA.storkService" +                                    value="%{generalOA.storkService}" +                                    labelposition="left" +                                    key="webpages.oaconfig.general.isstorkservice" +                                    cssClass="checkbox" +                                    onclick="oaStorkService();" +                                    id="OAisstorkservice" +                                    disabled="%{isOnlyStorkService()}"> +                        </s:checkbox> +            </s:if> +  					</div>   					<div id="oa_config_businessservice" class="oa_config_block"> @@ -89,6 +102,19 @@  							disabled="%{isDeaktivededBusinessService()}">  						</s:textfield>		  					</div> + +					<s:if test="authUser.isAdmin()"> +                    <div id="oa_config_storkservice" class="oa_config_block"> +                        <h3><%=LanguageHelper.getGUIString("webpages.oaconfig.general.stork.header", request) %></h3> +                        <s:textfield name="generalOA.storkSPTargetCountry" +                                     labelposition="left" +                                     key="webpages.oaconfig.general.stork.countrycode" +                                     value="%{generalOA.storkSPTargetCountry}" +                                     cssClass="textfield_middle" +                                     disabled="%{isDeactivatedStorkService()}"> +                        </s:textfield> +                    </div> +          </s:if>  					<s:if test="!isOnlyBusinessService()">  						<div id="oa_config_publicservice" class="oa_config_block"> @@ -362,9 +388,11 @@  								name="storkOA.qaa"  								key="webpages.moaconfig.stork.qaa"  								labelposition="left" /> -							<h4>Attributes</h4> +							<h4><%=LanguageHelper.getGUIString("webpages.oaconfig.stork.attributes.header", request) %></h4>  							<table> -								<tr><th>verwendet</th><th>Attributname</th><th>mandatory</th></tr> +								<tr><th><%=LanguageHelper.getGUIString("webpages.oaconfig.stork.attributes.used", request) %></th> +								    <th><%=LanguageHelper.getGUIString("webpages.oaconfig.stork.attributes.name", request) %></th> +								    <th><%=LanguageHelper.getGUIString("webpages.oaconfig.stork.attributes.mandatory", request) %></th></tr>  								<s:iterator value="storkOA.helperAttributes" status="stat">  									<tr><td><s:checkbox name="storkOA.helperAttributes[%{#stat.index}].used" value="%{used}" disabled="%{readOnly}" /></td>  										<td><s:property value="%{name}" /><s:hidden name="storkOA.helperAttributes[%{#stat.index}].name" value="%{name}" /></td> @@ -384,6 +412,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 +531,36 @@  								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> +							<p><s:checkbox name="storkOA.requireConsent"  +								value="%{storkOA.requireConsent}" +								labelposition="left" +								key="webpages.oaconfig.vidp.requireconsent" +								cssClass="checkbox" +								id="OArequireConsent" /></p> +							<h5><%=LanguageHelper.getGUIString("webpages.oaconfig.vidp.ap.list", request) %></h5> +							<table id="stork_aplist"> +								<tr><th>AP Plugin</th><th>URL</th><th>Attribute (CSV)</th></tr> +								<s:iterator value="storkOA.attributeProviderPlugins" status="stat"> +								  <tr><td><s:select name="storkOA.attributeProviderPlugins[%{#stat.index}].name" value="%{name}" list="%{storkOA.availableAttributeProviderPlugins}"/></td> +								      <td><s:textfield name="storkOA.attributeProviderPlugins[%{#stat.index}].url" value="%{url}" cssClass="textfield_mail"/></td> +								      <td><s:textfield name="storkOA.attributeProviderPlugins[%{#stat.index}].attributes" value="%{attributes}" cssClass="textfield_mail"/></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> | 
