diff options
-rw-r--r-- | common/res/resources/schemas/MOA-ID-Configuration-1.1.xsd | 110 | ||||
-rw-r--r-- | common/res/resources/schemas/MOAIdentities.xsd | 46 | ||||
-rw-r--r-- | common/src/at/gv/egovernment/moa/util/FileUtils.java | 27 |
3 files changed, 136 insertions, 47 deletions
diff --git a/common/res/resources/schemas/MOA-ID-Configuration-1.1.xsd b/common/res/resources/schemas/MOA-ID-Configuration-1.1.xsd index 52d0add45..59bd6562f 100644 --- a/common/res/resources/schemas/MOA-ID-Configuration-1.1.xsd +++ b/common/res/resources/schemas/MOA-ID-Configuration-1.1.xsd @@ -1,8 +1,14 @@ <?xml version="1.0" encoding="UTF-8"?>
-<!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by Rudolf Schamberger (Stabsstelle IKT-Strategie) (Bundesrechenzentrum GmbH) -->
-<xsd:schema targetNamespace="http://www.buergerkarte.at/namespaces/moaconfig#" xmlns:sl10="http://www.buergerkarte.at/namespaces/securitylayer/20020225#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.buergerkarte.at/namespaces/moaconfig#" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.1.0">
- <xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/>
- <xsd:import namespace="http://www.buergerkarte.at/namespaces/securitylayer/20020225#" schemaLocation="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20020831/core/Core.20020225.xsd"/>
+<!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by Rudolf Schamberger (Stabsstelle IKT-Strategie) -->
+<xsd:schema targetNamespace="http://www.buergerkarte.at/namespaces/moaconfig#"
+ xmlns:sl10="http://www.buergerkarte.at/namespaces/securitylayer/20020225#"
+ xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://www.buergerkarte.at/namespaces/moaconfig#" elementFormDefault="qualified"
+ attributeFormDefault="unqualified" version="1.1.1">
+ <xsd:import namespace="http://www.w3.org/2000/09/xmldsig#"
+ schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/>
+ <xsd:import namespace="http://www.buergerkarte.at/namespaces/securitylayer/20020225#"
+ schemaLocation="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20020831/core/Core.20020225.xsd"/>
<xsd:element name="Configuration">
<xsd:complexType>
<xsd:sequence>
@@ -74,24 +80,30 @@ <xsd:sequence>
<xsd:element name="AuthComponent" type="AuthComponentType" minOccurs="0">
<xsd:annotation>
- <xsd:documentation>enthält Parameter der Authentisierungs-Komponente</xsd:documentation>
+ <xsd:documentation>enthält Parameter der
+ Authentisierungs-Komponente</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="ProxyComponent" minOccurs="0">
<xsd:annotation>
- <xsd:documentation>enthält Konfigurationsparameter der Proxy-Komponente</xsd:documentation>
+ <xsd:documentation>enthält Konfigurationsparameter der
+ Proxy-Komponente</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="AuthComponent">
<xsd:annotation>
- <xsd:documentation>enthält Parameter für die Kommunikation zw. Proxykomponente und Authenttisierungskomponente</xsd:documentation>
+ <xsd:documentation>enthält Parameter für die Kommunikation zw.
+ Proxykomponente und Authenttisierungskomponente</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
- <xsd:element name="ConnectionParameter" type="ConnectionParameterClientAuthType" minOccurs="0">
+ <xsd:element name="ConnectionParameter"
+ type="ConnectionParameterClientAuthType" minOccurs="0">
<xsd:annotation>
- <xsd:documentation>enthält Parameter für die SOAP-Verbindung von der Proxy-Komponente zur Auth-Komponente (vgl. AuthComponent/MOA-SP/ConnectionParameter)</xsd:documentation>
+ <xsd:documentation>enthält Parameter für die SOAP-Verbindung von der
+ Proxy-Komponente zur Auth-Komponente (vgl.
+ AuthComponent/MOA-SP/ConnectionParameter)</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
@@ -114,13 +126,15 @@ </xsd:element>
<xsd:element name="ChainingModes" minOccurs="0">
<xsd:annotation>
- <xsd:documentation>spezifiziert den Algorithmus ("pkix" oder "chaining") für die Zertifikatspfadvalidierung</xsd:documentation>
+ <xsd:documentation>spezifiziert den Algorithmus ("pkix" oder "chaining") für die
+ Zertifikatspfadvalidierung</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:element name="TrustAnchor">
<xsd:annotation>
- <xsd:documentation>ein vom SystemDefaultMode abweichender ChiningMode kann für jeden TrustAnchor gesetzt werden</xsd:documentation>
+ <xsd:documentation>ein vom SystemDefaultMode abweichender ChiningMode kann
+ für jeden TrustAnchor gesetzt werden</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:complexContent>
@@ -131,12 +145,14 @@ </xsd:complexType>
</xsd:element>
</xsd:sequence>
- <xsd:attribute name="systemDefaultMode" type="ChainingModeType" use="optional" default="pkix"/>
+ <xsd:attribute name="systemDefaultMode" type="ChainingModeType" use="optional"
+ default="pkix"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="TrustedCACertificates" type="xsd:anyURI" minOccurs="0">
<xsd:annotation>
- <xsd:documentation>verweist auf ein Verzeichnis, das vertrauenswürdige CA (Zwischen-CA, Wurzel-CA) Zertifikate enthält.</xsd:documentation>
+ <xsd:documentation>verweist auf ein Verzeichnis, das vertrauenswürdige CA
+ (Zwischen-CA, Wurzel-CA) Zertifikate enthält.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="GenericConfiguration" minOccurs="0" maxOccurs="unbounded">
@@ -155,18 +171,23 @@ <xsd:sequence>
<xsd:element name="ConnectionParameter" type="ConnectionParameterServerAuthType"/>
</xsd:sequence>
- <xsd:attribute name="BKUSelectionAlternative" type="BKUSelectionType" use="optional" default="HTMLComplete"/>
+ <xsd:attribute name="BKUSelectionAlternative" type="BKUSelectionType" use="optional"
+ default="HTMLComplete"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="SecurityLayer">
<xsd:annotation>
- <xsd:documentation>enthält Parameter für die Kommunikation mit dem Security-Layer</xsd:documentation>
+ <xsd:documentation>enthält Parameter für die Kommunikation mit dem
+ Security-Layer</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="TransformsInfo" maxOccurs="unbounded">
<xsd:annotation>
- <xsd:documentation>das Attribut filename verweist auf eine Datei mit globalem Element TransformsInfo vom Typ sl10:TransformsInfo; diese TransformsInfo werden in den CreateXMLSignatureRequest für die Signatur des AUTH-Blocks inkludiert</xsd:documentation>
+ <xsd:documentation>das Attribut filename verweist auf eine Datei mit globalem
+ Element TransformsInfo vom Typ sl10:TransformsInfo; diese TransformsInfo
+ werden in den CreateXMLSignatureRequest für die Signatur des AUTH-Blocks
+ inkludiert</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute name="filename" type="xsd:anyURI" use="required"/>
@@ -177,18 +198,26 @@ </xsd:element>
<xsd:element name="MOA-SP">
<xsd:annotation>
- <xsd:documentation>enthält Konfiguratiosnparameter für die Kommunikation mit dem MOA SP Modul</xsd:documentation>
+ <xsd:documentation>enthält Konfiguratiosnparameter für die Kommunikation mit dem MOA
+ SP Modul</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
- <xsd:element name="ConnectionParameter" type="ConnectionParameterClientAuthType" minOccurs="0">
+ <xsd:element name="ConnectionParameter" type="ConnectionParameterClientAuthType"
+ minOccurs="0">
<xsd:annotation>
- <xsd:documentation>enthält Parameter für die SOAP-Verbindung von der AUTH-Komponente zu MOA-SP; das Attribut URL enthält den Endpunkt des Server; wird das Schema "https" verwendet müssen die Kind-Elemente angegeben werden; wird das Schema "http" verwendet dürfen keine Kind-Elemente angegeben werden; wird das Element nicht verwendet dann wird MOA-SP über das API aufgerufen</xsd:documentation>
+ <xsd:documentation>enthält Parameter für die SOAP-Verbindung von der
+ AUTH-Komponente zu MOA-SP; das Attribut URL enthält den Endpunkt des Server;
+ wird das Schema "https" verwendet müssen die Kind-Elemente angegeben werden;
+ wird das Schema "http" verwendet dürfen keine Kind-Elemente angegeben
+ werden; wird das Element nicht verwendet dann wird MOA-SP über das API
+ aufgerufen</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="VerifyIdentityLink">
<xsd:annotation>
- <xsd:documentation>enthält Parameter für die Überprüfung der Personenbindung</xsd:documentation>
+ <xsd:documentation>enthält Parameter für die Überprüfung der
+ Personenbindung</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
@@ -198,12 +227,14 @@ </xsd:element>
<xsd:element name="VerifyAuthBlock">
<xsd:annotation>
- <xsd:documentation>enthält Parameter für die Überprüfung des AUTH-Blocks</xsd:documentation>
+ <xsd:documentation>enthält Parameter für die Überprüfung des
+ AUTH-Blocks</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="TrustProfileID"/>
- <xsd:element name="VerifyTransformsInfoProfileID" type="xsd:string" maxOccurs="unbounded"/>
+ <xsd:element name="VerifyTransformsInfoProfileID" type="xsd:string"
+ maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
@@ -212,13 +243,15 @@ </xsd:element>
<xsd:element name="IdentityLinkSigners">
<xsd:annotation>
- <xsd:documentation>enthält Informationen über akzeptierte Signers des IdentityLinks</xsd:documentation>
+ <xsd:documentation>enthält Informationen über akzeptierte Signers des
+ IdentityLinks</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="X509SubjectName" type="xsd:string" maxOccurs="unbounded">
<xsd:annotation>
- <xsd:documentation>akzeptierte Signer des IdentityLinks werden per X509SubjectName (Kodierung nach RFC 2253) identifiziert</xsd:documentation>
+ <xsd:documentation>akzeptierte Signer des IdentityLinks werden per
+ X509SubjectName (Kodierung nach RFC 2253) identifiziert</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
@@ -231,31 +264,38 @@ <xsd:sequence>
<xsd:element name="AuthComponent" minOccurs="0">
<xsd:annotation>
- <xsd:documentation>enthält Parameter über die OA, die die Authentisierungs-Komponente betreffen</xsd:documentation>
+ <xsd:documentation>enthält Parameter über die OA, die die
+ Authentisierungs-Komponente betreffen</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
- <xsd:attribute name="provideZMRZahl" type="xsd:boolean" use="optional" default="false"/>
- <xsd:attribute name="provideAUTHBlock" type="xsd:boolean" use="optional" default="false"/>
- <xsd:attribute name="provideIdentityLink" type="xsd:boolean" use="optional" default="false"/>
+ <xsd:attribute name="provideZMRZahl" type="xsd:boolean" use="optional"
+ default="false"/>
+ <xsd:attribute name="provideAUTHBlock" type="xsd:boolean" use="optional"
+ default="false"/>
+ <xsd:attribute name="provideIdentityLink" type="xsd:boolean" use="optional"
+ default="false"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ProxyComponent" minOccurs="0">
<xsd:annotation>
- <xsd:documentation>enthält Parameter über die OA, die die Proxy-Komponente betreffen</xsd:documentation>
+ <xsd:documentation>enthält Parameter über die OA, die die Proxy-Komponente
+ betreffen</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ConnectionParameter" type="ConnectionParameterClientAuthType">
<xsd:annotation>
- <xsd:documentation>enthält Parameter über die OA, die die Proxy-Komponente betreffen</xsd:documentation>
+ <xsd:documentation>enthält Parameter über die OA, die die Proxy-Komponente
+ betreffen</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="configFileURL" type="xsd:anyURI" use="optional"/>
<xsd:attribute name="sessionTimeOut" type="xsd:int" use="optional"/>
<xsd:attribute name="loginParameterResolverImpl" type="xsd:string" use="optional"/>
+ <xsd:attribute name="loginParameterResolverConfiguration" type="xsd:string"
+ use="optional"/>
<xsd:attribute name="connectionBuilderImpl" type="xsd:string" use="optional"/>
- <xsd:attribute name="loginParameterResolverConfiguration" type="xsd:string" use="optional"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
@@ -264,7 +304,8 @@ <xsd:sequence>
<xsd:element name="AcceptedServerCertificates" type="xsd:anyURI" minOccurs="0">
<xsd:annotation>
- <xsd:documentation>URL zu einem Verzeichnis, das akzeptierte Server-Zertifikate der TLS-Verbindung enthält (keine CA-Zertifikate)</xsd:documentation>
+ <xsd:documentation>URL zu einem Verzeichnis, das akzeptierte Server-Zertifikate der
+ TLS-Verbindung enthält (keine CA-Zertifikate)</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
@@ -276,7 +317,8 @@ <xsd:sequence>
<xsd:element name="ClientKeyStore" minOccurs="0">
<xsd:annotation>
- <xsd:documentation>URL zu einem KeyStore, der den privaten Schlüssel, der für die TLS-Client-Authentisierung verwendetwird, enthält</xsd:documentation>
+ <xsd:documentation>URL zu einem KeyStore, der den privaten Schlüssel, der für
+ die TLS-Client-Authentisierung verwendetwird, enthält</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:simpleContent>
@@ -303,4 +345,4 @@ <xsd:enumeration value="HTMLSelect"/>
</xsd:restriction>
</xsd:simpleType>
-</xsd:schema>
+</xsd:schema>
\ No newline at end of file diff --git a/common/res/resources/schemas/MOAIdentities.xsd b/common/res/resources/schemas/MOAIdentities.xsd new file mode 100644 index 000000000..f2aa8f8e0 --- /dev/null +++ b/common/res/resources/schemas/MOAIdentities.xsd @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema targetNamespace="http://reference.e-government.gv.at/namespace/moa/20020822#/xmllpr20030814" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://reference.e-government.gv.at/namespace/moa/20020822#/xmllpr20030814" elementFormDefault="qualified" attributeFormDefault="unqualified">
+ <xs:element name="MOAIdentities" >
+ <xs:annotation>
+ <xs:documentation>MOAIdentities provides a mapping from identities to parameters used in the XMLLoginParameterResolver of MOA-ID</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+
+ <xs:element name="MappingType">
+ <xs:complexType>
+ <xs:sequence maxOccurs="unbounded">
+ <xs:element name="Identity">
+ <xs:complexType>
+ <xs:choice>
+ <xs:element name="NamedIdentity" type="tns:NamedIdentityType"/>
+ <xs:element name="bPKIdentity" type="tns:bPKIdentitiyType"/>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Parameters" type="tns:ParametersType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:complexType name="bPKIdentitiyType">
+ <xs:simpleContent>
+ <xs:extension base="xs:boolean">
+ <xs:attribute name="bPK" type="xs:string" use="required"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:complexType name="NamedIdentityType">
+ <xs:simpleContent>
+ <xs:extension base="xs:boolean">
+ <xs:attribute name="SurName" type="xs:string" use="required"/>
+ <xs:attribute name="GivenName" type="xs:string" use="required"/>
+ <xs:attribute name="BirthDate" type="xs:string" use="optional"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:complexType name="ParametersType">
+ <xs:attribute name="UN" type="xs:string" use="optional"/>
+ <xs:attribute name="PW" type="xs:string" use="optional"/>
+ </xs:complexType>
+
+</xs:schema>
diff --git a/common/src/at/gv/egovernment/moa/util/FileUtils.java b/common/src/at/gv/egovernment/moa/util/FileUtils.java index bb21f4ca0..ae8d83834 100644 --- a/common/src/at/gv/egovernment/moa/util/FileUtils.java +++ b/common/src/at/gv/egovernment/moa/util/FileUtils.java @@ -1,11 +1,10 @@ package at.gv.egovernment.moa.util; import java.io.BufferedInputStream; +import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; -import java.net.URI; -import java.net.URISyntaxException; import java.net.URL; /** @@ -95,17 +94,19 @@ public class FileUtils { */ public static String makeAbsoluteURL(String url, String root) { //if url is relative to rootConfigFileDirName make it absolute - try { - if(null == url) return null; - URI uri = new URI(url); - if (!uri.isAbsolute()) { // make it absolute to the config file - uri = new URI(root + url); - } - return uri.toString(); - } catch (URISyntaxException e) { - //if url string could not be converted to absolute URL return source url - return url; - } + + File keyFile; + String newURL = url; + + if(null == url) return null; + + // check if absolute - if not make it absolute + keyFile = new File(url); + if (!keyFile.isAbsolute()) { + keyFile = new File(root, url); + newURL = keyFile.getPath(); + } + return newURL; } } |