aboutsummaryrefslogtreecommitdiff
path: root/spss.server/doc/moa_spss
diff options
context:
space:
mode:
Diffstat (limited to 'spss.server/doc/moa_spss')
-rw-r--r--spss.server/doc/moa_spss/APIClientExample.txt100
-rw-r--r--spss.server/doc/moa_spss/HTTPClientExample.txt121
-rw-r--r--spss.server/doc/moa_spss/HTTPSClientExampleClientAuth.txt139
-rw-r--r--spss.server/doc/moa_spss/HTTPSClientExampleServerAuth.txt143
-rw-r--r--spss.server/doc/moa_spss/MOA-SPSS-1.1.pdfbin0 -> 314346 bytes
-rw-r--r--spss.server/doc/moa_spss/MOA-SPSS-1.1.xsd430
-rw-r--r--spss.server/doc/moa_spss/MOA-SPSS-Configuration-1.0.xsd208
-rw-r--r--spss.server/doc/moa_spss/examples/conf/MOA-SPSSConfiguration.xml67
-rw-r--r--spss.server/doc/moa_spss/examples/conf/MinimalSPConfig.xml4
-rw-r--r--spss.server/doc/moa_spss/examples/conf/MinimalSSConfig.xml17
-rw-r--r--spss.server/doc/moa_spss/examples/conf/keys/ecc(ego).p12bin0 -> 1234 bytes
-rw-r--r--spss.server/doc/moa_spss/examples/conf/keys/test-ee2003_normal(buergerkarte).p12bin0 -> 3077 bytes
-rw-r--r--spss.server/doc/moa_spss/examples/conf/trustProfiles/trustProfile1/IAIKRoot.cerbin0 -> 883 bytes
-rw-r--r--spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureRequest1.xml18
-rw-r--r--spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureRequest2.xml90
-rw-r--r--spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureResponse1.xml24
-rw-r--r--spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureResponse2.xml2
-rw-r--r--spss.server/doc/moa_spss/examples/requestsResponses/TestDatenGenerator.zipbin0 -> 1219 bytes
-rw-r--r--spss.server/doc/moa_spss/examples/requestsResponses/VerifyCMSSignatureRequest.xml28
-rw-r--r--spss.server/doc/moa_spss/examples/requestsResponses/VerifyCMSSignatureResponse.xml22
-rw-r--r--spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureRequest1.xml8
-rw-r--r--spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureRequest2.xml60
-rw-r--r--spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureResponse1.xml22
-rw-r--r--spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureResponse2.xml62
-rw-r--r--spss.server/doc/moa_spss/examples/testclient/APIClientExample.java100
-rw-r--r--spss.server/doc/moa_spss/examples/testclient/HTTPClientExample.java120
-rw-r--r--spss.server/doc/moa_spss/examples/testclient/HTTPSClientExampleClientAuth.java139
-rw-r--r--spss.server/doc/moa_spss/examples/testclient/HTTPSClientExampleServerAuth.java143
-rw-r--r--spss.server/doc/moa_spss/examples/testclient/client.keystorebin0 -> 1974 bytes
-rw-r--r--spss.server/doc/moa_spss/examples/testclient/example_request.xml19
-rw-r--r--spss.server/doc/moa_spss/faqs.htm100
-rw-r--r--spss.server/doc/moa_spss/links.htm122
-rw-r--r--spss.server/doc/moa_spss/moa.htm177
-rw-r--r--spss.server/doc/moa_spss/sp-admin.htm300
-rw-r--r--spss.server/doc/moa_spss/sp-admin_1.htm355
-rw-r--r--spss.server/doc/moa_spss/sp-admin_2.htm536
-rw-r--r--spss.server/doc/moa_spss/sp-admin_3.htm237
-rw-r--r--spss.server/doc/moa_spss/sp-admin_4.htm183
-rw-r--r--spss.server/doc/moa_spss/sp-anwendung.htm1079
39 files changed, 5175 insertions, 0 deletions
diff --git a/spss.server/doc/moa_spss/APIClientExample.txt b/spss.server/doc/moa_spss/APIClientExample.txt
new file mode 100644
index 000000000..10324f221
--- /dev/null
+++ b/spss.server/doc/moa_spss/APIClientExample.txt
@@ -0,0 +1,100 @@
+import java.io.ByteArrayInputStream;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+import at.gv.egovernment.moa.spss.api.SPSSFactory;
+import at.gv.egovernment.moa.spss.api.SignatureCreationService;
+import at.gv.egovernment.moa.spss.api.xmlsign.*;
+import at.gv.egovernment.moa.spss.api.common.*;
+
+/**
+ * @author Sven Aigner
+ *
+ * Dies ist ein einfaches Beispielprogramm für die Erstellung
+ * einer digitalen Signatur mittel der API-Funktionen des
+ * MOA-SPSS Servers
+ */
+public class APIClientExample {
+
+ /**
+ * Hauptfunktion des Beispielprogramms
+ * @param args wird nicht ausgewertet
+ * @throws Exception sollten Fehler auftreten werden die Fehler an die Java-VM weitergeleitet
+ */
+ public static void main(String[] args) throws Exception{
+
+ // Serverfunktionshandler instanzieren
+ SPSSFactory spf = SPSSFactory.getInstance();
+
+ // Signaturedaten in ein Contentobjekt einbinden
+ byte []data = "Dies sind Testdaten".getBytes("UTF-8");
+ ByteArrayInputStream bis = new ByteArrayInputStream(data);
+ Content cont = spf.createContent(bis,"http://uri.data.org");
+
+ // Beschreibungselement zu den Daten erstellen
+ MetaInfo mi = spf.createMetaInfo("text/plain","Testdaten",null);
+
+ // Transformationen erstellen
+ CreateTransformsInfo cti = spf.createCreateTransformsInfo(null,mi);
+ CreateTransformsInfoProfile ct = spf.createCreateTransformsInfoProfile(cti,null);
+
+ // Datenobjekt aufbauen
+ DataObjectInfo doi = spf.createDataObjectInfo(DataObjectInfo.STRUCTURE_DETACHED,false,cont,ct);
+
+ List dataobjectinfolist = new ArrayList();
+ dataobjectinfolist.add(doi);
+ // alles zusammenpacken zu einer SingleSignature
+ SingleSignatureInfo ssi = spf.createSingleSignatureInfo(dataobjectinfolist,null,false);
+
+ List singlesignatureinfolist = new ArrayList();
+ singlesignatureinfolist.add(ssi);
+ // die Signatur in einen Request einbetten
+ CreateXMLSignatureRequest cxsreq = spf.createCreateXMLSignatureRequest("PKCS12RSAKey1",singlesignatureinfolist);
+
+ // Signatureerstellungsservice aufrufen
+ SignatureCreationService scs = SignatureCreationService.getInstance();
+
+ // Response auswerten
+ CreateXMLSignatureResponse cxsres = scs.createXMLSignature(cxsreq);
+
+ List elements = cxsres.getResponseElements();
+
+ SignatureEnvironmentResponse ser = (SignatureEnvironmentResponse)elements.get(0);
+
+ // Responsetyp lesen
+ int response_type = ser.getResponseType();
+
+ if(response_type == SignatureEnvironmentResponse.ERROR_RESPONSE)
+ {
+ // Fehlerfall
+ System.out.println("Bei der Erstellung der Signatur ist ein Fehler aufgetreten");
+ }
+ else
+ {
+ // Signaturerstellung erfolgreich
+ Element se = ser.getSignatureEnvironment();
+ System.out.println("Signaturerstellung erfolgreich");
+
+ displayTree(se);
+ }
+ }
+
+ /**
+ * Einfache Ausgabefunktion für einen DOM-Baum
+ * @param input auszugebender Knoten
+ */
+ public static void displayTree(Node input)
+ {
+ // Ausgabe eines Knotens
+ System.out.println(input);
+ // Alle Kindknoten ausgeben
+ NodeList children = input.getChildNodes();
+ for(int counter=0;counter<children.getLength();counter++)
+ displayTree(children.item(counter));
+ }
+}
diff --git a/spss.server/doc/moa_spss/HTTPClientExample.txt b/spss.server/doc/moa_spss/HTTPClientExample.txt
new file mode 100644
index 000000000..02c7d9052
--- /dev/null
+++ b/spss.server/doc/moa_spss/HTTPClientExample.txt
@@ -0,0 +1,121 @@
+import java.io.FileInputStream;
+import java.util.Vector;
+
+import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.rpc.Call;
+import javax.xml.rpc.Service;
+import javax.xml.rpc.ServiceFactory;
+
+import org.apache.axis.message.SOAPBodyElement;
+import org.apache.xml.serialize.LineSeparator;
+import org.apache.xml.serialize.OutputFormat;
+import org.apache.xml.serialize.XMLSerializer;
+import org.w3c.dom.Document;
+
+/**
+ * @author Sven
+ *
+ * Dies ist eine Beispielklasse die den Zugriff auf MOA-SPSS mittels AXIS erklärt
+ */
+public class HTTPClientExample {
+
+ // SOAP Konstanten
+ // CreationServer
+ private static final QName SERVICE_QNAME = new QName("SignatureCreation");
+ private static final String ENDPOINT = "http://localhost:8080/moa-spss/services/SignatureCreation";
+ /* private static final String ENDPOINT =
+ "http://localhost:8080/moa-spss/services/SignatureVerification";
+ */
+ /*
+ Secure Endpoint
+ dieser Endpoint kann alternativ zum ersten ENDPOINT verwendet werden
+ um eine sichere Verbindung zum Server herzustellen
+ private static final String SECURE_ENDPOINT =
+ "https://localhost:8443/moa-spss/services/SignatureCreation";
+ */
+
+ /*
+ VerificationService
+ wenn Sie diese Werte für ENDPOINT und SERVICE verwenden können Sie eine
+ Signaturprüfung anstatt einer Signaturerstellung durchführen (entweder mit
+ ENDPOINT für eine nicht sichere Verbindung bzw. SECURE_ENDPOINT für eine
+ sichere Verbindung)
+
+ private static final QName SERVICE_QNAME = new QName("SignatureVerification");
+
+ private static final String SECURE_ENDPOINT =
+ "https://localhost:8443/moa-spss/services/SignatureVerification";
+ */
+
+ /**
+ * Methode main.
+ *
+ * Enthält den Beispielcode der nötig ist um von Java aus auf MOA-SPSS zugreifen zu können.
+ * Der Zugriff passiert über das AXIS-Framework.
+ *
+ * @param args wird nicht verwendet
+ */
+ public static void main(String[] args) {
+
+ try {
+ // Datei mit Request einlesen
+ FileInputStream inputStream = new FileInputStream("example_request.xml");
+
+ // Parser/DOMBuilder instanzieren
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ factory.setNamespaceAware(true);
+ DocumentBuilder builder = factory.newDocumentBuilder();
+
+ // XML Datei in einen DOM-Baum umwandeln
+ Document root_request = builder.parse(inputStream);
+
+ // AXIS-Server instanzieren
+ Service service = ServiceFactory.newInstance().createService(SERVICE_QNAME);
+
+ // Call öffnen
+ Call call = service.createCall();
+
+ // Neues BodyElement anlegen und mit dem DOM-Baum füllen
+ SOAPBodyElement body = new SOAPBodyElement(root_request.getDocumentElement());
+ SOAPBodyElement[] params = new SOAPBodyElement[] {body};
+
+ // Call mit Endpoint verknüpfen
+ call.setTargetEndpointAddress(ENDPOINT);
+
+ // Call auslösen und die Antworten speichern
+ System.out.println("Calling ...");
+ Vector responses = (Vector) call.invoke(params);
+
+ // erstes BodyElement auslesen
+ SOAPBodyElement response = (SOAPBodyElement) responses.get(0);
+
+ // aus der Response den DOM-Baum lesen
+ Document root_response = response.getAsDocument();
+ System.out.println("Return ...");
+
+ // Ausgabe auf System.out zum Testen
+ OutputFormat format = new OutputFormat((Document)root_response);
+
+ format.setLineSeparator("\n");
+ format.setIndenting(false);
+ format.setPreserveSpace(true);
+ format.setOmitXMLDeclaration(false);
+ format.setEncoding("UTF-8");
+
+ XMLSerializer serializer = new XMLSerializer (System.out, format);
+ //serializer.asDOMSerializer();
+ serializer.serialize(root_response);
+
+ // Antwort verarbeiten
+ // ...
+ // ...
+ }
+ catch(Exception e)
+ {
+ e.printStackTrace();
+ }
+
+ }
+}
diff --git a/spss.server/doc/moa_spss/HTTPSClientExampleClientAuth.txt b/spss.server/doc/moa_spss/HTTPSClientExampleClientAuth.txt
new file mode 100644
index 000000000..822093f91
--- /dev/null
+++ b/spss.server/doc/moa_spss/HTTPSClientExampleClientAuth.txt
@@ -0,0 +1,139 @@
+import java.io.FileInputStream;
+import java.security.Security;
+import java.util.Vector;
+
+import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.rpc.Call;
+import javax.xml.rpc.Service;
+import javax.xml.rpc.ServiceFactory;
+
+import org.apache.axis.message.SOAPBodyElement;
+import org.apache.xml.serialize.LineSeparator;
+import org.apache.xml.serialize.OutputFormat;
+import org.apache.xml.serialize.XMLSerializer;
+import org.w3c.dom.Document;
+
+import com.sun.net.ssl.internal.ssl.Provider;
+
+/**
+ * @author Sven
+ *
+ * Dies ist eine Beispielklasse die den Zugriff auf MOA-SPSS mittels AXIS erklärt. <br>
+ * Die Datenübertragung erfolgt über eine sichere Verbindung (Clientauthentisierung)
+ */
+public class HTTPSClientExampleClientAuth {
+
+ // SOAP Konstanten
+ // CreationServer
+ private static final QName SERVICE_QNAME = new QName("SignatureCreation");
+ private static final String ENDPOINT = "http://localhost:8080/moa-spss/services/SignatureCreation";
+ // Secure Endpoint
+ private static final String SECURE_ENDPOINT = "https://localhost:8443/moa-spss/services/SignatureCreation";
+
+ /*
+ VerificationService
+ wenn Sie diese Werte für ENDPOINT und SERVICE verwenden können Sie eine
+ Signaturprüfung anstatt einer Signaturerstellung durchführen (entweder mit
+ ENDPOINT für eine nicht sichere Verbindung bzw. SECURE_ENDPOINT für eine
+ sichere Verbindung)
+
+ private static final QName SERVICE_QNAME = new QName("SignatureVerification");
+ private static final String ENDPOINT =
+ "http://localhost:8080/moa-spss/services/SignatureVerification";
+ private static final String SECURE_ENDPOINT =
+ "https://localhost:8443/moa-spss/services/SignatureVerification";
+ */
+ public static final String HANDLER = "java.protocol.handler.pkgs";
+ public static final String KEYSTORE = "javax.net.ssl.keyStore";
+ public static final String KEYSTOREPASSWORD = "javax.net.ssl.keyStorePassword";
+ public static final String TRUSTSTORE = "javax.net.ssl.trustStore";
+ public static final String TRUSTSTOREPASSWORD = "javax.net.ssl.trustStorePassword";
+
+
+ /**
+ * Methode main.
+ *
+ * Enthält den Beispielcode der nötig ist um von Java aus auf MOA-SPSS zugreifen zu können.
+ * Der Zugriff passiert über das AXIS-Framework. Die Verbindung ist eine SSL Verbindung mit Clientauthentisierung.
+ *
+ * @param args wird nicht verwendet
+ */
+
+ public static void main(String[] args) {
+
+ try {
+ /*
+ Einrichten der SSL Verbindungseigenschaften
+
+ Die Verbindung wird über SSL hergestellt, als TrustStore und als Keystore
+ wird ein JavaKeyStore verwendet der die notwendigen Daten enthält
+ */
+
+ Security.addProvider(new Provider());
+ System.setProperty(HANDLER,"com.sun.net.ssl.internal.www.protocol");
+ System.setProperty(KEYSTORE, "client.keystore");
+ System.setProperty(KEYSTOREPASSWORD, "changeit");
+ System.setProperty(TRUSTSTORE, "client.keystore");
+ System.setProperty(TRUSTSTOREPASSWORD, "changeit");
+
+ // Datei mit Request einlesen
+ FileInputStream inputStream = new FileInputStream("example_request.xml");
+
+ // Parser/DOMBuilder instanzieren
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ factory.setNamespaceAware(true);
+ DocumentBuilder builder = factory.newDocumentBuilder();
+
+ // XML Datei in einen DOM-Baum umwandeln
+ Document root_request = builder.parse(inputStream);
+
+ // AXIS-Server instanzieren
+ Service service = ServiceFactory.newInstance().createService(SERVICE_QNAME);
+
+ // Call öffnen
+ Call call = service.createCall();
+
+ // Neues BodyElement anlegen und mit dem DOM-Baum füllen
+ SOAPBodyElement body = new SOAPBodyElement(root_request.getDocumentElement());
+ SOAPBodyElement[] params = new SOAPBodyElement[] {body};
+
+ // Call mit Endpoint verknüpfen
+ call.setTargetEndpointAddress(SECURE_ENDPOINT);
+
+ // Call auslösen und die Antworten speichern
+ System.out.println("Calling ...");
+ Vector responses = (Vector) call.invoke(params);
+
+ // erstes BodyElement auslesen
+ SOAPBodyElement response = (SOAPBodyElement) responses.get(0);
+
+ // aus der Response den DOM-Baum lesen
+ Document root_response = response.getAsDocument();
+ System.out.println("Return ...");
+
+ // Ausgabe auf System.out zum Testen
+ OutputFormat format = new OutputFormat((Document)root_response);
+
+ format.setLineSeparator("\n");
+ format.setIndenting(false);
+ format.setPreserveSpace(true);
+ format.setOmitXMLDeclaration(false);
+ format.setEncoding("UTF-8");
+
+ XMLSerializer serializer = new XMLSerializer (System.out, format);
+ serializer.asDOMSerializer();
+ serializer.serialize(root_response);
+
+ // Antwort verarbeiten
+ // ...
+ // ...
+ }
+ catch(Exception e)
+ {
+ e.printStackTrace();
+ }
+
+ }
+}
diff --git a/spss.server/doc/moa_spss/HTTPSClientExampleServerAuth.txt b/spss.server/doc/moa_spss/HTTPSClientExampleServerAuth.txt
new file mode 100644
index 000000000..cb8db75d5
--- /dev/null
+++ b/spss.server/doc/moa_spss/HTTPSClientExampleServerAuth.txt
@@ -0,0 +1,143 @@
+import java.io.FileInputStream;
+import java.security.Security;
+import java.util.Vector;
+
+import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.rpc.Call;
+import javax.xml.rpc.Service;
+import javax.xml.rpc.ServiceFactory;
+
+import org.apache.axis.message.SOAPBodyElement;
+import org.apache.xml.serialize.LineSeparator;
+import org.apache.xml.serialize.OutputFormat;
+import org.apache.xml.serialize.XMLSerializer;
+import org.w3c.dom.Document;
+
+import com.sun.net.ssl.internal.ssl.Provider;
+
+/**
+ * @author Sven
+ *
+ * Dies ist eine Beispielklasse die den Zugriff auf MOA-SPSS mittels AXIS erklärt. <br>
+ * Die Datenübertragung erfolgt über eine sichere Verbindung (Serverauthentisierung)
+ */
+public class HTTPSClientExampleServerAuth {
+
+ // SOAP Konstanten
+ // CreationServer
+ private static final QName SERVICE_QNAME = new QName("SignatureCreation");
+ private static final String ENDPOINT = "http://localhost:8080/moa-spss/services/SignatureCreation";
+ // Secure Endpoint
+ private static final String SECURE_ENDPOINT = "https://localhost:8443/moa-spss/services/SignatureCreation";
+
+ /*
+ Secure Endpoint
+ dieser Endpoint kann alternativ zum ersten ENDPOINT verwendet werden
+ um eine sichere Verbindung zum Server herzustellen
+ private static final String SECURE_ENDPOINT =
+ "https://localhost:8443/moa-spss/services/SignatureCreation";
+ */
+
+ /*
+ VerificationService
+ wenn Sie diese Werte für ENDPOINT und SERVICE verwenden können Sie eine
+ Signaturprüfung anstatt einer Signaturerstellung durchführen (entweder mit
+ ENDPOINT für eine nicht sichere Verbindung bzw. SECURE_ENDPOINT für eine
+ sichere Verbindung)
+
+ private static final QName SERVICE_QNAME = new QName("SignatureVerification");
+ private static final String ENDPOINT =
+ "http://localhost:8080/moa-spss/services/SignatureVerification";
+ private static final String SECURE_ENDPOINT =
+ "https://localhost:8443/moa-spss/services/SignatureVerification";
+ */
+
+ // SSL Konstanten
+ public static final String HANDLER = "java.protocol.handler.pkgs";
+ public static final String TRUSTSTORE = "javax.net.ssl.trustStore";
+ public static final String TRUSTSTOREPASSWORD = "javax.net.ssl.trustStorePassword";
+
+ /**
+ * Methode main.
+ *
+ * Enthält den Beispielcode der nötig ist um von Java aus auf MOA-SPSS zugreifen zu können.
+ * Der Zugriff passiert über das AXIS-Framework. Die Verbindung ist eine SSL Verbindung mit Serverauthentisierung.
+ *
+ * @param args wird nicht verwendet
+ */
+ public static void main(String[] args) {
+
+ try {
+ /*
+ Einrichten der SSL Verbindungseigenschaften
+
+ Die Verbindung wird über SSL hergestellt, als TrustStore wird
+ ein JavaKeyStore verwendet der die notwendigen Daten enthält
+ */
+
+ Security.addProvider(new Provider());
+ System.setProperty(HANDLER,"com.sun.net.ssl.internal.www.protocol");
+ System.setProperty(TRUSTSTORE, "client.keystore");
+ System.setProperty(TRUSTSTOREPASSWORD, "changeit");
+
+ // Datei mit Request einlesen
+ FileInputStream inputStream = new FileInputStream("example_request.xml");
+
+ // Parser/DOMBuilder instanzieren
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ factory.setNamespaceAware(true);
+ DocumentBuilder builder = factory.newDocumentBuilder();
+
+ // XML Datei in einen DOM-Baum umwandeln
+ Document root_request = builder.parse(inputStream);
+
+ // AXIS-Server instanzieren
+ Service service = ServiceFactory.newInstance().createService(SERVICE_QNAME);
+
+ // Call öffnen
+ Call call = service.createCall();
+
+ // Neues BodyElement anlegen und mit dem DOM-Baum füllen
+ SOAPBodyElement body = new SOAPBodyElement(root_request.getDocumentElement());
+ SOAPBodyElement[] params = new SOAPBodyElement[] {body};
+
+ // Call mit Endpoint verknüpfen
+ call.setTargetEndpointAddress(SECURE_ENDPOINT);
+
+ // Call auslösen und die Antworten speichern
+ System.out.println("Calling ...");
+ Vector responses = (Vector) call.invoke(params);
+
+ // erstes BodyElement auslesen
+ SOAPBodyElement response = (SOAPBodyElement) responses.get(0);
+
+ // aus der Response den DOM-Baum lesen
+ Document root_response = response.getAsDocument();
+ System.out.println("Return ...");
+
+ // Ausgabe auf System.out zum Testen
+ OutputFormat format = new OutputFormat((Document)root_response);
+
+ format.setLineSeparator("\n");
+ format.setIndenting(false);
+ format.setPreserveSpace(true);
+ format.setOmitXMLDeclaration(false);
+ format.setEncoding("UTF-8");
+
+ XMLSerializer serializer = new XMLSerializer (System.out, format);
+ serializer.asDOMSerializer();
+ serializer.serialize(root_response);
+
+ // Antwort verarbeiten
+ // ...
+ // ...
+ }
+ catch(Exception e)
+ {
+ e.printStackTrace();
+ }
+
+ }
+} \ No newline at end of file
diff --git a/spss.server/doc/moa_spss/MOA-SPSS-1.1.pdf b/spss.server/doc/moa_spss/MOA-SPSS-1.1.pdf
new file mode 100644
index 000000000..dfe9e80a1
--- /dev/null
+++ b/spss.server/doc/moa_spss/MOA-SPSS-1.1.pdf
Binary files differ
diff --git a/spss.server/doc/moa_spss/MOA-SPSS-1.1.xsd b/spss.server/doc/moa_spss/MOA-SPSS-1.1.xsd
new file mode 100644
index 000000000..809842cf9
--- /dev/null
+++ b/spss.server/doc/moa_spss/MOA-SPSS-1.1.xsd
@@ -0,0 +1,430 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com) by Stephan G (Comp) -->
+<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by Stephan Grill (Anecon) -->
+<xsd:schema targetNamespace="http://reference.e-government.gv.at/namespace/moa/20020822#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://reference.e-government.gv.at/namespace/moa/20020822#" elementFormDefault="qualified" attributeFormDefault="unqualified" version="20020829">
+ <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.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+ <!--########## Create XML Signature ###-->
+ <!--### Create XML Signature Request ###-->
+ <xsd:element name="CreateXMLSignatureRequest">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="CreateXMLSignatureRequestType"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="CreateXMLSignatureRequestType">
+ <xsd:sequence>
+ <xsd:element name="KeyIdentifier" type="KeyIdentifierType"/>
+ <xsd:element name="SingleSignatureInfo" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Ermöglichung der Stapelsignatur durch wiederholte Angabe dieses Elements</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="DataObjectInfo" maxOccurs="unbounded">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="DataObjectInfoType">
+ <xsd:attribute name="ChildOfManifest" type="xsd:boolean" use="optional" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="CreateSignatureInfo" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="CreateSignatureEnvironment" type="ContentOptionalRefType"/>
+ <xsd:choice>
+ <xsd:annotation>
+ <xsd:documentation>Auswahl: Entweder explizite Angabe des Signaturorts sowie ggf. sinnvoller Supplements im Zshg. mit der Signaturumgebung, oder Verweis auf ein benanntes Profil</xsd:documentation>
+ </xsd:annotation>
+ <xsd:element ref="CreateSignatureEnvironmentProfile"/>
+ <xsd:element name="CreateSignatureEnvironmentProfileID" type="ProfileIdentifierType"/>
+ </xsd:choice>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="SecurityLayerConformity" type="xsd:boolean" use="optional" default="true"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <!--### Create XML Signature Response ###-->
+ <xsd:complexType name="CreateXMLSignatureResponseType">
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Kardinalität 1..oo erlaubt die Antwort auf eine Stapelsignatur-Anfrage</xsd:documentation>
+ </xsd:annotation>
+ <xsd:element name="SignatureEnvironment">
+ <xsd:annotation>
+ <xsd:documentation>Resultat, falls die Signaturerstellung erfolgreich war</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:any namespace="##any" processContents="lax"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element ref="ErrorResponse"/>
+ </xsd:choice>
+ </xsd:complexType>
+ <xsd:element name="CreateXMLSignatureResponse" type="CreateXMLSignatureResponseType"/>
+ <!--########## Verify CMS Signature ###-->
+ <!--### Verifiy CMS Signature Request ###-->
+ <xsd:element name="VerifyCMSSignatureRequest">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="VerifyCMSSignatureRequestType">
+ <xsd:attribute name="Signatories" type="SignatoriesType" use="optional" default="1"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:complexType name="VerifyCMSSignatureRequestType">
+ <xsd:sequence>
+ <xsd:element name="DateTime" type="xsd:dateTime" minOccurs="0"/>
+ <xsd:element name="CMSSignature" type="xsd:base64Binary"/>
+ <xsd:element name="DataObject" type="CMSDataObjectOptionalMetaType" minOccurs="0"/>
+ <xsd:element name="TrustProfileID">
+ <xsd:annotation>
+ <xsd:documentation>mit diesem Profil wird eine Menge von vertrauenswürdigen Wurzelzertifikaten spezifiziert</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <!--### Verify CMS Signature Response ###-->
+ <xsd:element name="VerifyCMSSignatureResponse" type="VerifyCMSSignatureResponseType"/>
+ <xsd:complexType name="VerifyCMSSignatureResponseType">
+ <xsd:sequence maxOccurs="unbounded">
+ <xsd:element name="SignerInfo" type="dsig:KeyInfoType">
+ <xsd:annotation>
+ <xsd:documentation>only ds:X509Data and RetrievalMethod is supported; QualifiedCertificate is included as X509Data/any;publicAuthority is included as X509Data/any</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="SignatureCheck" type="CheckResultType"/>
+ <xsd:element name="CertificateCheck" type="CheckResultType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <!--########## Verify XML Signature ###-->
+ <!--### Verify XML Signature Request ###-->
+ <xsd:element name="VerifyXMLSignatureRequest" type="VerifyXMLSignatureRequestType"/>
+ <xsd:complexType name="VerifyXMLSignatureRequestType">
+ <xsd:sequence>
+ <xsd:element name="DateTime" type="xsd:dateTime" minOccurs="0"/>
+ <xsd:element name="VerifySignatureInfo">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="VerifySignatureEnvironment" type="ContentOptionalRefType"/>
+ <xsd:element name="VerifySignatureLocation" type="xsd:token"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element ref="SupplementProfile"/>
+ <xsd:element name="SupplementProfileID" type="xsd:string"/>
+ </xsd:choice>
+ <xsd:element name="SignatureManifestCheckParams" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="ReferenceInfo" type="VerifyTransformsDataType" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Pro dsig:Reference-Element in der zu überprüfenden XML-Signatur muss hier ein ReferenceInfo-Element erscheinen. Die Reihenfolge der einzelnen ReferenceInfo Elemente entspricht jener der dsig:Reference Elemente in der XML-Signatur.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="ReturnReferenceInputData" type="xsd:boolean" use="optional" default="true"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="ReturnHashInputData" minOccurs="0"/>
+ <xsd:element name="TrustProfileID">
+ <xsd:annotation>
+ <xsd:documentation>mit diesem Profil wird eine Menge von vertrauenswürdigen Wurzelzertifikaten spezifiziert</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ <!--### Verify XML Signature Response ###-->
+ <xsd:element name="VerifyXMLSignatureResponse" type="VerifyXMLSignatureResponseType"/>
+ <xsd:complexType name="VerifyXMLSignatureResponseType">
+ <xsd:sequence>
+ <xsd:element name="SignerInfo" type="dsig:KeyInfoType">
+ <xsd:annotation>
+ <xsd:documentation>only ds:X509Data and ds:RetrievalMethod is supported; QualifiedCertificate is included as X509Data/any; PublicAuthority is included as X509Data/any</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="HashInputData" type="ContentBaseType" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="ReferenceInputData" type="ContentBaseType" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="SignatureCheck" type="ReferencesCheckResultType"/>
+ <xsd:element name="SignatureManifestCheck" type="ReferencesCheckResultType" minOccurs="0"/>
+ <xsd:element name="XMLDSIGManifestCheck" type="ManifestRefsCheckResultType" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="CertificateCheck" type="CheckResultType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:simpleType name="ProfileIdentifierType">
+ <xsd:restriction base="xsd:token"/>
+ </xsd:simpleType>
+ <xsd:complexType name="MetaInfoType">
+ <xsd:sequence>
+ <xsd:element name="MimeType" type="MimeTypeType"/>
+ <xsd:element name="Description" type="xsd:anyURI" minOccurs="0"/>
+ <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="DataObjectInfoType">
+ <xsd:sequence>
+ <xsd:element name="DataObject">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="ContentOptionalRefType"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:choice>
+ <xsd:annotation>
+ <xsd:documentation>Auswahl: Entweder explizite Angabe EINER Transformationskette inklusive ggf. sinnvoller Supplements oder Verweis auf ein benanntes Profil</xsd:documentation>
+ </xsd:annotation>
+ <xsd:element ref="CreateTransformsInfoProfile"/>
+ <xsd:element name="CreateTransformsInfoProfileID" type="ProfileIdentifierType"/>
+ </xsd:choice>
+ </xsd:sequence>
+ <xsd:attribute name="Structure" use="required">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="detached"/>
+ <xsd:enumeration value="enveloping"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ </xsd:complexType>
+ <xsd:complexType name="TransformsInfoType">
+ <xsd:sequence>
+ <xsd:element ref="dsig:Transforms" minOccurs="0"/>
+ <xsd:element name="FinalDataMetaInfo" type="MetaInfoType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="XMLDataObjectAssociationType">
+ <xsd:sequence>
+ <xsd:element name="MetaInfo" type="MetaInfoType" minOccurs="0"/>
+ <xsd:element name="Content" type="ContentRequiredRefType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="CMSDataObjectOptionalMetaType">
+ <xsd:sequence>
+ <xsd:element name="MetaInfo" type="MetaInfoType" minOccurs="0"/>
+ <xsd:element name="Content" type="CMSContentBaseType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="CMSContentBaseType">
+ <xsd:complexContent>
+ <xsd:restriction base="ContentOptionalRefType">
+ <xsd:choice minOccurs="0">
+ <xsd:element name="Base64Content" type="xsd:base64Binary"/>
+ </xsd:choice>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="CheckResultType">
+ <xsd:sequence>
+ <xsd:element name="Code" type="xsd:nonNegativeInteger"/>
+ <xsd:element name="Info" type="AnyChildrenType" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="ReferencesCheckResultType">
+ <xsd:complexContent>
+ <xsd:restriction base="CheckResultType">
+ <xsd:sequence>
+ <xsd:element name="Code" type="xsd:nonNegativeInteger"/>
+ <xsd:element name="Info" type="ReferencesCheckResultInfoType" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="ReferencesCheckResultInfoType" mixed="true">
+ <xsd:complexContent mixed="true">
+ <xsd:restriction base="AnyChildrenType">
+ <xsd:sequence>
+ <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="FailedReference" type="xsd:positiveInteger" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="ManifestRefsCheckResultType">
+ <xsd:complexContent>
+ <xsd:restriction base="CheckResultType">
+ <xsd:sequence>
+ <xsd:element name="Code" type="xsd:nonNegativeInteger"/>
+ <xsd:element name="Info" type="ManifestRefsCheckResultInfoType"/>
+ </xsd:sequence>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="ManifestRefsCheckResultInfoType" mixed="true">
+ <xsd:complexContent mixed="true">
+ <xsd:extension base="ReferencesCheckResultInfoType">
+ <xsd:sequence>
+ <xsd:element name="ReferringSigReference" type="xsd:positiveInteger"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <!--########## Error Response ###-->
+ <xsd:element name="ErrorResponse" type="ErrorResponseType">
+ <xsd:annotation>
+ <xsd:documentation>Resultat, falls die Signaturerstellung gescheitert ist</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:complexType name="ErrorResponseType">
+ <xsd:sequence>
+ <xsd:element name="ErrorCode" type="xsd:integer"/>
+ <xsd:element name="Info" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <!--########## Auxiliary Types ###-->
+ <xsd:simpleType name="KeyIdentifierType">
+ <xsd:restriction base="xsd:string"/>
+ </xsd:simpleType>
+ <xsd:simpleType name="KeyStorageType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Software"/>
+ <xsd:enumeration value="Hardware"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="MimeTypeType">
+ <xsd:restriction base="xsd:token"/>
+ </xsd:simpleType>
+ <xsd:complexType name="AnyChildrenType" mixed="true">
+ <xsd:sequence minOccurs="0" maxOccurs="unbounded">
+ <xsd:any namespace="##any" processContents="lax"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="XMLContentType" mixed="true">
+ <xsd:complexContent mixed="true">
+ <xsd:extension base="AnyChildrenType">
+ <xsd:attribute ref="xml:space" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="ContentBaseType">
+ <xsd:choice minOccurs="0">
+ <xsd:element name="Base64Content" type="xsd:base64Binary"/>
+ <xsd:element name="XMLContent" type="XMLContentType"/>
+ </xsd:choice>
+ </xsd:complexType>
+ <xsd:complexType name="ContentOptionalRefType">
+ <xsd:complexContent>
+ <xsd:extension base="ContentBaseType">
+ <xsd:attribute name="Reference" type="xsd:anyURI" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="ContentRequiredRefType">
+ <xsd:complexContent>
+ <xsd:restriction base="ContentOptionalRefType">
+ <xsd:choice>
+ <xsd:element name="Base64Content" type="xsd:base64Binary"/>
+ <xsd:element name="XMLContent" type="XMLContentType"/>
+ </xsd:choice>
+ <xsd:attribute name="Reference" type="xsd:anyURI" use="required"/>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="VerifyTransformsDataType">
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Ein oder mehrere Transformationswege können von der Applikation an MOA mitgeteilt werden. Die zu prüfende Signatur hat zumindest einem dieser Transformationswege zu entsprechen. Die Angabe kann explizit oder als Profilbezeichner erfolgen.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:element ref="VerifyTransformsInfoProfile"/>
+ <xsd:element name="VerifyTransformsInfoProfileID" type="xsd:string">
+ <xsd:annotation>
+ <xsd:documentation>Profilbezeichner für einen Transformationsweg</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ <xsd:element name="QualifiedCertificate"/>
+ <xsd:element name="PublicAuthority" type="PublicAuthorityType"/>
+ <xsd:complexType name="PublicAuthorityType">
+ <xsd:sequence>
+ <xsd:element name="Code" type="xsd:string" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:simpleType name="SignatoriesType">
+ <xsd:union memberTypes="AllSignatoriesType">
+ <xsd:simpleType>
+ <xsd:list itemType="xsd:positiveInteger"/>
+ </xsd:simpleType>
+ </xsd:union>
+ </xsd:simpleType>
+ <xsd:simpleType name="AllSignatoriesType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="all"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:complexType name="CreateSignatureLocationType">
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:token">
+ <xsd:attribute name="Index" type="xsd:nonNegativeInteger" use="required"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:complexType name="TransformParameterType">
+ <xsd:choice minOccurs="0">
+ <xsd:annotation>
+ <xsd:documentation>Die Angabe des Transformationsparameters (explizit oder als Hashwert) kann unterlassen werden, wenn die Applikation von der Unveränderlichkeit des Inhalts der in "Transformationsparamter", Attribut "URI" angegebenen URI ausgehen kann.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:element name="Base64Content" type="xsd:base64Binary">
+ <xsd:annotation>
+ <xsd:documentation>Der Transformationsparameter explizit angegeben.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="Hash">
+ <xsd:annotation>
+ <xsd:documentation>Der Hashwert des Transformationsparameters.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="dsig:DigestMethod"/>
+ <xsd:element ref="dsig:DigestValue"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ <xsd:attribute name="URI" type="xsd:anyURI" use="required"/>
+ </xsd:complexType>
+ <xsd:element name="CreateSignatureEnvironmentProfile">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="CreateSignatureLocation" type="CreateSignatureLocationType"/>
+ <xsd:element name="Supplement" type="XMLDataObjectAssociationType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="VerifyTransformsInfoProfile">
+ <xsd:annotation>
+ <xsd:documentation>Explizite Angabe des Transformationswegs</xsd:documentation>
+ </xsd:annotation>
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element ref="dsig:Transforms" minOccurs="0"/>
+ <xsd:element name="TransformParameter" type="TransformParameterType" minOccurs="0" maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>Alle impliziten Transformationsparameter, die zum Durchlaufen der oben angeführten Transformationskette bekannt sein müssen, müssen hier angeführt werden. Das Attribut "URI" bezeichnet den Transformationsparameter in exakt jener Weise, wie er in der zu überprüfenden Signatur gebraucht wird.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="Supplement" type="XMLDataObjectAssociationType"/>
+ <xsd:element name="SupplementProfile" type="XMLDataObjectAssociationType"/>
+ <xsd:element name="CreateTransformsInfoProfile">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="CreateTransformsInfo" type="TransformsInfoType"/>
+ <xsd:element ref="Supplement" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+</xsd:schema>
diff --git a/spss.server/doc/moa_spss/MOA-SPSS-Configuration-1.0.xsd b/spss.server/doc/moa_spss/MOA-SPSS-Configuration-1.0.xsd
new file mode 100644
index 000000000..8eb488f48
--- /dev/null
+++ b/spss.server/doc/moa_spss/MOA-SPSS-Configuration-1.0.xsd
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com) by Stephan G (Comp) -->
+<xs:schema targetNamespace="http://reference.e-government.gv.at/namespace/moaconfig/20021122#" xmlns:config="http://reference.e-government.gv.at/namespace/moaconfig/20021122#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
+ <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/>
+ <xs:element name="MOAConfiguration">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="CanonicalizationAlgorithm" minOccurs="0">
+ <xs:complexType>
+ <xs:attribute name="name" type="xs:anyURI" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="DigestMethodAlgorithm" minOccurs="0">
+ <xs:complexType>
+ <xs:attribute name="name" type="xs:anyURI" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="SignatureAlgorithm" minOccurs="0">
+ <xs:complexType>
+ <xs:attribute name="name" type="xs:anyURI" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="GenericConfiguration" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="value" type="xs:string" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="HardwareCryptoModule" minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>dient zum Konfigurieren von HW Crypto-Module via PKCS#11 (s. iaik.server.modules.crypto.HarwwareCryptoModuleConfiguration)</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="slotID" type="xs:string" use="optional"/>
+ <xs:attribute name="userPIN" type="xs:string" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="HardwareKeyModule" minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>dient zum Konfigurieren von HW Key-Module via PKCS#11 (s. iaik.server. modules.crypto.HardwareKeyModuleConfiguration</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="id" type="xs:token" use="required"/>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="slotID" type="xs:string" use="optional"/>
+ <xs:attribute name="userPIN" type="xs:string" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="SoftwareKeyModule" minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>dient zum Konfigurieren von SW Key-Module via PKCS#12 Dateien (s. iaik. server.modules.crypto.SoftwareKeyModuleConfiguration</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="id" type="xs:token" use="required"/>
+ <xs:attribute name="filename" type="xs:string" use="required"/>
+ <xs:attribute name="password" type="xs:string" use="optional"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="KeyGroup" minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>definiert eine Gruppe von Keys</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence maxOccurs="unbounded">
+ <xs:element name="Key">
+ <xs:annotation>
+ <xs:documentation>Ein Schlüssel wird bezeichnet durch ein Tripel bestehend aus der ID des KeyModules (siehe z.B. SoftwareKeyModule/@id), sowie Issuer und Seriennummer des zum Schlüssel gehörigen Zertifikats</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="KeyModuleID" type="xs:token"/>
+ <xs:element name="KeyCertIssuerSerial" type="dsig:X509IssuerSerialType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="id" type="xs:token" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="KeyGroupMapping" minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>ordnet oben definierte KeyGroups Online-Applikationen zu, die diese KeyGroups verwenden dürfen</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="X509IssuerSerial" type="dsig:X509IssuerSerialType" minOccurs="0">
+ <xs:annotation>
+ <xs:documentation>wenn das Element nicht auftritt, dann können die zugeordneten KeyGroups von allen Online-Applikationen verwendet werden</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="KeyGroup" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:attribute name="id" type="xs:token" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ChainingModes" minOccurs="0">
+ <xs:annotation>
+ <xs:documentation>spezifiziert den Algorithmus ("pkix" oder "chaining") für die Zertifikatspfadvalidierung</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="TrustAnchor">
+ <xs:annotation>
+ <xs:documentation>ein vom SystemDefaultMode abweichender ChiningMode kann für jeden TrustAnchor gesetzt werden</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="dsig:X509IssuerSerialType">
+ <xs:attribute name="mode" type="config:ChainingModeType" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="systemDefaultMode" type="config:ChainingModeType" use="optional" default="pkix"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="CRLArchive" minOccurs="0">
+ <xs:annotation>
+ <xs:documentation>spezifiziert die Dauer, die Revozierungsinformation archiviert werden muss in Tagen</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="duration" type="xs:nonNegativeInteger" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="CRLDistributionPoint" minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>spezifiziert CRL Distribution Points</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="CAIssuerDN" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>spezifiziert die CA, für die der u.a. DP verwendet werden soll</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="DistributionPoint" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>das Attribut reasonCodes enthält eine Liste von möglichen reasonCodes lt. RFC 3280: unspecified, keyCompromise, cACompromise, affiliationChanged, superseded, cessationOfOperation, certificateHold, removeFromCRL, privilegeWithdrawn, aACompromise
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="reasonCodes" type="xs:NMTOKENS" use="optional"/>
+ <xs:attribute name="uri" type="xs:anyURI" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="CreateTransformsInfoProfile" minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>ordnet eine Datei, die ein CreateTransformsInfoProfile-Element enthält, einer id zu</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="id" type="xs:token" use="required"/>
+ <xs:attribute name="filename" type="xs:string" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="CreateSignatureEnvironmentProfile" minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>ordnet eine Datei, die ein CreateSignatureEnvironmentProfile-Element enthält, einer id zu</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="id" type="xs:token" use="required"/>
+ <xs:attribute name="filename" type="xs:string" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="VerifyTransformsInfoProfile" minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>ordnet eine Datei, die ein VerifyTransformsInfoProfile-Element enthält, einer id zu</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="id" type="xs:token" use="required"/>
+ <xs:attribute name="filename" type="xs:string" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="SupplementProfile" minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>ordnet eine Datei, die ein SupplementProfile-Element enthält, einer id zu</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="id" type="xs:token" use="required"/>
+ <xs:attribute name="filename" type="xs:string" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="TrustProfile" minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>ordnet ein Verzeichnis, das vertrauenswürdige Zertifikate enthält einer id zu</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="id" type="xs:token" use="required"/>
+ <xs:attribute name="uri" type="xs:anyURI" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:simpleType name="ChainingModeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="chaining"/>
+ <xs:enumeration value="pkix"/>
+ </xs:restriction>
+ </xs:simpleType>
+</xs:schema>
diff --git a/spss.server/doc/moa_spss/examples/conf/MOA-SPSSConfiguration.xml b/spss.server/doc/moa_spss/examples/conf/MOA-SPSSConfiguration.xml
new file mode 100644
index 000000000..61f15c5cc
--- /dev/null
+++ b/spss.server/doc/moa_spss/examples/conf/MOA-SPSSConfiguration.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<MOAConfiguration xmlns="http://reference.e-government.gv.at/namespace/moaconfig/20021122#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
+ <!--werde unten angeführte Elemente nicht explizit verwendet, werden die angeführten Werte als Default-Wert verwendet-->
+ <CanonicalizationAlgorithm name="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
+ <DigestMethodAlgorithm name="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <GenericConfiguration name="autoAddCertificates" value="true"/>
+ <GenericConfiguration name="useAuthorityInfoAccess" value="true"/>
+ <GenericConfiguration name="checkRevocation" value="false"/>
+ <GenericConfiguration name="maxRevocationAge" value="0"/>
+ <GenericConfiguration name="archiveRevocationInfo" value="false"/>
+ <!--wenn DataBaseArchiveParameter.JDBCUrl nicht gesetzt ist dann ist archiveRevocationInfo immer "false"-->
+ <GenericConfiguration name="DataBaseArchiveParameter.JDBCUrl" value="jdbc:postgresql://host/moa?user=moa&amp;password=moatest"/>
+ <GenericConfiguration name="DirectoryCertStoreParameters.RootDir" value="certstore"/>
+ <!-- <HardwareKeyModule id="HWKeyModule1" name="cryptoki.dll" slotID="0" userPIN="PIN"/> -->
+ <SoftwareKeyModule id="SWKeyModule1" filename="keys/test-ee2003_normal(buergerkarte).p12" password="buergerkarte"/>
+ <SoftwareKeyModule id="SWKeyModule2" filename="keys/ecc(ego).p12" password="ego"/>
+ <KeyGroup id="PKCS12RSAKey1">
+ <Key>
+ <KeyModuleID>SWKeyModule1</KeyModuleID>
+ <KeyCertIssuerSerial>
+ <dsig:X509IssuerName>CN=IAIK Test CA,OU=IAIK Test CA,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT</dsig:X509IssuerName>
+ <dsig:X509SerialNumber>1044289238331</dsig:X509SerialNumber>
+ </KeyCertIssuerSerial>
+ </Key>
+ </KeyGroup>
+ <KeyGroup id="PKCS12ECDSAKey1">
+ <Key>
+ <KeyModuleID>SWKeyModule2</KeyModuleID>
+ <KeyCertIssuerSerial>
+ <dsig:X509IssuerName>CN=IAIK Test CA,OU=IAIK Test CA,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT</dsig:X509IssuerName>
+ <dsig:X509SerialNumber>99991044289238331</dsig:X509SerialNumber>
+ </KeyCertIssuerSerial>
+ </Key>
+ </KeyGroup>
+ <KeyGroupMapping>
+ <KeyGroup id="PKCS12RSAKey1"/>
+ <KeyGroup id="PKCS12ECDSAKey1"/>
+ </KeyGroupMapping>
+ <KeyGroupMapping>
+ <X509IssuerSerial>
+ <dsig:X509IssuerName>CN=patrick peck,OU=MOA,O=BRZ,L=Vienna,S=Vienna,C=AT</dsig:X509IssuerName>
+ <dsig:X509SerialNumber>1039104204</dsig:X509SerialNumber>
+ </X509IssuerSerial>
+ <KeyGroup id="PKCS12RSAKey1"/>
+ </KeyGroupMapping>
+ <ChainingModes systemDefaultMode="pkix">
+ <TrustAnchor mode="chaining">
+ <dsig:X509IssuerName>CN=A-Trust-nQual-0,OU=A-Trust-nQual-0,O=A-Trust,C=AT</dsig:X509IssuerName>
+ <dsig:X509SerialNumber>536</dsig:X509SerialNumber>
+ </TrustAnchor>
+ </ChainingModes>
+ <CRLArchive duration="365"/>
+ <CRLDistributionPoint>
+ <CAIssuerDN>CN=IAIK Test CA,OU=IAIK Test CA,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT</CAIssuerDN>
+ <DistributionPoint uri="http://www.iaik.at/testCA/iaik_test_sig.crl"/>
+ </CRLDistributionPoint>
+ <CRLDistributionPoint>
+ <CAIssuerDN>CN=IAIK Test CA,OU=IAIK Test CA,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT</CAIssuerDN>
+ <DistributionPoint reasonCodes="keyCompromise affiliationChanged" uri="http://www.iaik.at/testCA/iaik_test_sig.crl"/>
+ <DistributionPoint reasonCodes="certificateHold" uri="http://www.iaik.at/testCA/iaik_test_sig.crl"/>
+ </CRLDistributionPoint>
+ <!-- <CreateTransformsInfoProfile id="CreateTransformsInfoProfile1" filename="createTransformInfoProfiles/einGueltigesProfil.xml"/> -->
+ <!-- <CreateSignatureEnvironmentProfile id="CreateSignatureEnvironmentProfile1" filename="createSignatureEnvironmentProfiles/einGueltigesProfil.xml"/> -->
+ <!-- <VerifyTransformsInfoProfile id="TransformsInfoProfile1" filename="verifyTransformsInfoProfiles/einGueltigesProfil.xml"/> -->
+ <!-- <SupplementProfile id="SupplementProfile1" filename="supplementProfiles/einGueltigesProfil.xml"/> -->
+ <TrustProfile id="TrustProfile1" uri="trustProfiles/trustProfile1"/>
+</MOAConfiguration>
diff --git a/spss.server/doc/moa_spss/examples/conf/MinimalSPConfig.xml b/spss.server/doc/moa_spss/examples/conf/MinimalSPConfig.xml
new file mode 100644
index 000000000..d52391843
--- /dev/null
+++ b/spss.server/doc/moa_spss/examples/conf/MinimalSPConfig.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<MOAConfiguration xmlns="http://reference.e-government.gv.at/namespace/moaconfig/20021122#">
+ <TrustProfile id="TrustProfile1" uri="file:/SERVERDIR/resources/TrustProfile1"/>
+</MOAConfiguration>
diff --git a/spss.server/doc/moa_spss/examples/conf/MinimalSSConfig.xml b/spss.server/doc/moa_spss/examples/conf/MinimalSSConfig.xml
new file mode 100644
index 000000000..a55f5eabc
--- /dev/null
+++ b/spss.server/doc/moa_spss/examples/conf/MinimalSSConfig.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<MOAConfiguration xmlns="http://reference.e-government.gv.at/namespace/moaconfig/20021122#"
+ xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
+ <SoftwareKeyModule id="SWKeyModule1" filename="test-ee2003_normal.p12" password="buergerkarte"/>
+ <KeyGroup id="PKCS12RSAKey1">
+ <Key>
+ <KeyModuleID>SWKeyModule1</KeyModuleID>
+ <KeyCertIssuerSerial>
+ <dsig:X509IssuerName>CN=IAIK Test CA,OU=IAIK Test CA,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT</dsig:X509IssuerName>
+ <dsig:X509SerialNumber>1044289238331</dsig:X509SerialNumber>
+ </KeyCertIssuerSerial>
+ </Key>
+ </KeyGroup>
+ <KeyGroupMapping>
+ <KeyGroup id="PKCS12RSAKey1"/>
+ </KeyGroupMapping>
+</MOAConfiguration>
diff --git a/spss.server/doc/moa_spss/examples/conf/keys/ecc(ego).p12 b/spss.server/doc/moa_spss/examples/conf/keys/ecc(ego).p12
new file mode 100644
index 000000000..f84e793c5
--- /dev/null
+++ b/spss.server/doc/moa_spss/examples/conf/keys/ecc(ego).p12
Binary files differ
diff --git a/spss.server/doc/moa_spss/examples/conf/keys/test-ee2003_normal(buergerkarte).p12 b/spss.server/doc/moa_spss/examples/conf/keys/test-ee2003_normal(buergerkarte).p12
new file mode 100644
index 000000000..efaeb9b98
--- /dev/null
+++ b/spss.server/doc/moa_spss/examples/conf/keys/test-ee2003_normal(buergerkarte).p12
Binary files differ
diff --git a/spss.server/doc/moa_spss/examples/conf/trustProfiles/trustProfile1/IAIKRoot.cer b/spss.server/doc/moa_spss/examples/conf/trustProfiles/trustProfile1/IAIKRoot.cer
new file mode 100644
index 000000000..c0c60558a
--- /dev/null
+++ b/spss.server/doc/moa_spss/examples/conf/trustProfiles/trustProfile1/IAIKRoot.cer
Binary files differ
diff --git a/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureRequest1.xml b/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureRequest1.xml
new file mode 100644
index 000000000..f2966d4a9
--- /dev/null
+++ b/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureRequest1.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CreateXMLSignatureRequest xmlns="http://reference.e-government.gv.at/namespace/moa/20020822#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
+ <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>
+ <SingleSignatureInfo SecurityLayerConformity="false">
+ <DataObjectInfo Structure="enveloping">
+ <DataObject>
+ <XMLContent xml:space="preserve">Diese Daten werden signiert.</XMLContent>
+ </DataObject>
+ <CreateTransformsInfoProfile>
+ <CreateTransformsInfo>
+ <FinalDataMetaInfo>
+ <MimeType>text/plain</MimeType>
+ </FinalDataMetaInfo>
+ </CreateTransformsInfo>
+ </CreateTransformsInfoProfile>
+ </DataObjectInfo>
+ </SingleSignatureInfo>
+</CreateXMLSignatureRequest>
diff --git a/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureRequest2.xml b/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureRequest2.xml
new file mode 100644
index 000000000..0037fa570
--- /dev/null
+++ b/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureRequest2.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CreateXMLSignatureRequest xmlns="http://reference.e-government.gv.at/namespace/moa/20020822#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
+ <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>
+ <SingleSignatureInfo SecurityLayerConformity="false">
+ <DataObjectInfo Structure="enveloping" ChildOfManifest="true">
+ <DataObject>
+ <XMLContent xml:space="preserve">Diese Daten werden signiert.</XMLContent>
+ </DataObject>
+ <CreateTransformsInfoProfile>
+ <CreateTransformsInfo>
+ <FinalDataMetaInfo>
+ <MimeType>text/plain</MimeType>
+ </FinalDataMetaInfo>
+ </CreateTransformsInfo>
+ </CreateTransformsInfoProfile>
+ </DataObjectInfo>
+ </SingleSignatureInfo>
+ <SingleSignatureInfo SecurityLayerConformity="true">
+ <DataObjectInfo Structure="detached">
+ <DataObject Reference="http://localhost:8080/TestDatenGenerator/resources/testDaten.txt">
+ <Base64Content>RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM=</Base64Content>
+ </DataObject>
+ <CreateTransformsInfoProfile>
+ <CreateTransformsInfo>
+ <FinalDataMetaInfo>
+ <MimeType>text/plain</MimeType>
+ </FinalDataMetaInfo>
+ </CreateTransformsInfo>
+ </CreateTransformsInfoProfile>
+ </DataObjectInfo>
+ <DataObjectInfo Structure="enveloping">
+ <DataObject>
+ <XMLContent xml:space="preserve">
+ <data:book xmlns:data="http://uri.data.org" data:hardback="yes">
+ <data:title>Gesundheitliche Auswirkungen elektronischer Signaturen</data:title>
+ <data:first-name>Ellipse</data:first-name>
+ <data:last-name>Kurvenreich</data:last-name>
+ <data:birth-date>1951-04-16</data:birth-date>
+ <data:birth-location>Hinterm Berg</data:birth-location>
+ <data:register-number>6-930-21512-12</data:register-number>
+ </data:book>
+ </XMLContent>
+ </DataObject>
+ <CreateTransformsInfoProfile>
+ <CreateTransformsInfo>
+ <dsig:Transforms>
+ <dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116">
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+ <xsl:include href="http://localhost:8080/TestDatenGenerator/resources/CX1_book_not_here.xsl"/>
+ </xsl:stylesheet>
+ </dsig:Transform>
+ </dsig:Transforms>
+ <FinalDataMetaInfo>
+ <MimeType>text/html</MimeType>
+ </FinalDataMetaInfo>
+ </CreateTransformsInfo>
+ <Supplement>
+ <Content Reference="http://localhost:8080/TestDatenGenerator/resources/CX1_book_not_here.xsl">
+ <Base64Content>PHhzbDpzdHlsZXNoZWV0IHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJh
+bnNmb3JtIiB2ZXJzaW9uPSIxLjAiPg0KPHhzbDpvdXRwdXQgbWV0aG9kPSJodG1sIi8+DQo8eHNs
+OnRlbXBsYXRlIG1hdGNoPSJkYXRhOmJvb2siIHhtbG5zOmRhdGE9Imh0dHA6Ly91cmkuZGF0YS5v
+cmciPg0KPEhUTUw+DQo8Qk9EWT4NCjxIMT5CdWNoOiA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iZGF0
+YTp0aXRsZSIvPjwvSDE+DQo8L0JPRFk+DQo8L0hUTUw+DQo8L3hzbDp0ZW1wbGF0ZT4NCjwveHNs
+OnN0eWxlc2hlZXQ+</Base64Content>
+<!--<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:output method="html"/>
+<xsl:template match="data:book" xmlns:data="http://uri.data.org">
+<HTML>
+<BODY>
+<H1>Buch: <xsl:value-of select="data:title"/></H1>
+</BODY>
+</HTML>
+</xsl:template>
+</xsl:stylesheet> -->
+ </Content>
+ </Supplement>
+ </CreateTransformsInfoProfile>
+ </DataObjectInfo>
+ <CreateSignatureInfo xmlns:env="http://uri.env.org">
+ <CreateSignatureEnvironment>
+ <XMLContent xml:space="preserve">
+ <env:Document xmlns:env="http://uri.env.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://uri.env.org http://anyhost/envSchema.xsd">nach diesem Text wird die Signatur in das Dokument eingefuegt</env:Document>
+ </XMLContent>
+ </CreateSignatureEnvironment>
+ <CreateSignatureEnvironmentProfile>
+ <CreateSignatureLocation Index="1">//env:Document</CreateSignatureLocation>
+ </CreateSignatureEnvironmentProfile>
+ </CreateSignatureInfo>
+ </SingleSignatureInfo>
+</CreateXMLSignatureRequest>
diff --git a/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureResponse1.xml b/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureResponse1.xml
new file mode 100644
index 000000000..5dcbceac5
--- /dev/null
+++ b/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureResponse1.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CreateXMLSignatureResponse xmlns="http://reference.e-government.gv.at/namespace/moa/20020822#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><SignatureEnvironment><dsig:Signature Id="signature-1" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference Id="reference-test-0" URI="#xpointer(id('signed-data-1')/node())"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>tLODyeiWFbAkQKwhrR23jtcgu4k=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>IE0l+lYkfHmak11z2VJD7OLLZwsDT3pWaxPalTmiW9iEymd7dTILJ0rC49BgKs7r
+BAUktEvhAo+Uy6hiXxdz9r58YfXimCCtIf0IS80GuWJUXMYvgkNMNFWq/qNEkbK+
+3GwNyykETR2VUt51mYVkG0CxfMbgKwh/AkFblmdYo/Y=</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509Certificate>MIID1zCCA0SgAwIBAgIGAPMkfTU7MAkGBSsOAwIdBQAwgawxCzAJBgNVBAYTAkFU
+MSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVDSE5PTE9HWTFHMEUGA1UE
+CxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBh
+bmQgQ29tbXVuaWNhdGlvbnMxFTATBgNVBAsTDElBSUsgVGVzdCBDQTEVMBMGA1UE
+AxMMSUFJSyBUZXN0IENBMB4XDTAzMDIwMzE2MjA1NVoXDTAzMTIzMDIyNTkzMFow
+gZgxCzAJBgNVBAYTAkFUMSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVD
+SE5PTE9HWTFHMEUGA1UECxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRp
+b24gUHJvY2Vzc2luZyBhbmQgQ29tbXVuaWNhdGlvbnMxGDAWBgNVBAMUD0lzb2xk
+ZSBC/HJnZXJpbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA53m0qng6O9zV
+IAuJ22Ps91X+pddhMiA9P0QusMexQ+QEkfe43nEFIToUZ3uuoAQFd+n4MXM6D68t
+ZctGU5O4W5Aq/bEjI4efIHS0EThzgNAymqmT9Z9IIEhqm/1jhQ4SXTW33y3Xn3lx
+26DiTeApftuQB388YlV+Rs+rTyF9iRUCAwEAAaOCARwwggEYMAwGA1UdEwEB/wQC
+MAAwDgYDVR0PAQH/BAQDAgbAMBEGCWCGSAGG+EIBAQQEAwIFIDBnBgNVHSAEYDBe
+MFwGDCsGAQQBlRIBAnsBATBMMEoGCCsGAQUFBwICMD4aPFRoaXMgY2VydGlmaWNh
+dGUgb25seSBtYXkgYmUgdXNlZCBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlczA8
+BgNVHR8ENTAzMDGgL6AthitodHRwOi8vd3d3LmlhaWsuYXQvdGVzdENBL2lhaWtf
+dGVzdF9zaWcuY3JsMB0GA1UdDgQWBBQoOuoIxS8M1o/DTZkJUs0lnN5A7TAfBgNV
+HSMEGDAWgBRMILBWAgz3iAqWiKUUtFHMOrXyvzAJBgUrDgMCHQUAA4GBACY81o8m
+zb8YCuTMgeplySm5nAkxjsv1T5n/Hzz1cLfSDJZ0HyNTVx/GDszY+Dx28MdW+6DL
+o9nWPSE/4P+k9HXJe/wEyAv44OrjvpzGGKjqoc3X8v4rzMo6MBRNluu0m3y1pktT
+V/q4aiWD/nbGXdrn/AoKAvOSAQ3Qe6X+dT/1</dsig:X509Certificate></dsig:X509Data></dsig:KeyInfo><dsig:Object Id="signed-data-1">Diese Daten werden signiert.</dsig:Object></dsig:Signature></SignatureEnvironment></CreateXMLSignatureResponse> \ No newline at end of file
diff --git a/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureResponse2.xml b/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureResponse2.xml
new file mode 100644
index 000000000..8139a66ab
--- /dev/null
+++ b/spss.server/doc/moa_spss/examples/requestsResponses/CreateXMLSignatureResponse2.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CreateXMLSignatureResponse xmlns="http://reference.e-government.gv.at/namespace/moa/20020822#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><SignatureEnvironment><dsig:Signature Id="signature-1-1" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference Type="http://www.w3.org/2000/09/xmldsig#Manifest" URI="#dsig-manifest-1-1"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>N/EFe1Sj5J5+18ChKLUPK586LmQ=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>dg1cRDpm/S5Uf2kBz6X6vdiD7ECftOMJx7hPQTCunV3/WvHx/IQ66Skj4axKbiOs 0AvLk5JKtw3MtvBWbT8tqfjRZ+3r6xi252B7X4W/+mHHesXX+yUPIW3n1TY/Dy0o fxIUWF3qZZKIO5A94ButZJlecgmFZ8hzi0yiuFM25ao=</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509Certificate>MIID1zCCA0SgAwIBAgIGAPMkfTU7MAkGBSsOAwIdBQAwgawxCzAJBgNVBAYTAkFU MSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVDSE5PTE9HWTFHMEUGA1UE CxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBh bmQgQ29tbXVuaWNhdGlvbnMxFTATBgNVBAsTDElBSUsgVGVzdCBDQTEVMBMGA1UE AxMMSUFJSyBUZXN0IENBMB4XDTAzMDIwMzE2MjA1NVoXDTAzMTIzMDIyNTkzMFow gZgxCzAJBgNVBAYTAkFUMSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVD SE5PTE9HWTFHMEUGA1UECxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRp b24gUHJvY2Vzc2luZyBhbmQgQ29tbXVuaWNhdGlvbnMxGDAWBgNVBAMUD0lzb2xk ZSBC/HJnZXJpbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA53m0qng6O9zV IAuJ22Ps91X+pddhMiA9P0QusMexQ+QEkfe43nEFIToUZ3uuoAQFd+n4MXM6D68t ZctGU5O4W5Aq/bEjI4efIHS0EThzgNAymqmT9Z9IIEhqm/1jhQ4SXTW33y3Xn3lx 26DiTeApftuQB388YlV+Rs+rTyF9iRUCAwEAAaOCARwwggEYMAwGA1UdEwEB/wQC MAAwDgYDVR0PAQH/BAQDAgbAMBEGCWCGSAGG+EIBAQQEAwIFIDBnBgNVHSAEYDBe MFwGDCsGAQQBlRIBAnsBATBMMEoGCCsGAQUFBwICMD4aPFRoaXMgY2VydGlmaWNh dGUgb25seSBtYXkgYmUgdXNlZCBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlczA8 BgNVHR8ENTAzMDGgL6AthitodHRwOi8vd3d3LmlhaWsuYXQvdGVzdENBL2lhaWtf dGVzdF9zaWcuY3JsMB0GA1UdDgQWBBQoOuoIxS8M1o/DTZkJUs0lnN5A7TAfBgNV HSMEGDAWgBRMILBWAgz3iAqWiKUUtFHMOrXyvzAJBgUrDgMCHQUAA4GBACY81o8m zb8YCuTMgeplySm5nAkxjsv1T5n/Hzz1cLfSDJZ0HyNTVx/GDszY+Dx28MdW+6DL o9nWPSE/4P+k9HXJe/wEyAv44OrjvpzGGKjqoc3X8v4rzMo6MBRNluu0m3y1pktT V/q4aiWD/nbGXdrn/AoKAvOSAQ3Qe6X+dT/1</dsig:X509Certificate></dsig:X509Data></dsig:KeyInfo><dsig:Object Id="signed-data-1-1-1">Diese Daten werden signiert.</dsig:Object><dsig:Object><dsig:Manifest Id="dsig-manifest-1-1"><dsig:Reference Id="reference-1-1" URI="#xpointer(id(&apos;signed-data-1-1-1&apos;)/node())"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>tLODyeiWFbAkQKwhrR23jtcgu4k=</dsig:DigestValue></dsig:Reference></dsig:Manifest></dsig:Object></dsig:Signature></SignatureEnvironment><SignatureEnvironment><env:Document xmlns:env="http://uri.env.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://uri.env.org http://anyhost/envSchema.xsd">nach diesem Text wird die Signatur in das Dokument eingefuegt<dsig:Signature Id="signature-2-1" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference Id="reference-2-1" URI="http://localhost:8080/TestDatenGenerator/resources/testDaten.txt"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>WVob54034HfToUBDAErL5z6GFxo=</dsig:DigestValue></dsig:Reference><dsig:Reference Id="reference-2-2" URI="#xpointer(id(&apos;signed-data-2-2-1&apos;)/node())"><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116"><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:include href="http://localhost:8080/TestDatenGenerator/resources/CX1_book_not_here.xsl"/> </xsl:stylesheet></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>gJhOZajRF42VUda+ZBhWNdljSLc=</dsig:DigestValue></dsig:Reference><dsig:Reference Type="http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest" URI="#manifest-2-1"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>PLCDCNiI+09sMH1d0rH2CfwDYkY=</dsig:DigestValue></dsig:Reference><dsig:Reference Type="http://uri.etsi.org/01903/v1.1.1#SignedProperties" URI="#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id(&apos;etsi-signed-2-1&apos;)/child::etsi:QualifyingProperties/child::etsi:SignedProperties)"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>7oKv0peUxxN1jIlmd5yVFPRYocM=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>NyNKwlFZNNIEjYNViERbvDWRqDfh/ZFwUrAFWyDU37kj/xHDLFn+T2X13Sx+8oaz pa5523rqVHlOExeyp5xMCAlYGMm6e04rjGrTidNNmCr2LQEZ7pDBYkAki/afp8Ey QbVQr+WmBNcVRfLH0i6HknorR3iGJHUdx9A/kEGbhBE=</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509Certificate>MIID1zCCA0SgAwIBAgIGAPMkfTU7MAkGBSsOAwIdBQAwgawxCzAJBgNVBAYTAkFU MSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVDSE5PTE9HWTFHMEUGA1UE CxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBh bmQgQ29tbXVuaWNhdGlvbnMxFTATBgNVBAsTDElBSUsgVGVzdCBDQTEVMBMGA1UE AxMMSUFJSyBUZXN0IENBMB4XDTAzMDIwMzE2MjA1NVoXDTAzMTIzMDIyNTkzMFow gZgxCzAJBgNVBAYTAkFUMSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVD SE5PTE9HWTFHMEUGA1UECxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRp b24gUHJvY2Vzc2luZyBhbmQgQ29tbXVuaWNhdGlvbnMxGDAWBgNVBAMUD0lzb2xk ZSBC/HJnZXJpbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA53m0qng6O9zV IAuJ22Ps91X+pddhMiA9P0QusMexQ+QEkfe43nEFIToUZ3uuoAQFd+n4MXM6D68t ZctGU5O4W5Aq/bEjI4efIHS0EThzgNAymqmT9Z9IIEhqm/1jhQ4SXTW33y3Xn3lx 26DiTeApftuQB388YlV+Rs+rTyF9iRUCAwEAAaOCARwwggEYMAwGA1UdEwEB/wQC MAAwDgYDVR0PAQH/BAQDAgbAMBEGCWCGSAGG+EIBAQQEAwIFIDBnBgNVHSAEYDBe MFwGDCsGAQQBlRIBAnsBATBMMEoGCCsGAQUFBwICMD4aPFRoaXMgY2VydGlmaWNh dGUgb25seSBtYXkgYmUgdXNlZCBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlczA8 BgNVHR8ENTAzMDGgL6AthitodHRwOi8vd3d3LmlhaWsuYXQvdGVzdENBL2lhaWtf dGVzdF9zaWcuY3JsMB0GA1UdDgQWBBQoOuoIxS8M1o/DTZkJUs0lnN5A7TAfBgNV HSMEGDAWgBRMILBWAgz3iAqWiKUUtFHMOrXyvzAJBgUrDgMCHQUAA4GBACY81o8m zb8YCuTMgeplySm5nAkxjsv1T5n/Hzz1cLfSDJZ0HyNTVx/GDszY+Dx28MdW+6DL o9nWPSE/4P+k9HXJe/wEyAv44OrjvpzGGKjqoc3X8v4rzMo6MBRNluu0m3y1pktT V/q4aiWD/nbGXdrn/AoKAvOSAQ3Qe6X+dT/1</dsig:X509Certificate></dsig:X509Data></dsig:KeyInfo><dsig:Object Id="signed-data-2-2-1"> <data:book data:hardback="yes" xmlns:data="http://uri.data.org"> <data:title>Gesundheitliche Auswirkungen elektronischer Signaturen</data:title> <data:first-name>Ellipse</data:first-name> <data:last-name>Kurvenreich</data:last-name> <data:birth-date>1951-04-16</data:birth-date> <data:birth-location>Hinterm Berg</data:birth-location> <data:register-number>6-930-21512-12</data:register-number> </data:book> </dsig:Object><dsig:Object><dsig:Manifest Id="manifest-2-1"><dsig:Reference URI="http://localhost:8080/TestDatenGenerator/resources/CX1_book_not_here.xsl"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>Ym+XR9T2r7NKwGo3ndiOeenFLFE=</dsig:DigestValue></dsig:Reference></dsig:Manifest></dsig:Object><dsig:Object Id="etsi-signed-2-1"><etsi:QualifyingProperties Target="#signature-2-1" xmlns:etsi="http://uri.etsi.org/01903/v1.1.1#"><etsi:SignedProperties><etsi:SignedSignatureProperties><etsi:SigningTime>2003-06-04T11:49:35</etsi:SigningTime><etsi:SigningCertificate><etsi:Cert><etsi:CertDigest><etsi:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><etsi:DigestValue>dL59VDpBsujcngd207z0ohPl1/U=</etsi:DigestValue></etsi:CertDigest><etsi:IssuerSerial><dsig:X509IssuerName>CN=IAIK Test CA,OU=IAIK Test CA,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT</dsig:X509IssuerName><dsig:X509SerialNumber>1044289238331</dsig:X509SerialNumber></etsi:IssuerSerial></etsi:Cert></etsi:SigningCertificate><etsi:SignaturePolicyIdentifier><etsi:SignaturePolicyImplied/></etsi:SignaturePolicyIdentifier></etsi:SignedSignatureProperties><etsi:SignedDataObjectProperties><etsi:DataObjectFormat ObjectReference="#reference-2-1"><etsi:MimeType>text/plain</etsi:MimeType></etsi:DataObjectFormat><etsi:DataObjectFormat ObjectReference="#reference-2-2"><etsi:MimeType>text/html</etsi:MimeType></etsi:DataObjectFormat></etsi:SignedDataObjectProperties></etsi:SignedProperties></etsi:QualifyingProperties></dsig:Object></dsig:Signature></env:Document></SignatureEnvironment></CreateXMLSignatureResponse> \ No newline at end of file
diff --git a/spss.server/doc/moa_spss/examples/requestsResponses/TestDatenGenerator.zip b/spss.server/doc/moa_spss/examples/requestsResponses/TestDatenGenerator.zip
new file mode 100644
index 000000000..134913cb2
--- /dev/null
+++ b/spss.server/doc/moa_spss/examples/requestsResponses/TestDatenGenerator.zip
Binary files differ
diff --git a/spss.server/doc/moa_spss/examples/requestsResponses/VerifyCMSSignatureRequest.xml b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyCMSSignatureRequest.xml
new file mode 100644
index 000000000..1331cd3d0
--- /dev/null
+++ b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyCMSSignatureRequest.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?><VerifyCMSSignatureRequest xmlns="http://reference.e-government.gv.at/namespace/moa/20020822#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Signatories="1"> <DateTime>2003-04-04T09:30:47-05:00</DateTime> <CMSSignature>MIIGAAYJKoZIhvcNAQcCoIIF8TCCBe0CAQExCzAJBgUrDgMCGgUAMDsGCSqGSIb3DQEHAaAuBCxE
+aWVzIHNpbmQgVGVzdGRhdGVuDQoyLiBaZWlsZQ0KMy4gWmVpbGUNCmF1c6CCA9swggPXMIIDRKAD
+AgECAgYA8yR9NTswCQYFKw4DAh0FADCBrDELMAkGA1UEBhMCQVQxJjAkBgNVBAoTHUdSQVogVU5J
+VkVSU0lUWSBPRiBURUNITk9MT0dZMUcwRQYDVQQLEz5JbnNpdHV0ZSBmb3IgQXBwbGllZCBJbmZv
+cm1hdGlvbiBQcm9jZXNzaW5nIGFuZCBDb21tdW5pY2F0aW9uczEVMBMGA1UECxMMSUFJSyBUZXN0
+IENBMRUwEwYDVQQDEwxJQUlLIFRlc3QgQ0EwHhcNMDMwMjAzMTYyMDU1WhcNMDMxMjMwMjI1OTMw
+WjCBmDELMAkGA1UEBhMCQVQxJjAkBgNVBAoTHUdSQVogVU5JVkVSU0lUWSBPRiBURUNITk9MT0dZ
+MUcwRQYDVQQLEz5JbnNpdHV0ZSBmb3IgQXBwbGllZCBJbmZvcm1hdGlvbiBQcm9jZXNzaW5nIGFu
+ZCBDb21tdW5pY2F0aW9uczEYMBYGA1UEAxQPSXNvbGRlIEL8cmdlcmluMIGfMA0GCSqGSIb3DQEB
+AQUAA4GNADCBiQKBgQDnebSqeDo73NUgC4nbY+z3Vf6l12EyID0/RC6wx7FD5ASR97jecQUhOhRn
+e66gBAV36fgxczoPry1ly0ZTk7hbkCr9sSMjh58gdLQROHOA0DKaqZP1n0ggSGqb/WOFDhJdNbff
+LdefeXHboOJN4Cl+25AHfzxiVX5Gz6tPIX2JFQIDAQABo4IBHDCCARgwDAYDVR0TAQH/BAIwADAO
+BgNVHQ8BAf8EBAMCBsAwEQYJYIZIAYb4QgEBBAQDAgUgMGcGA1UdIARgMF4wXAYMKwYBBAGVEgEC
+ewEBMEwwSgYIKwYBBQUHAgIwPho8VGhpcyBjZXJ0aWZpY2F0ZSBvbmx5IG1heSBiZSB1c2VkIGZv
+ciBkZW1vbnN0cmF0aW9uIHB1cnBvc2VzMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly93d3cuaWFp
+ay5hdC90ZXN0Q0EvaWFpa190ZXN0X3NpZy5jcmwwHQYDVR0OBBYEFCg66gjFLwzWj8NNmQlSzSWc
+3kDtMB8GA1UdIwQYMBaAFEwgsFYCDPeICpaIpRS0Ucw6tfK/MAkGBSsOAwIdBQADgYEAJjzWjybN
+vxgK5MyB6mXJKbmcCTGOy/VPmf8fPPVwt9IMlnQfI1NXH8YOzNj4PHbwx1b7oMuj2dY9IT/g/6T0
+dcl7/ATIC/jg6uO+nMYYqOqhzdfy/ivMyjowFE2W67SbfLWmS1NX+rhqJYP+dsZd2uf8CgoC85IB
+DdB7pf51P/UxggG9MIIBuQIBATCBtzCBrDELMAkGA1UEBhMCQVQxJjAkBgNVBAoTHUdSQVogVU5J
+VkVSU0lUWSBPRiBURUNITk9MT0dZMUcwRQYDVQQLEz5JbnNpdHV0ZSBmb3IgQXBwbGllZCBJbmZv
+cm1hdGlvbiBQcm9jZXNzaW5nIGFuZCBDb21tdW5pY2F0aW9uczEVMBMGA1UECxMMSUFJSyBUZXN0
+IENBMRUwEwYDVQQDEwxJQUlLIFRlc3QgQ0ECBgDzJH01OzAJBgUrDgMCGgUAoF0wGAYJKoZIhvcN
+AQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMDMwNDE3MTQ0ODA4WjAjBgkqhkiG9w0B
+CQQxFgQUWVob54034HfToUBDAErL5z6GFxowDQYJKoZIhvcNAQEBBQAEgYA3PgDZt7KWMUscVY6J
+0NVA83Al3+3rEFrvtClcfNNeCwptd9zRTv7Xvj7JLoozNoCr4sg2K9cwfjpinUrh9EartS1gqoRR
+7Binn38eR1lRSU+Pg3HaXh9EnEDIeCsI8qDGYCJ1TOf/YwJzUR1YYCZMyrJK2mpmDmT9fmvKwdJO
+iA==</CMSSignature> <TrustProfileID>TrustProfile1</TrustProfileID></VerifyCMSSignatureRequest> \ No newline at end of file
diff --git a/spss.server/doc/moa_spss/examples/requestsResponses/VerifyCMSSignatureResponse.xml b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyCMSSignatureResponse.xml
new file mode 100644
index 000000000..9fc8f57bd
--- /dev/null
+++ b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyCMSSignatureResponse.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VerifyCMSSignatureResponse xmlns="http://reference.e-government.gv.at/namespace/moa/20020822#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><SignerInfo><dsig:X509Data><dsig:X509SubjectName>CN=Isolde B\C3\BCrgerin,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT</dsig:X509SubjectName><dsig:X509IssuerSerial><dsig:X509IssuerName>CN=IAIK Test CA,OU=IAIK Test CA,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT</dsig:X509IssuerName><dsig:X509SerialNumber>1044289238331</dsig:X509SerialNumber></dsig:X509IssuerSerial><dsig:X509Certificate>MIID1zCCA0SgAwIBAgIGAPMkfTU7MAkGBSsOAwIdBQAwgawxCzAJBgNVBAYTAkFU
+MSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVDSE5PTE9HWTFHMEUGA1UE
+CxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBh
+bmQgQ29tbXVuaWNhdGlvbnMxFTATBgNVBAsTDElBSUsgVGVzdCBDQTEVMBMGA1UE
+AxMMSUFJSyBUZXN0IENBMB4XDTAzMDIwMzE2MjA1NVoXDTAzMTIzMDIyNTkzMFow
+gZgxCzAJBgNVBAYTAkFUMSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVD
+SE5PTE9HWTFHMEUGA1UECxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRp
+b24gUHJvY2Vzc2luZyBhbmQgQ29tbXVuaWNhdGlvbnMxGDAWBgNVBAMUD0lzb2xk
+ZSBC/HJnZXJpbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA53m0qng6O9zV
+IAuJ22Ps91X+pddhMiA9P0QusMexQ+QEkfe43nEFIToUZ3uuoAQFd+n4MXM6D68t
+ZctGU5O4W5Aq/bEjI4efIHS0EThzgNAymqmT9Z9IIEhqm/1jhQ4SXTW33y3Xn3lx
+26DiTeApftuQB388YlV+Rs+rTyF9iRUCAwEAAaOCARwwggEYMAwGA1UdEwEB/wQC
+MAAwDgYDVR0PAQH/BAQDAgbAMBEGCWCGSAGG+EIBAQQEAwIFIDBnBgNVHSAEYDBe
+MFwGDCsGAQQBlRIBAnsBATBMMEoGCCsGAQUFBwICMD4aPFRoaXMgY2VydGlmaWNh
+dGUgb25seSBtYXkgYmUgdXNlZCBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlczA8
+BgNVHR8ENTAzMDGgL6AthitodHRwOi8vd3d3LmlhaWsuYXQvdGVzdENBL2lhaWtf
+dGVzdF9zaWcuY3JsMB0GA1UdDgQWBBQoOuoIxS8M1o/DTZkJUs0lnN5A7TAfBgNV
+HSMEGDAWgBRMILBWAgz3iAqWiKUUtFHMOrXyvzAJBgUrDgMCHQUAA4GBACY81o8m
+zb8YCuTMgeplySm5nAkxjsv1T5n/Hzz1cLfSDJZ0HyNTVx/GDszY+Dx28MdW+6DL
+o9nWPSE/4P+k9HXJe/wEyAv44OrjvpzGGKjqoc3X8v4rzMo6MBRNluu0m3y1pktT
+V/q4aiWD/nbGXdrn/AoKAvOSAQ3Qe6X+dT/1</dsig:X509Certificate></dsig:X509Data></SignerInfo><SignatureCheck><Code>0</Code></SignatureCheck><CertificateCheck><Code>0</Code></CertificateCheck></VerifyCMSSignatureResponse> \ No newline at end of file
diff --git a/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureRequest1.xml b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureRequest1.xml
new file mode 100644
index 000000000..f52b288ad
--- /dev/null
+++ b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureRequest1.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VerifyXMLSignatureRequest xmlns="http://reference.e-government.gv.at/namespace/moa/20020822#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
+ <DateTime>2003-03-24T12:41:54+01:00</DateTime>
+ <VerifySignatureInfo>
+ <VerifySignatureEnvironment><XMLContent><dsig:Signature Id="signature-1" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference Id="reference-test-0" URI="#xpointer(id('signed-data-1')/node())"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>tLODyeiWFbAkQKwhrR23jtcgu4k=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>IE0l+lYkfHmak11z2VJD7OLLZwsDT3pWaxPalTmiW9iEymd7dTILJ0rC49BgKs7rBAUktEvhAo+Uy6hiXxdz9r58YfXimCCtIf0IS80GuWJUXMYvgkNMNFWq/qNEkbK+3GwNyykETR2VUt51mYVkG0CxfMbgKwh/AkFblmdYo/Y=</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509Certificate>MIID1zCCA0SgAwIBAgIGAPMkfTU7MAkGBSsOAwIdBQAwgawxCzAJBgNVBAYTAkFUMSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVDSE5PTE9HWTFHMEUGA1UECxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBhbmQgQ29tbXVuaWNhdGlvbnMxFTATBgNVBAsTDElBSUsgVGVzdCBDQTEVMBMGA1UEAxMMSUFJSyBUZXN0IENBMB4XDTAzMDIwMzE2MjA1NVoXDTAzMTIzMDIyNTkzMFowgZgxCzAJBgNVBAYTAkFUMSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVDSE5PTE9HWTFHMEUGA1UECxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBhbmQgQ29tbXVuaWNhdGlvbnMxGDAWBgNVBAMUD0lzb2xkZSBC/HJnZXJpbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA53m0qng6O9zVIAuJ22Ps91X+pddhMiA9P0QusMexQ+QEkfe43nEFIToUZ3uuoAQFd+n4MXM6D68tZctGU5O4W5Aq/bEjI4efIHS0EThzgNAymqmT9Z9IIEhqm/1jhQ4SXTW33y3Xn3lx26DiTeApftuQB388YlV+Rs+rTyF9iRUCAwEAAaOCARwwggEYMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgbAMBEGCWCGSAGG+EIBAQQEAwIFIDBnBgNVHSAEYDBeMFwGDCsGAQQBlRIBAnsBATBMMEoGCCsGAQUFBwICMD4aPFRoaXMgY2VydGlmaWNhdGUgb25seSBtYXkgYmUgdXNlZCBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlczA8BgNVHR8ENTAzMDGgL6AthitodHRwOi8vd3d3LmlhaWsuYXQvdGVzdENBL2lhaWtfdGVzdF9zaWcuY3JsMB0GA1UdDgQWBBQoOuoIxS8M1o/DTZkJUs0lnN5A7TAfBgNVHSMEGDAWgBRMILBWAgz3iAqWiKUUtFHMOrXyvzAJBgUrDgMCHQUAA4GBACY81o8mzb8YCuTMgeplySm5nAkxjsv1T5n/Hzz1cLfSDJZ0HyNTVx/GDszY+Dx28MdW+6DLo9nWPSE/4P+k9HXJe/wEyAv44OrjvpzGGKjqoc3X8v4rzMo6MBRNluu0m3y1pktTV/q4aiWD/nbGXdrn/AoKAvOSAQ3Qe6X+dT/1</dsig:X509Certificate></dsig:X509Data></dsig:KeyInfo><dsig:Object Id="signed-data-1">Diese Daten werden signiert.</dsig:Object></dsig:Signature></XMLContent></VerifySignatureEnvironment><VerifySignatureLocation>//dsig:Signature</VerifySignatureLocation>
+ </VerifySignatureInfo>
+ <TrustProfileID>TrustProfile1</TrustProfileID>
+</VerifyXMLSignatureRequest>
diff --git a/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureRequest2.xml b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureRequest2.xml
new file mode 100644
index 000000000..194738900
--- /dev/null
+++ b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureRequest2.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VerifyXMLSignatureRequest xmlns="http://reference.e-government.gv.at/namespace/moa/20020822#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
+ <DateTime>2003-03-24T12:41:54+01:00</DateTime>
+ <VerifySignatureInfo>
+ <VerifySignatureEnvironment>
+ <XMLContent><env:Document xmlns:env="http://uri.env.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://uri.env.org http://anyhost/envSchema.xsd">nach diesem Text wird die Signatur in das Dokument eingefuegt<dsig:Signature Id="signature-2-1" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference Id="reference-2-1" URI="http://localhost:8080/TestDatenGenerator/resources/testDaten.txt"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>WVob54034HfToUBDAErL5z6GFxo=</dsig:DigestValue></dsig:Reference><dsig:Reference Id="reference-2-2" URI="#xpointer(id(&apos;signed-data-2-2-1&apos;)/node())"><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116"><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:include href="http://localhost:8080/TestDatenGenerator/resources/CX1_book_not_here.xsl"/>
+ </xsl:stylesheet></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>gJhOZajRF42VUda+ZBhWNdljSLc=</dsig:DigestValue></dsig:Reference><dsig:Reference Type="http://www.buergerkarte.at/specifications/Securitylayer/20020225#SignatureManifest" URI="#manifest-2-1"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>PLCDCNiI+09sMH1d0rH2CfwDYkY=</dsig:DigestValue></dsig:Reference><dsig:Reference Type="http://uri.etsi.org/01903/v1.1.1#SignedProperties" URI="#xmlns(etsi=http://uri.etsi.org/01903/v1.1.1%23)%20xpointer(id(&apos;etsi-signed-2-1&apos;)/child::etsi:QualifyingProperties/child::etsi:SignedProperties)"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>q0HHxe1K9hoC7OFHxHiIR3Si+lE=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>hxUgloDXBZvoavTrNQYDoEvtS8WF50iHC41vUFUbphVWkHYZcI2+VLCl+J7GoCu5
+rKiv7Z6QqFxe0GDSAR3d8qjW2gNU6GtX4UJxdVaGlXxTOofUfQSEyoq8Xw0PHhBs
+TknuIMtwfxANPSO8CbSPXm5w8DPoMuzskaZyXFZQJbo=</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509Certificate>MIID1zCCA0SgAwIBAgIGAPMkfTU7MAkGBSsOAwIdBQAwgawxCzAJBgNVBAYTAkFU
+MSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVDSE5PTE9HWTFHMEUGA1UE
+CxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBh
+bmQgQ29tbXVuaWNhdGlvbnMxFTATBgNVBAsTDElBSUsgVGVzdCBDQTEVMBMGA1UE
+AxMMSUFJSyBUZXN0IENBMB4XDTAzMDIwMzE2MjA1NVoXDTAzMTIzMDIyNTkzMFow
+gZgxCzAJBgNVBAYTAkFUMSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVD
+SE5PTE9HWTFHMEUGA1UECxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRp
+b24gUHJvY2Vzc2luZyBhbmQgQ29tbXVuaWNhdGlvbnMxGDAWBgNVBAMUD0lzb2xk
+ZSBC/HJnZXJpbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA53m0qng6O9zV
+IAuJ22Ps91X+pddhMiA9P0QusMexQ+QEkfe43nEFIToUZ3uuoAQFd+n4MXM6D68t
+ZctGU5O4W5Aq/bEjI4efIHS0EThzgNAymqmT9Z9IIEhqm/1jhQ4SXTW33y3Xn3lx
+26DiTeApftuQB388YlV+Rs+rTyF9iRUCAwEAAaOCARwwggEYMAwGA1UdEwEB/wQC
+MAAwDgYDVR0PAQH/BAQDAgbAMBEGCWCGSAGG+EIBAQQEAwIFIDBnBgNVHSAEYDBe
+MFwGDCsGAQQBlRIBAnsBATBMMEoGCCsGAQUFBwICMD4aPFRoaXMgY2VydGlmaWNh
+dGUgb25seSBtYXkgYmUgdXNlZCBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlczA8
+BgNVHR8ENTAzMDGgL6AthitodHRwOi8vd3d3LmlhaWsuYXQvdGVzdENBL2lhaWtf
+dGVzdF9zaWcuY3JsMB0GA1UdDgQWBBQoOuoIxS8M1o/DTZkJUs0lnN5A7TAfBgNV
+HSMEGDAWgBRMILBWAgz3iAqWiKUUtFHMOrXyvzAJBgUrDgMCHQUAA4GBACY81o8m
+zb8YCuTMgeplySm5nAkxjsv1T5n/Hzz1cLfSDJZ0HyNTVx/GDszY+Dx28MdW+6DL
+o9nWPSE/4P+k9HXJe/wEyAv44OrjvpzGGKjqoc3X8v4rzMo6MBRNluu0m3y1pktT
+V/q4aiWD/nbGXdrn/AoKAvOSAQ3Qe6X+dT/1</dsig:X509Certificate></dsig:X509Data></dsig:KeyInfo><dsig:Object Id="signed-data-2-2-1">
+ <data:book data:hardback="yes" xmlns:data="http://uri.data.org">
+ <data:title>Gesundheitliche Auswirkungen elektronischer Signaturen</data:title>
+ <data:first-name>Ellipse</data:first-name>
+ <data:last-name>Kurvenreich</data:last-name>
+ <data:birth-date>1951-04-16</data:birth-date>
+ <data:birth-location>Hinterm Berg</data:birth-location>
+ <data:register-number>6-930-21512-12</data:register-number>
+ </data:book>
+ </dsig:Object><dsig:Object><dsig:Manifest Id="manifest-2-1"><dsig:Reference URI="http://localhost:8080/TestDatenGenerator/resources/CX1_book_not_here.xsl"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>Ym+XR9T2r7NKwGo3ndiOeenFLFE=</dsig:DigestValue></dsig:Reference></dsig:Manifest></dsig:Object><dsig:Object Id="etsi-signed-2-1"><etsi:QualifyingProperties Target="#signature-2-1" xmlns:etsi="http://uri.etsi.org/01903/v1.1.1#"><etsi:SignedProperties><etsi:SignedSignatureProperties><etsi:SigningTime>2003-06-12T13:03:49</etsi:SigningTime><etsi:SigningCertificate><etsi:Cert><etsi:CertDigest><etsi:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><etsi:DigestValue>dL59VDpBsujcngd207z0ohPl1/U=</etsi:DigestValue></etsi:CertDigest><etsi:IssuerSerial><dsig:X509IssuerName>CN=IAIK Test CA,OU=IAIK Test CA,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT</dsig:X509IssuerName><dsig:X509SerialNumber>1044289238331</dsig:X509SerialNumber></etsi:IssuerSerial></etsi:Cert></etsi:SigningCertificate><etsi:SignaturePolicyIdentifier><etsi:SignaturePolicyImplied/></etsi:SignaturePolicyIdentifier></etsi:SignedSignatureProperties><etsi:SignedDataObjectProperties><etsi:DataObjectFormat ObjectReference="#reference-2-1"><etsi:MimeType>text/plain</etsi:MimeType></etsi:DataObjectFormat><etsi:DataObjectFormat ObjectReference="#reference-2-2"><etsi:MimeType>text/html</etsi:MimeType></etsi:DataObjectFormat></etsi:SignedDataObjectProperties></etsi:SignedProperties></etsi:QualifyingProperties></dsig:Object></dsig:Signature></env:Document></XMLContent>
+ </VerifySignatureEnvironment>
+ <VerifySignatureLocation>//dsig:Signature</VerifySignatureLocation>
+ </VerifySignatureInfo>
+<SupplementProfile>
+ <Content Reference="http://anyhost/envSchema.xsd">
+ <XMLContent xml:space="preserve">
+ <xsd:schema targetNamespace="http://uri.env.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
+ <xsd:element name="Document">
+ <xsd:complexType mixed="true">
+ <xsd:sequence minOccurs="0" maxOccurs="unbounded">
+ <xsd:any namespace="##any" processContents="lax"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </XMLContent>
+ </Content>
+</SupplementProfile>
+<ReturnHashInputData/>
+<TrustProfileID>TrustProfile1</TrustProfileID>
+</VerifyXMLSignatureRequest>
diff --git a/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureResponse1.xml b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureResponse1.xml
new file mode 100644
index 000000000..17bd7684a
--- /dev/null
+++ b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureResponse1.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<VerifyXMLSignatureResponse xmlns="http://reference.e-government.gv.at/namespace/moa/20020822#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><SignerInfo><dsig:X509Data><dsig:X509IssuerSerial><dsig:X509IssuerName>CN=IAIK Test CA,OU=IAIK Test CA,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT</dsig:X509IssuerName><dsig:X509SerialNumber>1044289238331</dsig:X509SerialNumber></dsig:X509IssuerSerial><dsig:X509SubjectName>CN=Isolde B\C3\BCrgerin,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT</dsig:X509SubjectName><dsig:X509Certificate>MIID1zCCA0SgAwIBAgIGAPMkfTU7MAkGBSsOAwIdBQAwgawxCzAJBgNVBAYTAkFU
+MSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVDSE5PTE9HWTFHMEUGA1UE
+CxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBh
+bmQgQ29tbXVuaWNhdGlvbnMxFTATBgNVBAsTDElBSUsgVGVzdCBDQTEVMBMGA1UE
+AxMMSUFJSyBUZXN0IENBMB4XDTAzMDIwMzE2MjA1NVoXDTAzMTIzMDIyNTkzMFow
+gZgxCzAJBgNVBAYTAkFUMSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVD
+SE5PTE9HWTFHMEUGA1UECxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRp
+b24gUHJvY2Vzc2luZyBhbmQgQ29tbXVuaWNhdGlvbnMxGDAWBgNVBAMUD0lzb2xk
+ZSBC/HJnZXJpbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA53m0qng6O9zV
+IAuJ22Ps91X+pddhMiA9P0QusMexQ+QEkfe43nEFIToUZ3uuoAQFd+n4MXM6D68t
+ZctGU5O4W5Aq/bEjI4efIHS0EThzgNAymqmT9Z9IIEhqm/1jhQ4SXTW33y3Xn3lx
+26DiTeApftuQB388YlV+Rs+rTyF9iRUCAwEAAaOCARwwggEYMAwGA1UdEwEB/wQC
+MAAwDgYDVR0PAQH/BAQDAgbAMBEGCWCGSAGG+EIBAQQEAwIFIDBnBgNVHSAEYDBe
+MFwGDCsGAQQBlRIBAnsBATBMMEoGCCsGAQUFBwICMD4aPFRoaXMgY2VydGlmaWNh
+dGUgb25seSBtYXkgYmUgdXNlZCBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlczA8
+BgNVHR8ENTAzMDGgL6AthitodHRwOi8vd3d3LmlhaWsuYXQvdGVzdENBL2lhaWtf
+dGVzdF9zaWcuY3JsMB0GA1UdDgQWBBQoOuoIxS8M1o/DTZkJUs0lnN5A7TAfBgNV
+HSMEGDAWgBRMILBWAgz3iAqWiKUUtFHMOrXyvzAJBgUrDgMCHQUAA4GBACY81o8m
+zb8YCuTMgeplySm5nAkxjsv1T5n/Hzz1cLfSDJZ0HyNTVx/GDszY+Dx28MdW+6DL
+o9nWPSE/4P+k9HXJe/wEyAv44OrjvpzGGKjqoc3X8v4rzMo6MBRNluu0m3y1pktT
+V/q4aiWD/nbGXdrn/AoKAvOSAQ3Qe6X+dT/1</dsig:X509Certificate></dsig:X509Data></SignerInfo><SignatureCheck><Code>0</Code></SignatureCheck><CertificateCheck><Code>0</Code></CertificateCheck></VerifyXMLSignatureResponse> \ No newline at end of file
diff --git a/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureResponse2.xml b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureResponse2.xml
new file mode 100644
index 000000000..c367b0b0e
--- /dev/null
+++ b/spss.server/doc/moa_spss/examples/requestsResponses/VerifyXMLSignatureResponse2.xml
@@ -0,0 +1,62 @@
+Calling ...
+Return ...
+<?xml version="1.0" encoding="UTF-8"?>
+<VerifyXMLSignatureResponse xmlns="http://reference.e-government.gv.at/namespace/moa/20020822#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><SignerInfo><dsig:X509Data><dsig:X509SubjectName>CN=Isolde B\C3\BCrgerin,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT</dsig:X509SubjectName><dsig:X509IssuerSerial><dsig:X509IssuerName>CN=IAIK Test CA,OU=IAIK Test CA,OU=Insitute for Applied Information Processing and Communications,O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT</dsig:X509IssuerName><dsig:X509SerialNumber>1044289238331</dsig:X509SerialNumber></dsig:X509IssuerSerial><dsig:X509Certificate>MIID1zCCA0SgAwIBAgIGAPMkfTU7MAkGBSsOAwIdBQAwgawxCzAJBgNVBAYTAkFU
+MSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVDSE5PTE9HWTFHMEUGA1UE
+CxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBh
+bmQgQ29tbXVuaWNhdGlvbnMxFTATBgNVBAsTDElBSUsgVGVzdCBDQTEVMBMGA1UE
+AxMMSUFJSyBUZXN0IENBMB4XDTAzMDIwMzE2MjA1NVoXDTAzMTIzMDIyNTkzMFow
+gZgxCzAJBgNVBAYTAkFUMSYwJAYDVQQKEx1HUkFaIFVOSVZFUlNJVFkgT0YgVEVD
+SE5PTE9HWTFHMEUGA1UECxM+SW5zaXR1dGUgZm9yIEFwcGxpZWQgSW5mb3JtYXRp
+b24gUHJvY2Vzc2luZyBhbmQgQ29tbXVuaWNhdGlvbnMxGDAWBgNVBAMUD0lzb2xk
+ZSBC/HJnZXJpbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA53m0qng6O9zV
+IAuJ22Ps91X+pddhMiA9P0QusMexQ+QEkfe43nEFIToUZ3uuoAQFd+n4MXM6D68t
+ZctGU5O4W5Aq/bEjI4efIHS0EThzgNAymqmT9Z9IIEhqm/1jhQ4SXTW33y3Xn3lx
+26DiTeApftuQB388YlV+Rs+rTyF9iRUCAwEAAaOCARwwggEYMAwGA1UdEwEB/wQC
+MAAwDgYDVR0PAQH/BAQDAgbAMBEGCWCGSAGG+EIBAQQEAwIFIDBnBgNVHSAEYDBe
+MFwGDCsGAQQBlRIBAnsBATBMMEoGCCsGAQUFBwICMD4aPFRoaXMgY2VydGlmaWNh
+dGUgb25seSBtYXkgYmUgdXNlZCBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlczA8
+BgNVHR8ENTAzMDGgL6AthitodHRwOi8vd3d3LmlhaWsuYXQvdGVzdENBL2lhaWtf
+dGVzdF9zaWcuY3JsMB0GA1UdDgQWBBQoOuoIxS8M1o/DTZkJUs0lnN5A7TAfBgNV
+HSMEGDAWgBRMILBWAgz3iAqWiKUUtFHMOrXyvzAJBgUrDgMCHQUAA4GBACY81o8m
+zb8YCuTMgeplySm5nAkxjsv1T5n/Hzz1cLfSDJZ0HyNTVx/GDszY+Dx28MdW+6DL
+o9nWPSE/4P+k9HXJe/wEyAv44OrjvpzGGKjqoc3X8v4rzMo6MBRNluu0m3y1pktT
+V/q4aiWD/nbGXdrn/AoKAvOSAQ3Qe6X+dT/1</dsig:X509Certificate></dsig:X509Data></SignerInfo><HashInputData><Base64Content>RGllcyBzaW5kIFRlc3RkYXRlbg0KMi4gWmVpbGUNCjMuIFplaWxlDQphdXM=</Base64Content></HashInputData><HashInputData><Base64Content>PEhUTUwgeG1sbnM6ZGF0YT0iaHR0cDovL3VyaS5kYXRhLm9yZyI+DQo8Qk9EWT4N
+CjxIMT5CdWNoOiBHZXN1bmRoZWl0bGljaGUgQXVzd2lya3VuZ2VuIGVsZWt0cm9u
+aXNjaGVyIFNpZ25hdHVyZW48L0gxPg0KPC9CT0RZPg0KPC9IVE1MPg0K</Base64Content></HashInputData><HashInputData><Base64Content>PGRzaWc6TWFuaWZlc3QgeG1sbnM6ZHNpZz0iaHR0cDovL3d3dy53My5vcmcvMjAw
+MC8wOS94bWxkc2lnIyIgeG1sbnM6ZW52PSJodHRwOi8vdXJpLmVudi5vcmciIHht
+bG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFu
+Y2UiIElkPSJtYW5pZmVzdC0yLTEiPjxkc2lnOlJlZmVyZW5jZSBVUkk9Imh0dHA6
+Ly9sb2NhbGhvc3Q6ODA4MC9UZXN0RGF0ZW5HZW5lcmF0b3IvcmVzb3VyY2VzL0NY
+MV9ib29rX25vdF9oZXJlLnhzbCI+PGRzaWc6RGlnZXN0TWV0aG9kIEFsZ29yaXRo
+bT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3NoYTEiPjwvZHNp
+ZzpEaWdlc3RNZXRob2Q+PGRzaWc6RGlnZXN0VmFsdWU+WW0rWFI5VDJyN05Ld0dv
+M25kaU9lZW5GTEZFPTwvZHNpZzpEaWdlc3RWYWx1ZT48L2RzaWc6UmVmZXJlbmNl
+PjwvZHNpZzpNYW5pZmVzdD4=</Base64Content></HashInputData><HashInputData><Base64Content>PGV0c2k6U2lnbmVkUHJvcGVydGllcyB4bWxuczpkc2lnPSJodHRwOi8vd3d3Lncz
+Lm9yZy8yMDAwLzA5L3htbGRzaWcjIiB4bWxuczplbnY9Imh0dHA6Ly91cmkuZW52
+Lm9yZyIgeG1sbnM6ZXRzaT0iaHR0cDovL3VyaS5ldHNpLm9yZy8wMTkwMy92MS4x
+LjEjIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1h
+LWluc3RhbmNlIj48ZXRzaTpTaWduZWRTaWduYXR1cmVQcm9wZXJ0aWVzPjxldHNp
+OlNpZ25pbmdUaW1lPjIwMDMtMDYtMTJUMTM6MDM6NDk8L2V0c2k6U2lnbmluZ1Rp
+bWU+PGV0c2k6U2lnbmluZ0NlcnRpZmljYXRlPjxldHNpOkNlcnQ+PGV0c2k6Q2Vy
+dERpZ2VzdD48ZXRzaTpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3
+LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9ldHNpOkRpZ2VzdE1ldGhv
+ZD48ZXRzaTpEaWdlc3RWYWx1ZT5kTDU5VkRwQnN1amNuZ2QyMDd6MG9oUGwxL1U9
+PC9ldHNpOkRpZ2VzdFZhbHVlPjwvZXRzaTpDZXJ0RGlnZXN0PjxldHNpOklzc3Vl
+clNlcmlhbD48ZHNpZzpYNTA5SXNzdWVyTmFtZT5DTj1JQUlLIFRlc3QgQ0EsT1U9
+SUFJSyBUZXN0IENBLE9VPUluc2l0dXRlIGZvciBBcHBsaWVkIEluZm9ybWF0aW9u
+IFByb2Nlc3NpbmcgYW5kIENvbW11bmljYXRpb25zLE89R1JBWiBVTklWRVJTSVRZ
+IE9GIFRFQ0hOT0xPR1ksQz1BVDwvZHNpZzpYNTA5SXNzdWVyTmFtZT48ZHNpZzpY
+NTA5U2VyaWFsTnVtYmVyPjEwNDQyODkyMzgzMzE8L2RzaWc6WDUwOVNlcmlhbE51
+bWJlcj48L2V0c2k6SXNzdWVyU2VyaWFsPjwvZXRzaTpDZXJ0PjwvZXRzaTpTaWdu
+aW5nQ2VydGlmaWNhdGU+PGV0c2k6U2lnbmF0dXJlUG9saWN5SWRlbnRpZmllcj48
+ZXRzaTpTaWduYXR1cmVQb2xpY3lJbXBsaWVkPjwvZXRzaTpTaWduYXR1cmVQb2xp
+Y3lJbXBsaWVkPjwvZXRzaTpTaWduYXR1cmVQb2xpY3lJZGVudGlmaWVyPjwvZXRz
+aTpTaWduZWRTaWduYXR1cmVQcm9wZXJ0aWVzPjxldHNpOlNpZ25lZERhdGFPYmpl
+Y3RQcm9wZXJ0aWVzPjxldHNpOkRhdGFPYmplY3RGb3JtYXQgT2JqZWN0UmVmZXJl
+bmNlPSIjcmVmZXJlbmNlLTItMSI+PGV0c2k6TWltZVR5cGU+dGV4dC9wbGFpbjwv
+ZXRzaTpNaW1lVHlwZT48L2V0c2k6RGF0YU9iamVjdEZvcm1hdD48ZXRzaTpEYXRh
+T2JqZWN0Rm9ybWF0IE9iamVjdFJlZmVyZW5jZT0iI3JlZmVyZW5jZS0yLTIiPjxl
+dHNpOk1pbWVUeXBlPnRleHQvaHRtbDwvZXRzaTpNaW1lVHlwZT48L2V0c2k6RGF0
+YU9iamVjdEZvcm1hdD48L2V0c2k6U2lnbmVkRGF0YU9iamVjdFByb3BlcnRpZXM+
+PC9ldHNpOlNpZ25lZFByb3BlcnRpZXM+</Base64Content></HashInputData><SignatureCheck><Code>0</Code></SignatureCheck><CertificateCheck><Code>0</Code></CertificateCheck></VerifyXMLSignatureResponse> \ No newline at end of file
diff --git a/spss.server/doc/moa_spss/examples/testclient/APIClientExample.java b/spss.server/doc/moa_spss/examples/testclient/APIClientExample.java
new file mode 100644
index 000000000..10324f221
--- /dev/null
+++ b/spss.server/doc/moa_spss/examples/testclient/APIClientExample.java
@@ -0,0 +1,100 @@
+import java.io.ByteArrayInputStream;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+import at.gv.egovernment.moa.spss.api.SPSSFactory;
+import at.gv.egovernment.moa.spss.api.SignatureCreationService;
+import at.gv.egovernment.moa.spss.api.xmlsign.*;
+import at.gv.egovernment.moa.spss.api.common.*;
+
+/**
+ * @author Sven Aigner
+ *
+ * Dies ist ein einfaches Beispielprogramm für die Erstellung
+ * einer digitalen Signatur mittel der API-Funktionen des
+ * MOA-SPSS Servers
+ */
+public class APIClientExample {
+
+ /**
+ * Hauptfunktion des Beispielprogramms
+ * @param args wird nicht ausgewertet
+ * @throws Exception sollten Fehler auftreten werden die Fehler an die Java-VM weitergeleitet
+ */
+ public static void main(String[] args) throws Exception{
+
+ // Serverfunktionshandler instanzieren
+ SPSSFactory spf = SPSSFactory.getInstance();
+
+ // Signaturedaten in ein Contentobjekt einbinden
+ byte []data = "Dies sind Testdaten".getBytes("UTF-8");
+ ByteArrayInputStream bis = new ByteArrayInputStream(data);
+ Content cont = spf.createContent(bis,"http://uri.data.org");
+
+ // Beschreibungselement zu den Daten erstellen
+ MetaInfo mi = spf.createMetaInfo("text/plain","Testdaten",null);
+
+ // Transformationen erstellen
+ CreateTransformsInfo cti = spf.createCreateTransformsInfo(null,mi);
+ CreateTransformsInfoProfile ct = spf.createCreateTransformsInfoProfile(cti,null);
+
+ // Datenobjekt aufbauen
+ DataObjectInfo doi = spf.createDataObjectInfo(DataObjectInfo.STRUCTURE_DETACHED,false,cont,ct);
+
+ List dataobjectinfolist = new ArrayList();
+ dataobjectinfolist.add(doi);
+ // alles zusammenpacken zu einer SingleSignature
+ SingleSignatureInfo ssi = spf.createSingleSignatureInfo(dataobjectinfolist,null,false);
+
+ List singlesignatureinfolist = new ArrayList();
+ singlesignatureinfolist.add(ssi);
+ // die Signatur in einen Request einbetten
+ CreateXMLSignatureRequest cxsreq = spf.createCreateXMLSignatureRequest("PKCS12RSAKey1",singlesignatureinfolist);
+
+ // Signatureerstellungsservice aufrufen
+ SignatureCreationService scs = SignatureCreationService.getInstance();
+
+ // Response auswerten
+ CreateXMLSignatureResponse cxsres = scs.createXMLSignature(cxsreq);
+
+ List elements = cxsres.getResponseElements();
+
+ SignatureEnvironmentResponse ser = (SignatureEnvironmentResponse)elements.get(0);
+
+ // Responsetyp lesen
+ int response_type = ser.getResponseType();
+
+ if(response_type == SignatureEnvironmentResponse.ERROR_RESPONSE)
+ {
+ // Fehlerfall
+ System.out.println("Bei der Erstellung der Signatur ist ein Fehler aufgetreten");
+ }
+ else
+ {
+ // Signaturerstellung erfolgreich
+ Element se = ser.getSignatureEnvironment();
+ System.out.println("Signaturerstellung erfolgreich");
+
+ displayTree(se);
+ }
+ }
+
+ /**
+ * Einfache Ausgabefunktion für einen DOM-Baum
+ * @param input auszugebender Knoten
+ */
+ public static void displayTree(Node input)
+ {
+ // Ausgabe eines Knotens
+ System.out.println(input);
+ // Alle Kindknoten ausgeben
+ NodeList children = input.getChildNodes();
+ for(int counter=0;counter<children.getLength();counter++)
+ displayTree(children.item(counter));
+ }
+}
diff --git a/spss.server/doc/moa_spss/examples/testclient/HTTPClientExample.java b/spss.server/doc/moa_spss/examples/testclient/HTTPClientExample.java
new file mode 100644
index 000000000..f70f33d12
--- /dev/null
+++ b/spss.server/doc/moa_spss/examples/testclient/HTTPClientExample.java
@@ -0,0 +1,120 @@
+import java.io.FileInputStream;
+import java.util.Vector;
+
+import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.rpc.Call;
+import javax.xml.rpc.Service;
+import javax.xml.rpc.ServiceFactory;
+
+import org.apache.axis.message.SOAPBodyElement;
+import org.apache.xml.serialize.LineSeparator;
+import org.apache.xml.serialize.OutputFormat;
+import org.apache.xml.serialize.XMLSerializer;
+import org.w3c.dom.Document;
+
+/**
+ * @author Sven
+ *
+ * Dies ist eine Beispielklasse die den Zugriff auf MOA-SPSS mittels AXIS erklärt
+ */
+public class HTTPClientExample {
+
+ // SOAP Konstanten
+ // CreationServer
+ private static final QName SERVICE_QNAME = new QName("SignatureCreation");
+ private static final String ENDPOINT = "http://localhost:8080/moa-spss/services/SignatureCreation";
+ /*private static final String ENDPOINT =
+ "http://localhost:8080/moa-spss/services/SignatureVerification";*/
+ /*
+ Secure Endpoint
+ dieser Endpoint kann alternativ zum ersten ENDPOINT verwendet werden
+ um eine sichere Verbindung zum Server herzustellen
+ private static final String SECURE_ENDPOINT =
+ "https://localhost:8443/moa-spss/services/SignatureCreation";
+ */
+
+ /*
+ VerificationService
+ wenn Sie diese Werte für ENDPOINT und SERVICE verwenden können Sie eine
+ Signaturprüfung anstatt einer Signaturerstellung durchführen (entweder mit
+ ENDPOINT für eine nicht sichere Verbindung bzw. SECURE_ENDPOINT für eine
+ sichere Verbindung)
+
+ private static final QName SERVICE_QNAME = new QName("SignatureVerification");
+
+ private static final String SECURE_ENDPOINT =
+ "https://localhost:8443/moa-spss/services/SignatureVerification";
+ */
+
+ /**
+ * Methode main.
+ *
+ * Enthält den Beispielcode der nötig ist um von Java aus auf MOA-SPSS zugreifen zu können.
+ * Der Zugriff passiert über das AXIS-Framework.
+ *
+ * @param args wird nicht verwendet
+ */
+ public static void main(String[] args) {
+
+ try {
+ // Datei mit Request einlesen
+ FileInputStream inputStream = new FileInputStream("example_request.xml");
+
+ // Parser/DOMBuilder instanzieren
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ factory.setNamespaceAware(true);
+ DocumentBuilder builder = factory.newDocumentBuilder();
+
+ // XML Datei in einen DOM-Baum umwandeln
+ Document root_request = builder.parse(inputStream);
+
+ // AXIS-Server instanzieren
+ Service service = ServiceFactory.newInstance().createService(SERVICE_QNAME);
+
+ // Call öffnen
+ Call call = service.createCall();
+
+ // Neues BodyElement anlegen und mit dem DOM-Baum füllen
+ SOAPBodyElement body = new SOAPBodyElement(root_request.getDocumentElement());
+ SOAPBodyElement[] params = new SOAPBodyElement[] {body};
+
+ // Call mit Endpoint verknüpfen
+ call.setTargetEndpointAddress(ENDPOINT);
+
+ // Call auslösen und die Antworten speichern
+ System.out.println("Calling ...");
+ Vector responses = (Vector) call.invoke(params);
+
+ // erstes BodyElement auslesen
+ SOAPBodyElement response = (SOAPBodyElement) responses.get(0);
+
+ // aus der Response den DOM-Baum lesen
+ Document root_response = response.getAsDocument();
+ System.out.println("Return ...");
+
+ // Ausgabe auf System.out zum Testen
+ OutputFormat format = new OutputFormat((Document)root_response);
+
+ format.setLineSeparator("\n");
+ format.setIndenting(false);
+ format.setPreserveSpace(true);
+ format.setOmitXMLDeclaration(false);
+ format.setEncoding("UTF-8");
+
+ XMLSerializer serializer = new XMLSerializer (System.out, format);
+ //serializer.asDOMSerializer();
+ serializer.serialize(root_response);
+
+ // Antwort verarbeiten
+ // ...
+ // ...
+ }
+ catch(Exception e)
+ {
+ e.printStackTrace();
+ }
+
+ }
+}
diff --git a/spss.server/doc/moa_spss/examples/testclient/HTTPSClientExampleClientAuth.java b/spss.server/doc/moa_spss/examples/testclient/HTTPSClientExampleClientAuth.java
new file mode 100644
index 000000000..0a17e7fcd
--- /dev/null
+++ b/spss.server/doc/moa_spss/examples/testclient/HTTPSClientExampleClientAuth.java
@@ -0,0 +1,139 @@
+import java.io.FileInputStream;
+import java.security.Security;
+import java.util.Vector;
+
+import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.rpc.Call;
+import javax.xml.rpc.Service;
+import javax.xml.rpc.ServiceFactory;
+
+import org.apache.axis.message.SOAPBodyElement;
+import org.apache.xml.serialize.LineSeparator;
+import org.apache.xml.serialize.OutputFormat;
+import org.apache.xml.serialize.XMLSerializer;
+import org.w3c.dom.Document;
+
+import com.sun.net.ssl.internal.ssl.Provider;
+
+/**
+ * @author Sven
+ *
+ * Dies ist eine Beispielklasse die den Zugriff auf MOA-SPSS mittels AXIS erklärt. <br>
+ * Die Datenübertragung erfolgt über eine sichere Verbindung (Clientauthentisierung)
+ */
+public class HTTPSClientExampleClientAuth {
+
+ // SOAP Konstanten
+ // CreationServer
+ private static final QName SERVICE_QNAME = new QName("SignatureCreation");
+ private static final String ENDPOINT = "http://localhost:8080/moa-spss/services/SignatureCreation";
+ // Secure Endpoint
+ private static final String SECURE_ENDPOINT = "https://localhost:8443/moa-spss/services/SignatureCreation";
+
+ /*
+ VerificationService
+ wenn Sie diese Werte für ENDPOINT und SERVICE verwenden können Sie eine
+ Signaturprüfung anstatt einer Signaturerstellung durchführen (entweder mit
+ ENDPOINT für eine nicht sichere Verbindung bzw. SECURE_ENDPOINT für eine
+ sichere Verbindung)
+
+ private static final QName SERVICE_QNAME = new QName("SignatureVerification");
+ private static final String ENDPOINT =
+ "http://localhost:8080/moa-spss/services/SignatureVerification";
+ private static final String SECURE_ENDPOINT =
+ "https://localhost:8443/moa-spss/services/SignatureVerification";
+ */
+ public static final String HANDLER = "java.protocol.handler.pkgs";
+ public static final String KEYSTORE = "javax.net.ssl.keyStore";
+ public static final String KEYSTOREPASSWORD = "javax.net.ssl.keyStorePassword";
+ public static final String TRUSTSTORE = "javax.net.ssl.trustStore";
+ public static final String TRUSTSTOREPASSWORD = "javax.net.ssl.trustStorePassword";
+
+
+ /**
+ * Methode main.
+ *
+ * Enthält den Beispielcode der nötig ist um von Java aus auf MOA-SPSS zugreifen zu können.
+ * Der Zugriff passiert über das AXIS-Framework. Die Verbindung ist eine SSL Verbindung mit Clientauthentisierung.
+ *
+ * @param args wird nicht verwendet
+ */
+
+ public static void main(String[] args) {
+
+ try {
+ /*
+ Einrichten der SSL Verbindungseigenschaften
+
+ Die Verbindung wird über SSL hergestellt, als TrustStore und als Keystore
+ wird ein JavaKeyStore verwendet der die notwendigen Daten enthält
+ */
+
+ Security.addProvider(new Provider());
+ System.setProperty(HANDLER,"com.sun.net.ssl.internal.www.protocol");
+ System.setProperty(KEYSTORE, "client.keystore");
+ System.setProperty(KEYSTOREPASSWORD, "changeit");
+ System.setProperty(TRUSTSTORE, "client.keystore");
+ System.setProperty(TRUSTSTOREPASSWORD, "changeit");
+
+ // Datei mit Request einlesen
+ FileInputStream inputStream = new FileInputStream("example_request.xml");
+
+ // Parser/DOMBuilder instanzieren
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ factory.setNamespaceAware(true);
+ DocumentBuilder builder = factory.newDocumentBuilder();
+
+ // XML Datei in einen DOM-Baum umwandeln
+ Document root_request = builder.parse(inputStream);
+
+ // AXIS-Server instanzieren
+ Service service = ServiceFactory.newInstance().createService(SERVICE_QNAME);
+
+ // Call öffnen
+ Call call = service.createCall();
+
+ // Neues BodyElement anlegen und mit dem DOM-Baum füllen
+ SOAPBodyElement body = new SOAPBodyElement(root_request.getDocumentElement());
+ SOAPBodyElement[] params = new SOAPBodyElement[] {body};
+
+ // Call mit Endpoint verknüpfen
+ call.setTargetEndpointAddress(SECURE_ENDPOINT);
+
+ // Call auslösen und die Antworten speichern
+ System.out.println("Calling ...");
+ Vector responses = (Vector) call.invoke(params);
+
+ // erstes BodyElement auslesen
+ SOAPBodyElement response = (SOAPBodyElement) responses.get(0);
+
+ // aus der Response den DOM-Baum lesen
+ Document root_response = response.getAsDocument();
+ System.out.println("Return ...");
+
+ // Ausgabe auf System.out zum Testen
+ OutputFormat format = new OutputFormat((Document)root_response);
+
+ format.setLineSeparator("\n");
+ format.setIndenting(false);
+ format.setPreserveSpace(true);
+ format.setOmitXMLDeclaration(false);
+ format.setEncoding("UTF-8");
+
+ XMLSerializer serializer = new XMLSerializer (System.out, format);
+ serializer.asDOMSerializer();
+ serializer.serialize(root_response);
+
+ // Antwort verarbeiten
+ // ...
+ // ...
+ }
+ catch(Exception e)
+ {
+ e.printStackTrace();
+ }
+
+ }
+} \ No newline at end of file
diff --git a/spss.server/doc/moa_spss/examples/testclient/HTTPSClientExampleServerAuth.java b/spss.server/doc/moa_spss/examples/testclient/HTTPSClientExampleServerAuth.java
new file mode 100644
index 000000000..26e0df9f1
--- /dev/null
+++ b/spss.server/doc/moa_spss/examples/testclient/HTTPSClientExampleServerAuth.java
@@ -0,0 +1,143 @@
+import java.io.FileInputStream;
+import java.security.Security;
+import java.util.Vector;
+
+import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.rpc.Call;
+import javax.xml.rpc.Service;
+import javax.xml.rpc.ServiceFactory;
+
+import org.apache.axis.message.SOAPBodyElement;
+import org.apache.xml.serialize.LineSeparator;
+import org.apache.xml.serialize.OutputFormat;
+import org.apache.xml.serialize.XMLSerializer;
+import org.w3c.dom.Document;
+
+import com.sun.net.ssl.internal.ssl.Provider;
+
+/**
+ * @author Sven
+ *
+ * Dies ist eine Beispielklasse die den Zugriff auf MOA-SPSS mittels AXIS erklärt. <br>
+ * Die Datenübertragung erfolgt über eine sichere Verbindung (Serverauthentisierung)
+ */
+public class HTTPSClientExampleServerAuth {
+
+ // SOAP Konstanten
+ // CreationServer
+ private static final QName SERVICE_QNAME = new QName("SignatureCreation");
+ private static final String ENDPOINT = "http://localhost:8080/moa-spss/services/SignatureCreation";
+ // Secure Endpoint
+ private static final String SECURE_ENDPOINT = "https://localhost:8443/moa-spss/services/SignatureCreation";
+
+ /*
+ Secure Endpoint
+ dieser Endpoint kann alternativ zum ersten ENDPOINT verwendet werden
+ um eine sichere Verbindung zum Server herzustellen
+ private static final String SECURE_ENDPOINT =
+ "https://localhost:8443/moa-spss/services/SignatureCreation";
+ */
+
+ /*
+ VerificationService
+ wenn Sie diese Werte für ENDPOINT und SERVICE verwenden können Sie eine
+ Signaturprüfung anstatt einer Signaturerstellung durchführen (entweder mit
+ ENDPOINT für eine nicht sichere Verbindung bzw. SECURE_ENDPOINT für eine
+ sichere Verbindung)
+
+ private static final QName SERVICE_QNAME = new QName("SignatureVerification");
+ private static final String ENDPOINT =
+ "http://localhost:8080/moa-spss/services/SignatureVerification";
+ private static final String SECURE_ENDPOINT =
+ "https://localhost:8443/moa-spss/services/SignatureVerification";
+ */
+
+ // SSL Konstanten
+ public static final String HANDLER = "java.protocol.handler.pkgs";
+ public static final String TRUSTSTORE = "javax.net.ssl.trustStore";
+ public static final String TRUSTSTOREPASSWORD = "javax.net.ssl.trustStorePassword";
+
+ /**
+ * Methode main.
+ *
+ * Enthält den Beispielcode der nötig ist um von Java aus auf MOA-SPSS zugreifen zu können.
+ * Der Zugriff passiert über das AXIS-Framework. Die Verbindung ist eine SSL Verbindung mit Serverauthentisierung.
+ *
+ * @param args wird nicht verwendet
+ */
+ public static void main(String[] args) {
+
+ try {
+ /*
+ Einrichten der SSL Verbindungseigenschaften
+
+ Die Verbindung wird über SSL hergestellt, als TrustStore wird
+ ein JavaKeyStore verwendet der die notwendigen Daten enthält
+ */
+
+ Security.addProvider(new Provider());
+ System.setProperty(HANDLER,"com.sun.net.ssl.internal.www.protocol");
+ System.setProperty(TRUSTSTORE, "client.keystore");
+ System.setProperty(TRUSTSTOREPASSWORD, "changeit");
+
+ // Datei mit Request einlesen
+ FileInputStream inputStream = new FileInputStream("example_request.xml");
+
+ // Parser/DOMBuilder instanzieren
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ factory.setNamespaceAware(true);
+ DocumentBuilder builder = factory.newDocumentBuilder();
+
+ // XML Datei in einen DOM-Baum umwandeln
+ Document root_request = builder.parse(inputStream);
+
+ // AXIS-Server instanzieren
+ Service service = ServiceFactory.newInstance().createService(SERVICE_QNAME);
+
+ // Call öffnen
+ Call call = service.createCall();
+
+ // Neues BodyElement anlegen und mit dem DOM-Baum füllen
+ SOAPBodyElement body = new SOAPBodyElement(root_request.getDocumentElement());
+ SOAPBodyElement[] params = new SOAPBodyElement[] {body};
+
+ // Call mit Endpoint verknüpfen
+ call.setTargetEndpointAddress(SECURE_ENDPOINT);
+
+ // Call auslösen und die Antworten speichern
+ System.out.println("Calling ...");
+ Vector responses = (Vector) call.invoke(params);
+
+ // erstes BodyElement auslesen
+ SOAPBodyElement response = (SOAPBodyElement) responses.get(0);
+
+ // aus der Response den DOM-Baum lesen
+ Document root_response = response.getAsDocument();
+ System.out.println("Return ...");
+
+ // Ausgabe auf System.out zum Testen
+ OutputFormat format = new OutputFormat((Document)root_response);
+
+ format.setLineSeparator("\n");
+ format.setIndenting(false);
+ format.setPreserveSpace(true);
+ format.setOmitXMLDeclaration(false);
+ format.setEncoding("UTF-8");
+
+ XMLSerializer serializer = new XMLSerializer (System.out, format);
+ serializer.asDOMSerializer();
+ serializer.serialize(root_response);
+
+ // Antwort verarbeiten
+ // ...
+ // ...
+ }
+ catch(Exception e)
+ {
+ e.printStackTrace();
+ }
+
+ }
+} \ No newline at end of file
diff --git a/spss.server/doc/moa_spss/examples/testclient/client.keystore b/spss.server/doc/moa_spss/examples/testclient/client.keystore
new file mode 100644
index 000000000..bdb6a5d14
--- /dev/null
+++ b/spss.server/doc/moa_spss/examples/testclient/client.keystore
Binary files differ
diff --git a/spss.server/doc/moa_spss/examples/testclient/example_request.xml b/spss.server/doc/moa_spss/examples/testclient/example_request.xml
new file mode 100644
index 000000000..6b8166d06
--- /dev/null
+++ b/spss.server/doc/moa_spss/examples/testclient/example_request.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?><CreateXMLSignatureRequest
+ xmlns="http://reference.e-government.gv.at/namespace/moa/20020822#"
+ xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
+ <KeyIdentifier>PKCS12RSAKey1</KeyIdentifier>
+ <SingleSignatureInfo SecurityLayerConformity="false">
+ <DataObjectInfo Structure="enveloping" ChildOfManifest="false">
+ <DataObject>
+ <XMLContent xml:space="preserve">Testdaten</XMLContent>
+ </DataObject>
+ <CreateTransformsInfoProfile>
+ <CreateTransformsInfo>
+ <FinalDataMetaInfo>
+ <MimeType>text/plain</MimeType>
+ </FinalDataMetaInfo>
+ </CreateTransformsInfo>
+ </CreateTransformsInfoProfile>
+ </DataObjectInfo>
+ </SingleSignatureInfo>
+</CreateXMLSignatureRequest> \ No newline at end of file
diff --git a/spss.server/doc/moa_spss/faqs.htm b/spss.server/doc/moa_spss/faqs.htm
new file mode 100644
index 000000000..9c01f31ee
--- /dev/null
+++ b/spss.server/doc/moa_spss/faqs.htm
@@ -0,0 +1,100 @@
+<html>
+<head>
+ <title>FAQs - Häufig gestellte Fragen </title>
+ <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
+ <meta content="heinz.rosenkranz@brz.gv.at" name="author"/>
+
+<style type="text/css">
+ body { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; }
+ td { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; }
+ th { font-family:"Verdana", "Arial"; font-size:10pt; font-weight:bold; color:#c0c0c0; background:#505050}
+ li { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; margin-top:3px }
+ ul { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; margin-top:3px }
+ #titel { font-family:"Verdana", "Arial"; font-size:18pt; color:#505060; }
+ #subtitel { font-family:"Verdana", "Arial"; font-size:12pt; font-weight:bold; color:#505060; }
+ #slogan { font-family:"Verdana", "Arial"; font-size:8pt; color:#808090; text-align:justify; width:160px }
+ #block { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; text-align:justify }
+ #klein { font-family:"Verdana", "Arial"; font-size:9pt; color:#505060; margin-top:6px }
+ a:link {color:#000090}
+ a:visited {color:#000090}
+ a:hover {color:#c03030}
+ a {text-decoration: none}
+</style>
+
+<script language="JavaScript">
+<!--
+function goWin(url) {
+ Fenster=window.open(url,"smallWin","toolbar=0,location=0,directories=0,status=0,menubar=0,resizable=yes,scrollbars=yes,width=500,height=480,top=20,screenY=0,left=20,screenX=0");
+ window.setTimeout("showWin()",300);
+}
+function showWin() { Fenster.focus(); }
+// -->
+</script>
+</head>
+
+<body bgcolor="#FFFFFF" >
+<div style="width:650px">
+
+<!-- Projekt-Logo -->
+<div style="height:42px; font-size:16pt; color:#b0b8c0; background:#003050">
+&#160;Module für Online-Applikationen
+</div>
+<div style="margin-left:8px; margin-top:3px; font-size:8pt; color:#707070; ">
+<!-- Development Center der BRZ GmbH, A-Trust und IAIK Graz -->&#160;
+</div>
+<div style="margin-top:-65px; text-align:right; font-size:8pt; font-weight:bold; color:#d04040;" >
+Projekt <span style="font-size:48pt; ">moa</span>&#160;
+</div>
+<br />
+
+<!-- First Section with Navigation -->
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top">
+<div style="font-weight:bold; margin-top:12px">FAQs</div><br />
+<div id="klein"><a href="moa.htm"><img src="../moa_images/west.gif" border="0" width="13" height="14" />
+ <b> Zurück</b></a></div>
+<br />
+<!-- div id="slogan">
+MOA ist eine Entwicklung des Bundesrechenzentrums BRZ in Zusammenarbeit mit A-Trust und dem Institut für angewandte Informations- und Kom-munikationstechnik (IAIK) der Universität Graz
+</div -->
+</td>
+
+<td valign="top">
+<div id="titel">FAQs - Häufig gestellte Fragen </div>
+
+<div id="Administration" />
+<p id="subtitel">Konflikt zwischen JDK 1.3.1 und IAIK JCE Provider</p>
+<p id="block">
+Auf Grund einer mangelhaften Implementierung in einigen Versionen des JDK 1.3.1 kann es beim Betrieb von MOA zu folgendem Problem kommen: Sun macht in der Implementierung von PKCS7.getCertificate() einen Downcast vom Interface java.security.Principal auf die eigene Implementierung, was zu einer ClassCastException führt, wenn der JCE-Provider von Sun nicht an erster Stelle in der List der Security-Provider installiert ist. MOA geht nun aber so vor, dass der JCE-Provider des IAIK an die erste Stelle installiert wird, wenn er zum Zeitpunkt der Konfiguration noch nicht installiert war. Wird dann von irgendeinem ClassLoader der jar-Verifier angeworfen, wird PKCS7.getCertificate() verwendet, und es kommt zu einer ClassCastException.
+</p>
+<p id="block">
+Wird MOA über die API-Schnittstelle verwendet, ist ein Workaround die manuelle Installation des IAIK-JCE-Providers nach dem Sun JCE-Provider (etwa an die letzte Stelle), bevor die MOA-Konfiguration aufgerufen wird. Bei Verwendung der Webservices ist die Möglichkeit der statischen Konfiguration der JCE-Provider mittels Angabe in der Datei $JAVA_HOME/jre/lib/security/java.security der einzige bekannte Workaround. Hierzu müssen die Einträge
+<pre>
+ security.provider.1=sun.security.provider.Sun
+ security.provider.2=com.sun.rsajca.Provider
+</pre>
+durch folgenden Eintrag ergänzt werden:
+<pre>
+ security.provider.3=iaik.security.provider.IAIK
+</pre>
+</p>
+
+</td></tr></table>
+
+
+
+
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top"><br /></td>
+<td valign="top">
+<hr />
+<div style="font-size:8pt; color:#909090">&copy; 2003 <!-- Development Center, BRZ GmbH --></div>
+</td></tr></table>
+<br />
+
+
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/spss.server/doc/moa_spss/links.htm b/spss.server/doc/moa_spss/links.htm
new file mode 100644
index 000000000..cd9888c30
--- /dev/null
+++ b/spss.server/doc/moa_spss/links.htm
@@ -0,0 +1,122 @@
+<html>
+<head>
+ <title>MOA Links</title>
+ <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
+ <meta content="heinz.rosenkranz@brz.gv.at" name="author"/>
+
+<style type="text/css">
+ body { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; }
+ td { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; }
+ th { font-family:"Verdana", "Arial"; font-size:10pt; font-weight:bold; color:#c0c0c0; background:#505050}
+ li { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; margin-top:3px }
+ ul { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; margin-top:3px }
+ #titel { font-family:"Verdana", "Arial"; font-size:18pt; color:#505060; }
+ #subtitel { font-family:"Verdana", "Arial"; font-size:12pt; font-weight:bold; color:#505060; }
+ #slogan { font-family:"Verdana", "Arial"; font-size:8pt; color:#808090; text-align:justify; width:160px }
+ #block { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; text-align:justify }
+ #klein { font-family:"Verdana", "Arial"; font-size:9pt; color:#505060; margin-top:6px }
+ a:link {color:#000090}
+ a:visited {color:#000090}
+ a:hover {color:#c03030}
+ a {text-decoration: none}
+</style>
+
+<script language="JavaScript">
+<!--
+function goWin(url) {
+ Fenster=window.open(url,"smallWin","toolbar=0,location=0,directories=0,status=0,menubar=0,resizable=yes,scrollbars=yes,width=500,height=480,top=20,screenY=0,left=20,screenX=0");
+ window.setTimeout("showWin()",300);
+}
+function showWin() { Fenster.focus(); }
+// -->
+</script>
+</head>
+
+<body bgcolor="#FFFFFF" >
+<div style="width:650px">
+
+<!-- Projekt-Logo -->
+<div style="height:42px; font-size:16pt; color:#b0b8c0; background:#003050">
+&#160;Module für Online-Applikationen
+</div>
+<div style="margin-left:8px; margin-top:3px; font-size:8pt; color:#707070; ">
+<!-- Development Center der BRZ GmbH, A-Trust und IAIK Graz -->&#160;
+</div>
+<div style="margin-top:-65px; text-align:right; font-size:8pt; font-weight:bold; color:#d04040;" >
+Projekt <span style="font-size:48pt; ">moa</span>&#160;
+</div>
+<br />
+
+<!-- First Section with Navigation -->
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top">
+<div style="font-weight:bold; margin-top:12px">MOA Links</div><br />
+<div id="klein"><a href="#Extern"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Ext. Komponenten</b></a></div>
+<div id="klein"><a href="#Administration"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Administration</b></a></div>
+<div id="klein"><a href="#Anwendung"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Anwendung</b></a></div>
+<div id="klein"><a href="#Spezifikationen"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Spezifikationen</b></a></div>
+<br />
+<div id="klein"><a href="moa.htm"><img src="../moa_images/west.gif" border="0" width="13" height="14" />
+ <b> Zurück</b></a></div>
+<br />
+<!-- div id="slogan">
+MOA ist eine Entwicklung des Bundesrechenzentrums BRZ in Zusammenarbeit mit A-Trust und dem Institut für angewandte Informations- und Kom-munikationstechnik (IAIK) der Universität Graz
+</div -->
+</td>
+
+<td valign="top">
+<div id="titel">MOA Links </div>
+
+<div id="Administration" />
+<p id="subtitel">Externe Komponenten</p>
+
+<div id="klein">Apache <br /> <a href="http://httpd.apache.org/docs-2.0/">http://httpd.apache.org/docs-2.0</a></div>
+<div id="klein">Internet Information Server <br />
+<a href="http://www.microsoft.com/windows2000/en/server/iis/default.asp">http://www.microsoft.com/windows2000/en/server/iis/default.asp</a></div>
+<div id="klein">Tomcat <br /> <a href="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/">http://jakarta.apache.org/tomcat/tomcat-4.1-doc</a> </div>
+<div id="klein">Tomcat mod_SSL <br /> <a href="http://httpd.apache.org/docs-2.0/ssl/">http://httpd.apache.org/docs-2.0/ssl</a></div>
+<div id="klein">Tomcat mod_jk <br /> <a href="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/">http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2</a></div>
+<div id="klein">Logging Toolkit <br /> <a href="http://jakarta.apache.org/log4j/docs/index.html">http://jakarta.apache.org/log4j/docs/ </a></div>
+<div id="klein">IAIK JCE <br /> <a href="http://jce.iaik.tugraz.at/products/index.php">http://jce.iaik.tugraz.at/products/index.php </a></div>
+<div id="klein">PostgreSQL <br /> <a href="http://techdocs.postgresql.org/installguides.php">http://techdocs.postgresql.org </a></div>
+<div id="klein">HSM (Protectserver orange) <br /> <a href="http://www.eracom-tech.com/">http://www.eracom-tech.com </a></div>
+
+
+<div id="Spezifikationen" />
+<p id="subtitel">Spezifikationen</p>
+<p id="klein">
+<div id="klein">XML Signature <br /> <a href="http://www.w3c.org/Signature/">http://www.w3c.org/Signature</a></div>
+<div id="klein">XMLDsig-Core <br /> <a href="http://www.w3c.org/TR/xmldsig-core/">http://www.w3c.org/xmldsig-core</a></div>
+<div id="klein">Canonical XML <br /> <a href="http://www.w3c.org/TR/xml-c14n/">http://www.w3c.org/TR/xml-c14n</a></div>
+<div id="klein">Exclusive Canonical XML <br /> <a href="http://www.w3c.org/TR/xml-exc-c14n/">http://www.w3c.org/TR/xml-exc-c14n</a></div>
+<div id="klein">XPath Filter <br /> <a href="http://www.w3c.org/TR/xmldsig-filter2/">http://www.w3c.org/xmldsig-filter2</a></div>
+<div id="klein">XML Schema <br /> <a href="http://www.w3c.org/XML/Schema/">http://www.w3c.org/XML/Schema</a></div>
+<div id="klein">XSL und XSLT <br /> <a href="http://www.w3c.org/Style/XSL/">http://www.w3c.org/Style/XSL</a></div>
+<div id="klein">DOM <br /> <a href="http://www.w3c.org/DOM/">http://www.w3c.org/DOM</a></div>
+<div id="klein">E-Government in Österreich <br /> <a href="http://reference.e-government.gv.at/">http://reference.e-government.gv.at</a></div>
+<div id="klein">Security Layer Version 1.1 <br /> <a href="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20020831">http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20020831</a></div>
+</p>
+
+</td></tr></table>
+
+
+
+
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top"><br /></td>
+<td valign="top">
+<hr />
+<div style="font-size:8pt; color:#909090">&copy; 2003 <!-- Development Center, BRZ GmbH --></div>
+</td></tr></table>
+<br />
+
+
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/spss.server/doc/moa_spss/moa.htm b/spss.server/doc/moa_spss/moa.htm
new file mode 100644
index 000000000..cd66138d1
--- /dev/null
+++ b/spss.server/doc/moa_spss/moa.htm
@@ -0,0 +1,177 @@
+<html>
+<head>
+ <title>MOA Module fuer Online Applikationen</title>
+ <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
+ <meta content="heinz.rosenkranz@brz.gv.at" name="author"/>
+
+<style type="text/css">
+ body { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; }
+ td { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; }
+ li { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; margin-top:3px }
+ ul { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; margin-top:3px }
+ tt { font-size:9pt; color:#505060; }
+ #titel { font-family:"Verdana", "Arial"; font-size:18pt; color:#505060; }
+ #subtitel { font-family:"Verdana", "Arial"; font-size:12pt; font-weight:bold; color:#505060; }
+ #slogan { font-family:"Verdana", "Arial"; font-size:8pt; color:#808090; text-align:justify; width:160px }
+ #block { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; text-align:justify }
+ #klein { font-family:"Verdana", "Arial"; font-size:9pt; color:#505060; margin-top:3px }
+ a:link {color:#000090}
+ a:visited {color:#000090}
+ a:hover {color:#c03030}
+ a {text-decoration: none}
+</style>
+
+<script language="JavaScript">
+<!--
+function goWin(url) {
+ Fenster=window.open(url,"smallWin","toolbar=0,location=0,directories=0,status=0,menubar=0,resizable=yes,scrollbars=yes,width=500,height=480,top=20,screenY=0,left=20,screenX=0");
+ window.setTimeout("showWin()",300);
+}
+function showWin() { Fenster.focus(); }
+// -->
+</script>
+</head>
+
+<body bgcolor="#FFFFFF" >
+<div style="width:650px">
+
+
+
+<!-- Projekt-Logo -->
+<div style="height:42px; font-size:16pt; color:#b0b8c0; background:#003050">
+&#160;Module für Online-Applikationen
+</div>
+<div style="margin-left:8px; margin-top:3px; font-size:8pt; color:#707070; ">
+<!-- Development Center der BRZ GmbH, A-Trust und IAIK Graz -->&#160;
+</div>
+<div style="margin-top:-65px; text-align:right; font-size:8pt; font-weight:bold; color:#d04040;" >
+Projekt <span style="font-size:48pt; ">moa</span>&#160;
+</div>
+<br />
+
+
+
+<!-- First Section with Navigation -->
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top">
+<div style="font-weight:bold; margin-top:12px">MOA-SP/SS</div><br />
+<div id="klein"><img src="../moa_images/select.gif" border="0" width="13" height="14" />
+ <b> Allgemein</b></div>
+<div id="klein"><a href="sp-admin.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> SP/SS Administration</b></a></div>
+<div id="klein"><a href="sp-anwendung.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> SP/SS Anwendung</b></a></div>
+<div id="klein"><a href="../api-doc/index.html" target="_new">
+ <img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> SP/SS API</b></a></div>
+<div id="klein"><a href="faqs.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> FAQs</b></a></div>
+<div id="klein"><a href="links.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Links</b></a></div>
+<br />
+<div> <a href="javascript:history.back()">
+ <img src="../moa_images/west.gif" border="0" width="13" height="14" /> &#160;
+ <b>Zurück </b></a></div>
+<br />
+<div id="slogan">
+</div>
+</td>
+
+<td valign="top">
+<img src="../moa_images/moa_thema.gif" align="right" />
+<div id="titel">Allgemein</div>
+<p id="block">
+Dieses Dokument enthält die Dokumentation für die Module </p>
+<ul>
+<li>MOA-SP (Signaturprüfung)</li>
+<li>MOA-SS (Serversignatur).</li>
+</ul>
+<p id="block">
+Diese Module können von An-wendungen verwendet werden um Signaturen zu erstellen
+bzw. diese zu überprüfen.
+<br /><br />
+Die Funktionalität und der Aufbau der Schnittstelle zu den Modulen ist in der
+<a href="MOA-SPSS-1.1.pdf" target="_new">Spezifikation Version 1.1</a> detailliert beschrieben. Da
+diese beiden Module auf der
+<a href="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20020831/core/Core.html" target="_new">
+Spezifikation des Security-Layer (Version 1.1)</a> aufbauen ist ein Verständnis dieser Spezifikation
+ebenfalls erforderlich.
+<br /><br />
+</p>
+</td></tr></table>
+
+<div id="sp" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+<div id="slogan">
+</div>
+</td>
+<td valign="top">
+<p id="subtitel">Modul Signaturprüfung (MOA-SP)</p>
+<div id="block">
+Das Modul Signaturprüfung dient zum Überprüfen von einfachen bzw. sicheren
+<a href="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/" target="_new">
+XML-Signaturen</a> und
+<a href="http://www.ietf.org/rfc/rfc2630.txt" target="_new">CMS-Signaturen</a>.
+Bei XML-Signaturen kann zusätzlich überprüft werden ob sie der
+Security-Layer Spezifikation entsprechen.
+<br /><br />
+Im Zuge der Prüfung werden sowohl die Signatur, optionale XMLDSig-Manifeste,
+das optionale Signaturmanifest (siehe Security-Layer), als auch die Gültigkeit
+und Anwendbarkeit des Zertifikats überprüft.
+<br /><br />
+Anwendungen können das Modul entweder als Web-Service oder über
+ein Java-API ansprechen.
+</div>
+</td></tr></table>
+<br /><br />
+
+<div id="ss" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+<div id="slogan">
+
+</div>
+</td>
+<td valign="top">
+<p id="subtitel">Modul Serversignatur (MOA-SS) </p>
+<div id="block">
+Das Modul Serversignatur dient zum Erstellen von XML-Signaturen in Anlehnung an die
+<a href="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20020831/core/Core.html" target="_new">
+Security-Layer Spezifikation</a>. Die Signatur kann sowohl in Software
+erstellt werden als auch mittels eines Hardware Security Moduls (HSM), das
+den privaten Schlüssel enthält und die Signatur berechnet.
+<br /><br />
+Der Zugriff auf einzelne Signaturschlüssel in MOA-SP kann basierend
+auf dem für TLS-Client-Authentisierung verwendeten Zertifikat
+eingeschränkt werden.
+<br /><br />
+Anwendungen können das Modul entweder als Web-Service oder über
+ein Java-API ansprechen.
+
+</div>
+
+</td></tr></table>
+<br /><br />
+
+
+
+<!-- Trailer -->
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top"><br /></td>
+<td valign="top">
+<hr />
+<div style="font-size:8pt; color:#909090">&copy; 2003 <!-- Development Center, BRZ GmbH --></div>
+</td></tr></table>
+<br />
+
+
+</div>
+</body>
+</html>
diff --git a/spss.server/doc/moa_spss/sp-admin.htm b/spss.server/doc/moa_spss/sp-admin.htm
new file mode 100644
index 000000000..16990cee9
--- /dev/null
+++ b/spss.server/doc/moa_spss/sp-admin.htm
@@ -0,0 +1,300 @@
+<html>
+<head>
+ <title>MOA SP/SS-Administration</title>
+ <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
+ <meta content="heinz.rosenkranz@brz.gv.at" name="author"/>
+
+<style type="text/css">
+ body { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; }
+ td { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; }
+ th { font-family:"Verdana", "Arial"; font-size:10pt; font-weight:bold; color:#d8d8d8; background:#505050}
+ li { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; margin-top:3px }
+ ul { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; margin-top:3px }
+ tt { font-size:9pt; color:#505060; }
+ #titel { font-family:"Verdana", "Arial"; font-size:18pt; color:#505060; }
+ #subtitel { font-family:"Verdana", "Arial"; font-size:12pt; font-weight:bold; color:#505060; }
+ #slogan { font-family:"Verdana", "Arial"; font-size:8pt; color:#808090; text-align:justify; width:160px }
+ #block { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; text-align:justify }
+ #klein { font-family:"Verdana", "Arial"; font-size:9pt; color:#505060; margin-top:3px }
+ #info { font-family:"Verdana", "Arial"; font-size:8pt; color:#505060; padding:3px; border:solid 1px #c0c0c0 }
+ #infolist { font-family:"Verdana", "Arial"; font-size:8pt; color:#505060; }
+ a:link {color:#000090}
+ a:visited {color:#000090}
+ a:hover {color:#c03030}
+ a {text-decoration: none}
+</style>
+
+<script language="JavaScript">
+<!--
+function goWin(url) {
+ Fenster=window.open(url,"smallWin","toolbar=0,location=0,directories=0,status=0,menubar=0,resizable=yes,scrollbars=yes,width=500,height=480,top=20,screenY=0,left=20,screenX=0");
+ window.setTimeout("showWin()",300);
+}
+function showWin() { Fenster.focus(); }
+// -->
+</script>
+</head>
+
+<body bgcolor="#FFFFFF" >
+<div style="width:650px">
+
+<!-- Projekt-Logo -->
+<div style="height:42px; font-size:16pt; color:#b0b8c0; background:#003050">
+&#160;Module für Online-Applikationen
+</div>
+<div style="margin-left:8px; margin-top:3px; font-size:8pt; color:#707070; ">
+<!-- Development Center der BRZ GmbH, A-Trust und IAIK Graz -->&#160;
+</div>
+<div style="margin-top:-65px; text-align:right; font-size:8pt; font-weight:bold; color:#d04040;" >
+Projekt <span style="font-size:48pt; ">moa</span>&#160;
+</div>
+<br />
+
+<!-- First Section with Navigation -->
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top">
+<div style="font-weight:bold; margin-top:12px">MOA-SP/SS</div><br />
+<div id="klein"><img src="../moa_images/select.gif" border="0" width="13" height="14" />
+ <b> Übersicht</b></div>
+<div id="klein"><a href="sp-admin_1.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Basis-Installation<br />&#160; &#160;&#160;(Webservice)</b></a></div>
+<div id="klein"><a href="sp-admin_4.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Basis-Installation<br />&#160; &#160;&#160;(Klassenbibliothek)</b></a></div>
+<div id="klein"><a href="sp-admin_2.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Konfiguration </b></a></div>
+<div id="klein"><a href="sp-admin_3.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Optionale<br />&#160; &#160;&#160;Komponenten</b></a></div>
+<br />
+<div id="klein"><a href="moa.htm"><img src="../moa_images/west.gif" border="0" width="13" height="14" />
+ <b> Zurück</b></a></div>
+<br />
+</td>
+
+<td valign="top">
+<div id="titel">MOA SP/SS-Administration</div>
+<p id="block">
+Die Module Signaturprüfung (SP) und Serversignatur (SS) sind als plattformunabhängige Module ausgelegt, die entweder als Webservice über HTTP(S) oder als Klassenbibliothek über ein API angesprochen werden können. Für den Einsatz der Module als Klassenbibliothek wird eine Java Virtual Machine vorausgesetzt, für den Betrieb als Webservice wird zusätzlich ein Java Servlet Container benötigt.
+<br /><br />
+Dieses Handbuch beschreibt die Installation und Konfiguration der MOA SP/SS-Module, sowohl als Webservice als auch als Klassenbibliothek, sowie die Einrichtung der Systemumgebung. Ein Großteil der Beschreibung bezieht sich auf beide Einsatzmöglichkeiten (als Webservice und als Klassenbibliothek); wo dies nicht der Fall ist, wird explizit zwischen MOA SP/SS Webservice und MOA SP/SS Klassenbibliothek unterschieden.
+</p>
+</td></tr></table>
+<br />
+
+
+<div id="szenarien" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="titel">&#160;</p>
+</td>
+<td valign="top">
+<p id="titel">Übersicht </p>
+<div id="block">
+Für den Einsatz der MOA SP/SS Module sind unterschiedliche Szenarien möglich, die unterschiedliche Möglichkeiten bieten und die Installation unterschiedlicher Software- und Hardware-Komponenten erfordern. Dieser Abschnitt gibt einen kurzen Überblick über die notwendige Basis-Installation und optionale weitere Konfigurationsmöglichkeiten.
+</div>
+</td></tr></table>
+<br />
+
+<div id="szenarien1" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+</td>
+<td valign="top">
+<div id="subtitel">Basis-Installation (Webservice)</div>
+<p id="block">
+Die Basis-Installation des Webservices stellt einerseits die minimalen Anforderungen für den Betrieb des MOA SP/SS Webservices dar, andererseits dient sie als Ausgangspunkt für weitere (optionale) Konfigurations-Möglichkeiten. Sie erlaubt bereits den uneingeschränkten Betrieb des MOA SP/SS Webservices.
+<br /><br />
+Folgende Software ist Voraussetzung für die Basis-Installation des Webservices:
+</p>
+<ul>
+<li>JDK 1.3.1 oder JDK 1.4.1</li>
+<li>Tomcat 4.1.18 </li>
+<li>MOA SP/SS Webservice 1.0 </li>
+</ul>
+<div id="block">
+In diesem Betriebs-Szenario wird das MOA SP/SS Webservice in Tomcat zum Einsatz gebracht. Tomcat fungiert gleichzeitig als HTTP- und HTTPS-Endpunkt für das MOA SP/SS Webservice. Beide Protokolle werden direkt in Tomcat konfiguriert.
+<br /><br />
+Das MOA SP/SS Webservice verwendet Log4j als Logging Toolkit.
+<br /><br />
+Ausgehend von der Basis-Installation können die optionalen Konfigurationen, die in den nachfolgenden Abschnitten beschrieben werden, unabhängig und in beliebiger Kombination aufgesetzt werden.
+</div>
+</td></tr></table>
+<br />
+
+<div id="szenarien1lib" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+</td>
+<td valign="top">
+<div id="subtitel">Basis-Installation (Klassenbibliothek)</div>
+<p id="block">
+Die Basis-Installation der Klassenbibliothek stellt einerseits die minimalen Anforderungen für den Einsatz der MOA SP/SS Klassenbibliothek dar, andererseits dient sie als Ausgangspunkt für weitere (optionale) Konfigurations-Möglichkeiten. Sie erlaubt bereits den uneingeschränkten Einsatz der MOA SP/SS Klassenbibliothek.
+<br /><br />
+Folgende Software ist Voraussetzung für die Basis-Installation der Klassenbibliothek:
+</p>
+<ul>
+<li>JDK 1.3.1 oder JDK 1.4.1</li>
+<li>MOA SP/SS Klassenbibliothek 1.0 </li>
+</ul>
+<div id="block">
+Die MOA SP/SS Klassenbibliothek verwendet Log4j als Logging Toolkit.
+<br /><br />
+Ausgehend von der Basis-Installation können die optionalen Konfigurationen, die in den nachfolgenden Abschnitten beschrieben werden, unabhängig und in beliebiger Kombination aufgesetzt werden.
+</div>
+</td></tr></table>
+<br />
+
+<div id="szenarien2" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+</td>
+<td valign="top">
+<p id="subtitel">Konfiguration mit vorgeschaltetem Webserver (optional)</p>
+<div id="block">
+Dem MOA SP/SS Webservice kann optional ein Webserver vorgeschaltet sein. Unter Microsoft Windows ist das im Regelfall der Microsoft Internet Information Server (MS IIS), auf Unix-Systemen kommt üblicherweise der Apache Webserver zum Einsatz.
+<br /><br />
+ Folgende Software ist unter Windows Voraussetzung:
+</div>
+<ul>
+<li>MS IIS 5.0 </li>
+<li>Jakarta mod_jk 1.2.2 </li>
+</ul>
+<div id="block">Folgende Software ist unter Unix/Linux Voraussetzung: <div id="block">
+<ul>
+<li>Apache Webserver 2.0.x mit mod_SSL </li>
+<li>Jakarta mod_jk 1.2.2 </li>
+</ul>
+<div id="block">In diesem Fall übernimmt der vorgeschaltete Webserver die Funktion des HTTP- und HTTPS-Endpunktes. Beide Protokolle werden im Webserver konfiguriert.
+<br /><br />
+Mittels mod_jk werden die Webservice-Aufrufe, die im vorgeschalteten Webserver eintreffen, an Tomcat weitergeleitet, bzw. die Antwort von Tomcat wieder an den Webserver zurückübermittelt.
+</div>
+</td></tr></table>
+<br />
+
+<div id="szenarien3" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+</td>
+<td valign="top">
+<p id="subtitel">Konfiguration mit PostgreSQL (optional)</p>
+<div id="block">
+Die MOA SP/SS Module können eine PostgreSQL Datenbank nutzen, um:
+</div>
+<ul>
+<li>Certificate Revocation Lists (CRLs) zu cachen, und </li>
+<li>Log-Meldungen zu speichern </li>
+</ul>
+<div id="block">Für den Zugriff auf PostgreSQL ist die Installation folgender Software Voraussetzung: </div>
+<ul>
+<li>PostgreSQL 7.3</li>
+</ul>
+</td></tr></table>
+<br />
+
+<div id="szenarien4" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+</td>
+<td valign="top">
+<p id="subtitel">Konfiguration mit HSM (optional)</p>
+<div id="block">
+Die MOA SP/SS Module können mittels PKCS#11 auf Hardware Security Modules (HSMs) zugreifen. Sie wurden mit folgendem HSM getestet:
+</div>
+<ul>
+<li>Eracom protectserver orange external</li>
+</ul>
+</td></tr></table>
+<br /><br />
+
+<div id="szenarien5" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+</td>
+<td valign="top">
+<p id="subtitel">Zusammenfassung</p>
+<div id="block">
+Notwendig für den Einsatz der MOA SP/SS Module ist eine Basis-installation des Webservices oder der Klassenbibliothek. Weitere optionale Konfigurationen können unabhängig und in beliebiger Kombination miteinander durchgeführt werden, um eine bessere Integration der Module in die vorhandene Betriebs- bzw. Applikations-Infrastruktur zu erreichen.
+</div>
+</td></tr></table>
+<br /><br />
+
+
+
+<div id="referenzen" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+</td>
+<td valign="top">
+<p id="titel">Referenzierte Software</p>
+<div id="block">
+Die Versionsangaben beziehen sich auf die Versionen, mit denen die MOA SP/SS Module entwickelt und getestet wurde. Geringfügig andere Software-Versionen stellen üblicherweise kein Problem dar.
+</div>
+<br /><br />
+<div id="block">
+<table border="1" width="100%" cellpadding="2" cellspacing="0">
+<tr>
+<th>Komponente</th><th>Version</th>
+</tr><tr>
+<td><a href="http://java.sun.com/j2se/1.3/download.html">JDK</a> </td><td>1.3.1&#160; </td>
+</tr><tr>
+<td><a href="http://java.sun.com/j2se/1.4.1/download.html">JDK</a> </td><td>1.4.1&#160; </td>
+</tr><tr>
+<td><a href="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/">Tomcat </a> </td><td>4.1.18&#160; </td>
+</tr><tr>
+<td><a href="http://cio.gv.at/">MOA SP/SS Webservices </a> </td><td>1.0.6&#160; </td>
+</tr><tr>
+<td><a href="http://httpd.apache.org/docs/">Apache Webserver</a> </td><td>1.3.x &#160; </td>
+</tr><tr>
+<td><a href="http://httpd.apache.org/docs-2.0/">Apache Webserver</a> </td><td>2.0.x &#160; </td>
+</tr><tr>
+<td><a href="http://www.microsoft.com/windows2000/en/server/iis/default.asp">Microsoft Internet Information Server </a> </td><td>5.0 &#160; </td>
+</tr><tr>
+<td><a href="http://www.modssl.org/docs/">mod_SSL </a> </td><td>(*)&#160; </td>
+</tr><tr>
+<td><a href="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/">Jakarta mod_jk </a> </td><td>1.2.2&#160; </td>
+</tr><tr>
+<td><a href="http://jakarta.apache.org/log4j/docs/index.html">Jakarta Log4j </a> </td><td>1.2.7&#160; </td>
+</tr><tr>
+<td><a href="http://techdocs.postgresql.org/installguides.php">PostgreSQL </a> </td><td>7.3&#160; </td>
+</tr><tr>
+<td><a href="http://www.eracom-tech.com/">HSM (Eracom protectserver orange external) </a> </td><td>n/a&#160; </td>
+</tr>
+</table>
+</div>
+<br /><br />
+
+<div id="block">
+(*) passend zur Version des Apache Webservers
+</div>
+</td></tr></table>
+<br /><br />
+
+
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top"><br /></td>
+<td valign="top">
+<hr />
+<div style="font-size:8pt; color:#909090">&copy; 2003 <!-- Development Center, BRZ GmbH --></div>
+</td></tr></table>
+<br />
+
+
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/spss.server/doc/moa_spss/sp-admin_1.htm b/spss.server/doc/moa_spss/sp-admin_1.htm
new file mode 100644
index 000000000..4c3d5c1fb
--- /dev/null
+++ b/spss.server/doc/moa_spss/sp-admin_1.htm
@@ -0,0 +1,355 @@
+<html>
+<head>
+ <title>MOA SP/SS-Administration</title>
+ <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
+ <meta content="heinz.rosenkranz@brz.gv.at" name="author"/>
+
+<style type="text/css">
+ body { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; }
+ td { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; }
+ th { font-family:"Verdana", "Arial"; font-size:10pt; font-weight:bold; color:#d8d8d8; background:#505050}
+ li { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; margin-top:3px }
+ ul { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; margin-top:3px }
+ tt { font-size:9pt; color:#505060; }
+ pre { font-size:9pt; color:#505060; }
+ #titel { font-family:"Verdana", "Arial"; font-size:18pt; color:#505060; }
+ #subtitel { font-family:"Verdana", "Arial"; font-size:12pt; font-weight:bold; color:#505060; }
+ #slogan { font-family:"Verdana", "Arial"; font-size:8pt; color:#808090; text-align:justify; width:160px }
+ #block { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; text-align:justify }
+ #klein { font-family:"Verdana", "Arial"; font-size:9pt; color:#505060; margin-top:3px }
+ #info { font-family:"Verdana", "Arial"; font-size:8pt; color:#505060; padding:3px; border:solid 1px #c0c0c0 }
+ #infolist { font-family:"Verdana", "Arial"; font-size:8pt; color:#505060; }
+ a:link {color:#000090}
+ a:visited {color:#000090}
+ a:hover {color:#c03030}
+ a {text-decoration: none}
+</style>
+
+<script language="JavaScript">
+<!--
+function goWin(url) {
+ Fenster=window.open(url,"smallWin","toolbar=0,location=0,directories=0,status=0,menubar=0,resizable=yes,scrollbars=yes,width=500,height=480,top=20,screenY=0,left=20,screenX=0");
+ window.setTimeout("showWin()",300);
+}
+function showWin() { Fenster.focus(); }
+// -->
+</script>
+</head>
+
+<body bgcolor="#FFFFFF" >
+<div style="width:650px">
+
+<!-- Projekt-Logo -->
+<div style="height:42px; font-size:16pt; color:#b0b8c0; background:#003050">
+&#160;Module für Online-Applikationen
+</div>
+<div style="margin-left:8px; margin-top:3px; font-size:8pt; color:#707070; ">
+<!-- Development Center der BRZ GmbH, A-Trust und IAIK Graz -->&#160;
+</div>
+<div style="margin-top:-65px; text-align:right; font-size:8pt; font-weight:bold; color:#d04040;" >
+Projekt <span style="font-size:48pt; ">moa</span>&#160;
+</div>
+<br />
+
+<!-- First Section with Navigation -->
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top">
+<div style="font-weight:bold; margin-top:12px">MOA-SP/SS</div><br />
+<div id="klein"><a href="sp-admin.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Übersicht</b></a></div>
+<div id="klein"><img src="../moa_images/select.gif" border="0" width="13" height="14" />
+ <b> Basis-Installation<br />&#160; &#160;&#160;(Webservice)</b></div>
+<div id="klein"><a href="sp-admin_4.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Basis-Installation<br />&#160; &#160;&#160;(Klassenbibliothek)</b></a></div>
+<div id="klein"><a href="sp-admin_2.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Konfiguration </b></a></div>
+<div id="klein"><a href="sp-admin_3.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Optionale<br />&#160; &#160;&#160;Komponenten</b></a></div>
+<br />
+<div id="klein"><a href="moa.htm"><img src="../moa_images/west.gif" border="0" width="13" height="14" />
+ <b> Zurück</b></a></div>
+</br /><br />
+<div id="slogan">
+<b>Installationsschritte: </b>
+</br /><br />
+<a href="#vorbereitung"><b>Vorbereitung</b></a><br />
+<a href="#Tomcat"><b>Tomcat Konfiguration</b></a><br />
+<a href="#deployment"><b>Webservice Deployment</b></a><br />
+<a href="#Tomcat_Start"><b>Tomcat Start/Stop</b></a><br />
+<a href="#Logging"><b>Logging</b></a><br />
+</div>
+</td>
+
+<td valign="top">
+<p id="titel">Basis-Installation (Webservice)</p>
+<div id="vorbereitung" />
+<p id="subtitel">Vorbereitung</p>
+<div id="block">
+<b>Installation des JDK</b><br />
+Installieren Sie das JDK 1.3.1 oder JDK 1.4.1 in ein beliebiges Verzeichnis. Das Wurzelverzeichnis der JDK-Installation wird im weiteren Verlauf als $JAVA_HOME bezeichnet.
+<br /><br />
+<b>Installation von Tomcat</b><br />
+Installieren Sie Tomcat in ein Verzeichnis, das keine Leerzeichen im Pfadnamen enthält. Das Wurzelverzeichnis der Tomcat-Installation wird im weiteren Verlauf als $CATALINA_HOME bezeichnet. <b>Hinweis:</b> Tomcat wird in einer Distribution für JDKs ab Version 1.2 und in einer Distribution speziell für JDK 1.4 ausgeliefert. Installieren Sie die zur Version Ihres JDK passende Tomcat-Version.
+<br /><br />
+<b>Entpacken des MOA SP/SS Webservices</b><br />
+Entpacken Sie die Datei moa-spss-1.0.x.zip in ein beliebiges Verzeichnis. Dieses Verzeichnis wird im weiteren Verlauf als $MOA_SPSS_INST bezeichnet.
+<br /><br />
+<b>Installation der IAIK JCE und JSSE im JDK 1.3.1</b><br />
+Da Java in der Version 1.3.1 ohne Unterstützung für Kryptographie und SSL ausgeliefert wird, muss dies manuell nachträglich installiert werden. Für den Betrieb des MOA SP/SS Webservices ist es deshalb notwendig, die Dateien aus dem Verzeichnis $MOA_SPSS_INST/ext13 in das Verzeichnis $JAVA_HOME/jre/lib/ext zu kopieren.
+<br /><br />
+<b>Installation der IAIK JCE im JDK 1.4.1</b><br />
+Um die mit MOA SP/SS ausgelieferte IAIK JCE im JDK 1.4.1 zu installieren, müssen die Dateien aus dem Verzeichnis $MOA_SPSS_INST/ext14 in das Verzeichnis $JAVA_HOME/lib/ext kopiert werden. Zusätzlich müssen die sogenannten "Unlimited Strength Jurisdiction Policy Files 1.4.1" heruntergeladen, entpackt und ins Verzeichnis $JAVA_HOME/jre/lib/security kopiert werden. Der Download für diese Dateien findet sich am unteren Ende der <a href="http://java.sun.com/j2se/1.4.1/download.html">Download-Seite für das JDK 1.4.1</a> in der Sektion "Other Downloads".
+<br /><br />
+</div>
+</td></tr></table>
+
+
+<div id="Tomcat" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+<div id="slogan">
+<br /><br />
+</div>
+</td>
+<td valign="top">
+<p id="subtitel">Konfiguration von Tomcat</p>
+<div id="block">
+<b>Minimale Konfiguration</b> <br />
+Die zentrale Konfigurations-Datei von Tomcat ist $CATALINA_HOME/conf/server.xml. Tomcat wird grundsätzlich mit einer funktionierenden Default-Konfiguration ausgeliefert, die jedoch einiges an Ballast enthält und viele Ports offen lässt. Die Datei $MOA_SPSS_INST/tomcat/server.xml enthält eine minimale Tomcat-Konfiguration, die ausschließlich den Connector für HTTP freischaltet. Durch kopieren dieser Datei nach $CATALINA_HOME/conf/server.xml kann Tomcat mit dieser Konfiguration gestartet werden.<br /><br />
+<b>SSL</b><br />
+Ein sicherer Betrieb des MOA SP/SS Webservices setzt voraus, dass für die Übertragung der Daten SSL verwendet wird. Das Dokument <a href="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/ssl-howto.html" target="_new">Tomcat SSL Configuration HOW-TO</a> gibt einen guten Überblick über die Konfiguration von SSL in Tomcat. Da das JDK bereits im Abschnitt "Vorbereitung" auf SSL vorbereitet wurde, sind an dieser Stelle nur noch folgende Schritte notwendig:
+</div>
+<ul>
+<li>Erstellung eines Server-Keystores, welches den privaten Schlüssel des Servers sowie das Server-Zertifikat enthält, z.B. mit dem <a href="http://java.sun.com/j2se/1.3/docs/tooldocs/win32/keytool.html" target="_new"> Java Keytool</a>. </li>
+<li>Erstellung eines Keystores mit vertrauenswürdigen Client-Zertifikaten, z.B. mit dem <a href="http://java.sun.com/j2se/1.3/docs/tooldocs/win32/keytool.html" target="_new"> Java Keytool</a> (nur, wenn SSL Client-Authentisierung verwendet werden soll) </li>
+<li>Konfiguration des SSL-Connectors in $CATALINA_HOME/conf/server.xml (optional mit Client-Authentisierung) </li>
+</ul>
+<div id="block">
+Die Konfiguration von SSL im Tomcat kann entfallen, wenn Tomcat ein Webserver vorgeschaltet ist, der die SSL-Kommunikation mit dem Aufrufer des Webservices übernimmt.
+</div>
+<br /><br />
+<div id="block">
+<b>MOA Administrator</b><br />
+Der Aufruf der URL für die dynamische Konfiguration des MOA SP/SS Webservices ist durch eine Passwort-Abfrage geschützt, und kann nur von Benutzern aufgerufen werden, die der Benutzer-Rolle <tt>moa-admin</tt> zugeordnet werden können.<br />
+Um diese Benutzer-Rolle und einen oder mehrere Benutzer einzurichten, müssen in der Datei $CATALINA_HOME/conf/tomcat-users.xml unter dem Element <tt>&lt;tomcat-users&gt;</tt> sinngemäß folgende Einträge hinzugefügt werden:
+<pre>
+&lt;role rolename="moa-admin"/&gt;
+&lt;user username="moa" password="moa" roles="moa-admin"/&gt;
+</pre>
+</div>
+</td></tr></table>
+
+<div id="deployment" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+<div id="slogan">
+<br /><br />
+</div>
+</td>
+<td valign="top">
+<p id="subtitel">Deployment des MOA SP/SS Webservices in Tomcat</p>
+<div id="block">
+Um das MOA SP/SS Webservice in Tomcat für den Ablauf vorzubereiten, sind folgende Schritte notwendig: <br />
+<ul>
+<li>Die Datei $MOA_SPSS_INST/moa-spss.war enthält das einsatzfertige MOA SP/SS Webarchiv und muss ins Verzeichnis Verzeichnis $CATALINA_HOME/webapps kopiert werden. Dort wird sie beim ersten Start von Tomcat automatisch ins Verzeichnis $CATALINA_HOME/webapps/ moa-spss entpackt. </li>
+<li>Die MOA SP/SS Konfigurationsdatei und zugehörige Profil-Verzeichnisse müssen in ein beliebiges Verzeichnis im Filesystem kopiert werden (z.B. $CATALINA_HOME/ conf/moa). <br />In $MOA_SPSS_INST/conf befindet sich eine funktionsfähige Konfiguration, die als Ausgangspunkt für die Konfiguration des MOA SP/SS Webservices dienen kann. </li>
+<li>Wird Tomcat unter JDK 1.3.1 betrieben, müssen die Dateien aus dem Verzeichnis $MOA_SPSS_INST/endorsed13 in das Tomcat-Verzeichnis $CATALINA_HOME/common/endorsed kopiert werden. Folgende Libraries sind für das Deployment im endorsed Verzeichnis vorgesehen:
+<ul>
+<li id="klein">Xerces-J-2.0.2 (bestehend aus xercesImpl.jar und xmlParserAPIs.jar).</li>
+</ul>
+Eventuell vorhandene Dateien mit dem gleichen Namen müssen ersetzt werden.
+</li>
+<li>Wird Tomcat unter JDK 1.4.1 betrieben, müssen die Dateien aus dem Verzeichnis $MOA_SPSS_INST/endorsed14 in das Tomcat-Verzeichnis $CATALINA_HOME/common/endorsed kopiert werden. Folgende Libraries sind für das Deployment im endorsed Verzeichnis vorgesehen:
+<ul>
+<li id="klein">Xalan-J-2.2.0 (bestehend aus xalan.jar.jar und bsf.jar).</li>
+</ul>
+Eventuell vorhandene Dateien mit dem gleichen Namen müssen ersetzt werden.
+</li>
+<li>Folgende Java System-Properties können optional gesetzt sein:<br />
+<ul>
+<li id="klein">moa.spss.server.configuration=Name der MOA SP/SS Konfigurationsdatei. Eine beispielhafte MOA SP/SS Konfiguration ist in $MOA_SPSS_INST/conf/moa-spss/ MOA-SPSSConfiguration.xml enthalten. Ist diese System-Property nicht gesetzt, wird automatisch eine im Web-Archive unter <tt>WEB-INF/conf</tt> enthaltene Default-Konfiguration herangezogen.</li>
+<li id="klein">log4j.configuration=URL der Log4j Konfigurationsdatei. Eine beispielhafte Log4j-Konfiguration ist in $MOA_SPSS_INST/conf/moa-spss/log4j.properties enthalten. Ist diese System-Property nicht gesetzt, wird automatisch eine im Web-Archive unter <tt>WEB-INF/classes</tt> enthaltene Default-Konfiguration herangezogen.</li>
+<li id="klein">moa.node.id=Name des Rechner-Knotens, auf dem MOA SP/SS läuft. Der Name des Knotens wird bei Log-Ausgaben von MOA SP/SS angeführt und dient zur Unterscheidung mehrerer gleichzeitig betriebener MOA SP/SS Webservice-Instanzen. Der Name des Knotens ist frei wählbar.</li>
+<li id="klein">javax.net.ssl.trustStore=Dateiname des Truststores für vertrauenswürdige SSL Client-Zertifikate (optional; nur, wenn SSL Client-Authentisierung durchgeführt werden soll). Relative Dateinamen werden zum Verzeichnis, von dem Tomcat gestartet wird, aufgelöst.</li>
+<li id="klein">javax.net.ssl.trustStorePassword=Passwort für den Truststore (optional; nur, wenn SSL Client-Authentisierung durchgeführt werden soll). </li>
+<li id="klein">javax.net.ssl.trustStoreType=Truststore-Typ (optional; nur, wenn SSL Client-Authentisierung durchgeführt werden soll). Je nach verwendetem Keystore-Typ ist "jks" oder "pkcs12" üblich.</li>
+</ul>
+Diese Java System-Properties werden Tomcat über die Umgebungsvariable CATALINA_OPTS mitgeteilt. Die Dateien $MOA_SPSS_INST/tomcat/moa-env.bat und <br />$MOA_SPSS_INST/tomcat/moa-env.sh enthalten Beispiele zum Setzen dieser Umgebungsvariablen unter Windows bzw. Unix/Linux.
+</ul>
+</div>
+</td></tr></table>
+
+
+
+<div id="Tomcat_Start" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+<div id="slogan">
+<br /><br />
+</div>
+</td>
+<td valign="top">
+<p id="subtitel">Starten und Stoppen von Tomcat </p>
+<div id="block">
+Nach dem Deployment und der Konfiguration kann Tomcat aus seinem Wurzelverzeichnis mit <br />
+<pre>
+ bin\catalina start (unter Windows) oder
+ bin/catalina.sh start (unter Unix/Linux)
+</pre>
+gestartet werden. Das Stoppen von Tomcat erfolgt analog mit <br />
+<pre>
+ bin\catalina stop (unter Windows) oder
+ bin/catalina.sh stop (unter Unix/Linux)
+</pre>
+Ein erfolgreicher Startvorgang ist an folgender Log-Meldung ersichtlich: <br />
+<pre>
+ INFO | 18 10:09:45,155 | main | TID=startup NID=&lt;null&gt;
+ MSG=MOA Konfiguration erfolgreich geladen
+</pre>
+Bei leichten Fehlern in der Konfiguration geben WARN Log-Meldungen unmittelbar davor Aufschluss über fehlerhafte Konfigurations-Einträge.
+<br /> <br />
+Nach dem Starten von Tomcat steht das MOA SP/SS Webservice für die Server-Signatur und Signatur-Prüfung unter den Endpunkten
+<pre>
+ http://host:port/moa-spss/services/SignatureCreation
+</pre>
+bzw.
+<pre>
+ http://host:port/moa-spss/services/SignatureVerification
+</pre>
+zur Verfügung. Die Verfügbarkeit des Services kann einfach überprüft werden, indem der Endpunkt mit einem Web-Browser aufgerufen wird und zu einer Anzeige einer Informationsseite führt.
+<br /><br />
+<div id="ConfigurationUpdate"/>
+Dynamische Konfigurations-Updates können durch den Aufruf der URL http://host:port/moa-spss/ConfigurationUpdate (z.B. durch Eingabe in einem Browser) durchgeführt werden. <br />
+Konnte das MOA-SPSS Webservice nicht ordnungsgemäß konfiguriert und gestartet werden, geht das aus der Log-Meldung hervor: <br />
+<pre>
+ FATAL | 18 10:17:03,475 | main | TID=startup NID=&lt;null&gt;
+ MSG=Fehler beim Lesen der MOA Konfiguration:
+ das Service steht nicht zur Verfügung
+</pre>
+In diesem Fall geben die WARN bzw. ERROR Log-Meldungen unmittelbar davor Aufschluss über den genaueren Grund.
+</div>
+</td></tr></table>
+
+
+<div id="Logging" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+<div id="slogan">
+<br /><br />
+</div>
+</td>
+<td valign="top">
+<div id="Logging" />
+<p id="subtitel">Logging</p>
+<div id="block">
+Das MOA SP/SS Webservice verwendet Jakarta Log4j für die Ausgabe von Log-Meldungen am Bildschirm bzw. in Log-Dateien. Log4j bietet zahlreiche Konfigurationsmöglichkeiten, die ausführlich im <a href="http://jakarta.apache.org/log4j/docs/manual.html" target="_new">Log4j Handbuch</a> beschrieben sind. Unter anderem gibt es die Möglichkeit, folgende Einstellungen vorzunehmen: <br />
+<ul>
+<li id="klein">Das verwendete Log-Level (DEBUG, INFO, WARN, ERROR, FATAL).</li>
+<li id="klein">Name und maximale Größe der Log-Datei(en).</li>
+<li id="klein">Das Aussehen der Log-Einträge.</li>
+</ul>
+Das MOA-SPSS Webservice verwendet folgende Log-Hierarchien:
+</div>
+<ul>
+<li>moa.spss.server für alle Log-Meldungen aus dem MOA-SPSS Webservice </li>
+<li>iaik.server für alle Log-Meldungen aus den IAIK Kryptographie-Modulen </li>
+</ul>
+<div id="block">
+Als Ausgangspunkt für die Logging-Konfiguration liegt die Datei $MOA_SPSS_INST/conf/moa-spss/log4j.properties bei. Wird diese Datei als Logging-Konfiguration verwendet, so werden alle Log-Meldungen sowohl in die Konsole, als auch in die Datei <tt>moa-spss.log</tt> geschrieben.
+<br /><br />
+<b>Format der Log-Meldungen</b><br />
+Anhand einer konkreten Log-Meldung wird das Format der MOA SP/SS Log-Meldungen erläutert:
+<pre>
+ INFO | 01 21:25:26,540 | Thread-3 |
+ TID=1049225059594-100 NID=node1
+ MSG=Starte neue Transaktion: TID=1049225059594-100,
+ Service=SignatureVerification
+</pre>
+
+Der Wert <tt>INFO</tt> besagt, dass die Log-Meldung im Log-Level <tt>INFO</tt> entstanden ist. Folgende Log-Levels existieren:<br />
+<ul>
+<li id="klein"><tt>DEBUG:</tt> Log-Meldungen im Log-Level <tt>DEBUG</tt> geben Auskunft über die innere Arbeitsweise des Systems. Sie sind hauptsächlich für Entwickler interessant.</li>
+<li id="klein"><tt>INFO:</tt> Diese Log-Meldungen geben Status-Informationen über den Ablauf des Webservices, wie z.B., dass eine neue Anfrage eingelangt ist.</li>
+<li id="klein"><tt>WARN:</tt> Bei der Ausführung einer Operation sind leichte Fehler aufgetreten. Der Ablauf des Webservices ist nicht weiter beeinträchtigt.</li>
+<li id="klein"><tt>ERROR:</tt> Die Ausführung einer Operation musste abgebrochen werden. Das Webservice ist davon nicht beeinträchtigt. </li>
+<li id="klein"><tt>FATAL:</tt> Es ist ein Fehler aufgetreten, der den weiteren Betrieb des Webservices nicht mehr erlaubt.</li>
+</ul>
+Der nächste Wert <tt>&quot;01 21:25:26,540&quot;</tt>, gibt den Zeitpunkt an, an dem die Log-Meldung generiert wurde (in diesem Fall den 1. Tag im aktuellen Monat, sowie die genaue Uhrzeit). <br />
+Der Wert <tt>Thread-3</tt> bezeichnet den Tomcat Worker-Thread, von dem die Anfrage bearbeitet wird.<br />
+Der Wert von <tt>TID</tt> gibt die für jede Anfrage eindeutige Transaktions-ID an. Log-Meldungen, die bei der Abarbeitung dieser Anfrage geschrieben werden, enthalten alle einen Hinweis auf die entsprechende Transaktions-ID.<br />
+Der Wert von <tt>NID</tt> gibt den Rechner-Knoten an, auf dem das MOA SP/SS Webservice läuft (bei <tt>NID=&lt;null&gt;</tt> ist dieser Wert nicht konfiguriert).<br />
+Der Rest der Zeile einer Log-Meldung ist der eigentliche Text, mit dem das System bestimmte Informationen anzeigt. Im Fehlerfall ist häufig ein Java Stack-Trace angefügt, der eine genauere Ursachen-Forschung ermöglicht.
+<br /><br />
+
+
+<b>Wichtige Log-Meldungen</b><br />
+Neben den im Abschnitt "Starten und Stoppen von Tomcat" beschriebenen Log-Meldungen, die anzeigen, ob das Service ordnungsgemäß gestartet wurde, geben nachfolgenden Log-Meldungen Aufschluss über die Abarbeitung von Anfragen. Die Entgegennahme einer Anfrage wird angezeigt durch:
+</div>
+<pre>
+ INFO | 01 21:25:26,540 | Thread-3 |
+ TID=1049225059594-100 NID=&lt;null&gt;
+ MSG=Starte neue Transaktion: TID=1049225059594-100,
+ Service=SignatureVerification
+ INFO | 01 21:25:26,540 | Thread-3 |
+ TID=1049225059594-100 NID=&lt;null&gt;
+ MSG=Aufruf von Adresse=127.0.0.1
+ INFO | 01 21:25:26,540 | Thread-3 |
+ TID=1049225059594-100 NID=&lt;null&gt;
+ MSG=Client-Zertifikat nicht verfügbar
+</pre>
+
+<div id="block">
+Die 3. Log-Meldung besagt, dass für die Abarbeitung dieser Anfrage kein Client-Zertifikat verfügbar ist (entweder, weil die Anfrage über HTTP eingelangt ist, oder weil die SSL Client-Authentisierung nicht eingeschaltet ist). Bei erfolgreicher SSL Client-Authentisierung, gibt beispielsweise folgende Log-Meldung Informationen über das Client-Zertifikat aus:
+</div>
+<pre>
+ INFO | 12 13:58:08,772 | Thread-10 |
+ TID=1045054687159-2 NID=&lt;null&gt;
+ MSG=Client-Zertifikat: Subject=CN=Testuser,
+ OU=MOA, O=BRZ, L=Vienna, ST=Vienna, C=AT,
+ Serial=1.039.104.204,
+ Issuer=CN=TestCA, OU=MOA, O=BRZ, L=Vienna,
+ ST=Vienna, C=AT
+</pre>
+
+Eine erfolgreich abgearbeitete Anfrage wird angezeigt durch:
+
+<pre>
+ INFO | 01 21:25:53,168 | Thread-3 |
+ TID=1049225059594-106 NID=&lt;null&gt;
+ MSG=Anfrage erfolgreich abgearbeitet
+</pre>
+
+Ein Fehler beim Abarbeiten der Anfrage wird angezeigt durch: <br />
+<pre>
+ INFO | 01 21:25:27,642 | Thread-3 |
+ TID=1049225059594-100 NID=&lt;null&gt;
+ MSG=Fehler beim Abarbeiten der Anfrage
+</pre>
+<div id="block">
+In diesem Fall gibt der mitgeloggte Stacktrace Auskunft über die Art des Fehlers. Der Aufrufer des MOA SP/SS Webservices bekommt einen Fehlercode sowie eine kurze Beschreibung des Fehlers als Antwort zurück.
+<br /><br />
+Die Tatsächlich übertragenen Anfragen bzw. Antworten werden aus Effizienzgründen nur im Log-Level DEBUG angezeigt.
+</div>
+</td></tr></table>
+<br /><br />
+
+
+
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top"><br /></td>
+<td valign="top">
+<hr />
+<div style="font-size:8pt; color:#909090">&copy; 2003 <!-- Development Center, BRZ GmbH --></div>
+</td></tr></table>
+<br />
+
+
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/spss.server/doc/moa_spss/sp-admin_2.htm b/spss.server/doc/moa_spss/sp-admin_2.htm
new file mode 100644
index 000000000..147a8ba9c
--- /dev/null
+++ b/spss.server/doc/moa_spss/sp-admin_2.htm
@@ -0,0 +1,536 @@
+<html>
+<head>
+ <title>MOA SP/SS-Administration</title>
+ <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
+ <meta content="heinz.rosenkranz@brz.gv.at" name="author"/>
+
+<style type="text/css">
+ body { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; }
+ td { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; }
+ th { font-family:"Verdana", "Arial"; font-size:10pt; font-weight:bold; color:#d8d8d8; background:#505050}
+ li { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; margin-top:3px }
+ ul { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; margin-top:3px }
+ tt { font-size:9pt; color:#505060; }
+ #titel { font-family:"Verdana", "Arial"; font-size:18pt; color:#505060; }
+ #subtitel { font-family:"Verdana", "Arial"; font-size:12pt; font-weight:bold; color:#505060; }
+ #slogan { font-family:"Verdana", "Arial"; font-size:8pt; color:#808090; text-align:justify; width:160px }
+ #block { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; text-align:justify }
+ #klein { font-family:"Verdana", "Arial"; font-size:9pt; color:#505060; margin-top:3px }
+ #info { font-family:"Verdana", "Arial"; font-size:8pt; color:#505060; padding:3px; border:solid 1px #c0c0c0 }
+ #infolist { font-family:"Verdana", "Arial"; font-size:8pt; color:#505060; }
+ a:link {color:#000090}
+ a:visited {color:#000090}
+ a:hover {color:#c03030}
+ a {text-decoration: none}
+</style>
+
+<script language="JavaScript">
+<!--
+function goWin(url) {
+ Fenster=window.open(url,"smallWin","toolbar=0,location=0,directories=0,status=0,menubar=0,resizable=yes,scrollbars=yes,width=500,height=480,top=20,screenY=0,left=20,screenX=0");
+ window.setTimeout("showWin()",300);
+}
+function showWin() { Fenster.focus(); }
+// -->
+</script>
+</head>
+
+<body bgcolor="#FFFFFF" >
+<div style="width:650px">
+
+<!-- Projekt-Logo -->
+<div style="height:42px; font-size:16pt; color:#b0b8c0; background:#003050">
+&#160;Module für Online-Applikationen
+</div>
+<div style="margin-left:8px; margin-top:3px; font-size:8pt; color:#707070; ">
+<!-- Development Center der BRZ GmbH, A-Trust und IAIK Graz -->&#160;
+</div>
+<div style="margin-top:-65px; text-align:right; font-size:8pt; font-weight:bold; color:#d04040;" >
+Projekt <span style="font-size:48pt; ">moa</span>&#160;
+</div>
+<br />
+
+<!-- First Section with Navigation -->
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top">
+<div style="font-weight:bold; margin-top:12px">MOA-SP/SS</div><br />
+<div id="klein"><a href="sp-admin.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Übersicht</b></a></div>
+<div id="klein"><a href="sp-admin_1.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Basis-Installation<br />&#160; &#160;&#160;(Webservice)</b></a></div>
+<div id="klein"><a href="sp-admin_4.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Basis-Installation<br />&#160; &#160;&#160;(Klassenbibliothek)</b></a></div>
+<div id="klein"><img src="../moa_images/select.gif" border="0" width="13" height="14" />
+ <b> Konfiguration </b></div>
+<div id="klein"><a href="sp-admin_3.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Optionale<br />&#160; &#160;&#160;Komponenten</b></a></div>
+<br />
+<div id="klein"><a href="moa.htm"><img src="../moa_images/west.gif" border="0" width="13" height="14" />
+ <b> Zurück</b></a></div>
+<br /><br />
+<div id="slogan">
+<b>Beispiele </b>
+<br /><br />
+<a href="examples/conf/MOA-SPSSConfiguration.xml" target="_new"><b>Konfigurationsdatei</b></a><br /><br />
+<a href="#minimal-config"><b>Minimale Konfiguration</b></a><br /><br />
+<a href="#online-config"><b>Änderung der Konfig. <br />während des Betriebs</b></a><br />
+<br /><br />
+<b>Parameter-Übersicht </b><br />
+<a href="#CanonicalizationAlgorithm">CanonicalizationAlgorithm</a><br />
+<a href="#DigestMethodAlgorithm">DigestMethodAlgorithm</a><br />
+<a href="#GenericConfiguration">GenericConfiguration</a><br />
+<a href="#HardwareKeyModule">HardwareKeyModule</a><br />
+<a href="#KeyGroup">KeyGroup</a><br />
+<a href="#KeyGroupMapping">KeyGroupMapping</a><br />
+<a href="#ChainingModes">ChainingModes</a><br />
+<a href="#CRLArchive">CRLArchive</a><br />
+<a href="#CRLDistributionPoint">CRLDistributionPoint</a><br />
+<a href="#Create">CreateSignatureEnv...</a><br />
+<a href="#Create">CreateTransformsInfo</a><br />
+<a href="#Create">VerifyTransformsInfo</a><br />
+<a href="#Create">SupplementProfile</a><br />
+<a href="#TrustProfile">TrustProfile</a><br />
+<br />
+</div>
+
+</td>
+
+<td valign="top">
+<div id="titel">Konfiguration der SP/SS-Module</div>
+
+<div id="konfigurationsdatei" />
+<p id="subtitel">SP/SS-Konfigurationsdatei</p>
+<p id="block">
+Die Konfiguration von MOA SP/SS wird mittels einer XML-basierten Konfigurationsdatei, die dem Schema <a href="MOA-SPSS-Configuration-1.0.xsd" target="_new">MOA-SPSS-Configuration-1.0.xsd</a> entspricht, durchgeführt.
+<p />
+Der Ort der Konfigurationsdatei wird im Abschnitt <a href="sp-admin_1.htm#deployment">Deployment der Web-Applikation in Tomcat</a> beschrieben.
+<p />
+Die folgenden Abschnitte erläutern das Format der Konfigurationsdatei.
+<a href="examples/conf/MOA-SPSSConfiguration.xml" target="_new">MOA-SPSSConfiguration.xml</a> zeigt ein Beispiel
+für eine umfassende Konfigurationsdatei.
+</p>
+Enthält die Konfigurationsdatei relative Pfadangaben, werden diese relativ zum Verzeichnis, in dem die Konfigurationsdatei
+gespeichert ist, interpretiert.
+
+<div id="CanonicalizationAlgorithm" />
+<p id="block">
+<b>CanonicalizationAlgorithm</b> <br />
+Als Inhalt des Elements <tt>CanonicalizationAlgorithm</tt> kann der Kanonisierungs-Algorithmus, der für das Erstellen von XML Signaturen verwendet werden soll und in der Signatur als Inhalt von <tt>/dsig:Signature/dsig:SignedInfo/dsig:CanonicalizationMethod</tt> aufscheint, spezifiziert werden.
+<br /><br />
+Gültige Werte:<br />
+<tt>http://www.w3.org/TR/2001/REC-xml-c14n-20010315<br />
+http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments<br />
+http://www.w3.org/2001/10/xml-exc-c14n#<br />
+http://www.w3.org/2001/10/xml-exc-c14n#WithComments<br />
+</tt>
+<br />
+Default-Wert: <br /><tt>http://www.w3.org/TR/2001/REC-xml-c14n-20010315 </tt>
+<br /><br />
+</p>
+
+<div id="DigestMethodAlgorithm" />
+<p id="block">
+<b>DigestMethodAlgorithm</b><br />
+Als Inhalt des Elements <tt>DigestMethodAlgorithm</tt> kann der Digest-Algorithmus spe­zi­fi­ziert werden, der in der Signatur als Inhalt von <tt>dsig:Reference/dsig:DigestMethod aufscheint</tt>.
+<br /><br />
+Gültige Werte: <br /><tt>http://www.w3.org/2000/09/xmldsig#sha1</tt>
+<br /><br />
+Default-Wert: <br /><tt>http://www.w3.org/2000/09/xmldsig#sha1</tt>
+<br /><br />
+</p>
+
+<div id="GenericConfiguration" />
+<p id="block">
+<b>GenericConfiguration</b><br />
+Das Element <tt>GenericConfiguration</tt> ermöglicht das Setzen von Namen-Werte Paaren mittels der Attribute <tt>name</tt> und <tt>value</tt>. Die folgende Liste spezifiziert
+<ul>
+<li>gültige Werte für das name-Attribut, </li>
+<li>eine Beschreibung </li>
+<li>gültige Werte für das value-Attribut und </li>
+<li>den Default-Wert für das value-Attribut. </li>
+</ul>
+
+<table border="0" cellspacing="3" cellpadding="2">
+<tr><th align="left">name: autoAddCertificate</th></tr>
+<tr><td id="info">
+Gibt an, ob Zertifikate, die in der Signtur enthalten sind bzw. bei der Zertifikatspfaderstellung verwendet werden,
+automatisch im Zertifikatsspeicher
+(siehe Parameter <a href="#DirectoryCertStoreParameters.RootDir"><tt>DirectoryCertStoreParameters.RootDir</tt></a>)
+gespeichert werden sollen (siehe auch Parameter <a href="#useAuthorityInfoAccess">
+<tt>useAuthorityInfoAccess</tt></a>).<br />
+<hr />
+<b>value: </b><br />
+Gültige Werte: <tt>true/false</tt><br />
+Default-Wert: <tt>true</tt>
+</td></tr>
+</table>
+<table border="0" cellspacing="3" cellpadding="2">
+<tr id="DirectoryCertStoreParameters.RootDir"><th align="left">name: DirectoryCertStoreParameters.RootDir</th></tr>
+<tr><td id="info">
+Gibt den Pfadnamen zum Verzeichnis an, das als Zertifikatsspeicher verwendet wird. <br />
+<hr />
+<b>value: </b><br />
+Gültige Werte: Name eines Verzeichnisses, das Verzeichnis muss noch nicht existieren <br />
+Default-Wert: certstore
+</td></tr>
+</table>
+
+<table border="0" cellspacing="3" cellpadding="2">
+<tr id="useAuthorityInfoAccess"><th align="left">name: useAuthorityInfoAccess</th></tr>
+<tr><td id="info">
+Gibt an, ob die Zertifikatserweiterung <tt>AuthorityInformationAccess</tt> für die Zertifikatspfaderstellung verwendet
+werden soll. Wird der Wert auf <tt>true</tt> gesetzt, dann setzt MOA auch <tt>autoAddCertificate</tt> automatisch
+auf <tt>true</tt> und ignoriert den Wert aus der Konfigurationsdatei.<br />
+<hr />
+<b>value: </b><br />
+Gültige Werte: <tt>true/false</tt><br />
+Default-Wert: <tt>true</tt>
+</td></tr>
+</table>
+
+<table border="0" cellspacing="3" cellpadding="2">
+<tr id="checkRevocation"><th align="left">name: checkRevocation</th></tr>
+<tr><td id="info">
+Gibt ab, ob bei der Zertifikatsüberprüfung auch der Zertifikatsstatus überprüft werden soll. Der Zertifikatsstatus
+wird mittels Certificate Revocation Lists (CRL) überprüft.<br />
+<hr />
+<b>value: </b><br />
+Gültige Werte: <tt>true/false</tt><br />
+Default-Wert: <tt>false</tt>
+</td></tr>
+</table>
+
+<table border="0" cellspacing="3" cellpadding="2">
+<tr><th align="left">name: maxRevocationAge</th></tr>
+<tr><td id="info">
+Wenn der Zertifikatsstatus überprüft werden soll (siehe Parameter <a href="#checkRevocation"><tt>checkRevocation</tt></a>),
+gibt dieser Parameter an, wann eine aktuelle Revozierungsinformation (CRL) geladen werden soll. <br />
+<hr />
+<b>value: </b><br />
+Gültige Werte:
+<ul id="infolist">
+<li id="infolist">negativer Wert: bei jedem Zugriff auf Revozierungsinformation wird eine aktuelle Revozierungsinformation geladen</li>
+<li id="infolist">0: eine neue Revozierungsinformation wird zu dem Zeitpunkt geladen, der im nextUpdate-Feld der CRL spezifiziert ist</li>
+<li id="infolist">positiver Wert: Zeitspanne in Millisekunden, die eine Revozierungsinformation ohne neuerliche Abfrage verwendet werden darf</li>
+</ul>
+Default-Wert: 0
+</td></tr>
+</table>
+<table border="0" cellspacing="3" cellpadding="2">
+<tr><th align="left">name: archiveRevocationInfo</th></tr>
+<tr><td id="info">
+Gibt an, ob Revozierungsinformation archiviert werden soll
+(siehe auch Parameter <a href=#DataBaseArchiveParameter.JDBCUrl"><tt>DataBaseArchiveParameter.JDBCUrl</tt></a>).
+<br />
+<hr />
+<b>value: </b><br />
+Gültige Werte: <tt>true/false</tt><br />
+Default-Wert: <tt>false</tt>
+</td></tr>
+</table>
+
+<table border="0" cellspacing="3" cellpadding="2">
+<tr id="DataBaseArchiveParameter.JDBCUrl"><th align="left">name: DataBaseArchiveParameter.JDBCUrl</th></tr>
+<tr><td id="info">
+Gibt eine JDBC-URL zur Datenbank an, in der Revozierungsinformation archiviert werden soll. Wird dieser
+Parameter nicht gesetzt, dann wertet MOA den Parameter <tt>archiveRevocationInfo</tt> nicht aus der Konfigurationsdatei
+aus sondern setzt den Wert automatisch auf <tt>false</tt>.
+<br />
+Der genaue Aufbau der JDBC-URL ist abhängig von der verwendeten Datenbank. Im Fall von PostgreSQL kann folgende
+URL verwendet werden: <tt>jdbc:postgresql://host/moadb?user=moauser&amp;amp;password=moapassword</tt> wobei
+<tt>host, moadb, moauser</tt> und <tt>moapassword</tt> an die tatsächlich verwendete Datenbank angepasst werden muss.<br />
+Die Verwendung von <tt>"&amp;amp"</tt> ist erforderlich, da <tt>"&amp;"</tt> einen Fehler bei der Validierung der
+Konfigurationsdatei verursacht.
+<br />
+Die Archivdaten werden nur MOA-SPSS-intern benötigt und das Format ist daher für den Betrieb des Servers nicht relevant.
+<hr />
+<b>value: </b><br />Gültige Werte: String
+</td></tr>
+</table>
+
+</p>
+
+<div id="HardwareKeyModule" />
+<p id="block">
+<b>HardwareKeyModule</b><br />
+Mittels dieses Elements werden Hardware-Key-Module konfiguriert. HardwareKeyModule hat vier Attribute:
+<br /><br />
+<table border="0" cellspacing="3" cellpadding="2">
+<tr><th>Attribut-Name</th><th>Attribut-Typ</th><th>Beschreibung </th> </tr>
+<tr>
+<td valign="top" id="info">id</td><td valign="top" id="info">token</td>
+<td id="info">eine vom Administrator gewählte Bezeichnung für das Key-Modul; diese id wird von KeyGroup/Key/KeyModuleID referenziert.</td>
+</tr>
+<tr>
+<td valign="top" id="info">name</td><td valign="top" id="info">string</td>
+<td id="info">der Name des PKCS#11-Moduls; der Name enthält den Dateinamen der DLL (Windows) oder der Shared-Library
+(Unix), die das PKCS#11-Modul implementiert; der Wert enthält entweder einen Dateinamen mit absoluter Pfadangabe bzw.
+einen Dateinamen ohne Pfadangabe. Im letzteren Fall wird der Dateiname relativ zum Suchpfad des Betriebssystems
+interpretiert.</td>
+</tr>
+<tr>
+<td valign="top" id="info">slotID</td><td valign="top" id="info">string</td>
+<td id="info">ein spezifischer Slot des PKCS#11 HW Moduls; das Attribut ist optional, wird keine slotID spezifiziert, dann selektiert MOA SP/SS einen Slot für die Signaturerstellung.</td>
+</tr>
+<tr>
+<td valign="top" id="info">userPIN</td><td valign="top" id="info">string</td>
+<td id="info">der PIN für die Aktivierung des privaten Schlüssels</td>
+</tr>
+</table>
+</p>
+
+<div id="SoftwareKeyModule" />
+<p id="block">
+<b>SoftwareKeyModule</b><br />
+Mittels dieses Elements werden Software-Key-Module in Form von PKCS#12-Dateien konfiguriert. SoftwareKeyModule hat drei Attribute:
+<br /><br />
+<table border="0" cellspacing="3" cellpadding="2">
+<tr><th>Attribut-Name</th><th>Attribut-Typ</th><th>Beschreibung </th> </tr>
+<tr id="info">
+<td valign="top" id="info">id</td><td valign="top" id="info">token</td>
+<td id="info">eine vom Administrator gewählte Bezeichnung für das Key-Modul; diese id wird von KeyGroup/Key/KeyModuleID referenziert.</td>
+</tr>
+<tr>
+<td valign="top" id="info">filename</td><td valign="top" id="info">string</td>
+<td id="info">der Dateiname der PKCS#12-Datei; das Attribut enthält entweder einen absoluten Pfadnamen oder einen
+Pfadnamen relativ zur MOA SP/SS Konfigurationsdatei.</td>
+</tr>
+<tr>
+<td valign="top" id="info">password</td><td valign="top" id="info">string</td>
+<td id="info">das Passwort zur Aktivierung des privaten Schlüssels in der PKCS#12-Datei</td>
+</tr>
+</table>
+</p>
+
+<div id="KeyGroup" />
+<p id="block">
+<b>KeyGroup</b><br />
+Eine KeyGroup ist eine Zusammenfassung mehreren Keys in eine Gruppe. Der durch das Attribut id definierte Bezeichner
+dieser KeyGroup wird im CreateXMLSignatureRequest im Element KeyIdentifier verwendet. MOA-SS wählt einen Schlüssel
+aus der KeyGroup für die Signaturerstellung aus. Durch die Zusammenfassung mehrere Schlüssel in eine Gruppe
+kann die Verfügbarkeit und der Durchsatz der Signaturerstellung erhöht werden. <br />
+Das Kind-Element Key identifiziert einen privaten Schlüssel.
+Ein Schlüssel wird durch das Element KeyModuleID (siehe z.B. SoftwareKeyModule/@id), Issuer
+und Seriennummer des zum Schlüssel gehörigen Zertifikats im Element KeyCertIssuerSerial bezeichnet.
+<br /><br />
+Die Konfiguration des Elements Key erfolgt in einem 2-stufigen Prozess: <br />
+<ol>
+<li>Zuerst werden die verwendeten PKCS#12-Dateien und PKCS#11-Module als Elemente HardwareKeyModule und SoftwareKeyModule in der Konfigurationsdatei erfasst</li>
+<li>Beim Starten des MOA SP/SS-Servers werden die verfügbaren Schlüssel im Log-File aufgelistet:
+<br /><br />
+<pre style="font-size:8pt">INFO | 10 12:56:43,023 | main |
+ Key ID=SWKeyModule1;
+ CN=IAIK Test CA,OU=IAIK Test CA,
+ OU=Insitute for Applied Information
+ Processing and Communications,
+ O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT;
+ 1044289238331
+INFO | 10 12:56:43,023 | main |
+ Key ID=SWKeyModule2;
+ CN=IAIK Test CA,OU=IAIK Test CA,
+ OU=Insitute for Applied Information
+ Processing and Communications,
+ O=GRAZ UNIVERSITY OF TECHNOLOGY,C=AT;
+ 1044289238331
+INFO | 10 12:56:43,023 | main |
+ Key ID=SWKeyModule3;
+ CN=IAIK ECDSA Test,OU=JavaSecurity,O=IAIK,C=AT;
+ 68172
+INFO | 10 12:56:43,023 | main |
+ Key ID=SWKeyModule4;
+ CN=IAIK DSA Test CA,OU=JavaSecurity,O=IAIK,C=AT;
+ 761791</pre>
+</li>
+<li>Für jeden verfügbaren Schlüssel werden die Inhalte der Elemente Key/KeyModuleID, Key/KeyCertIssuerSerial/X509IssuerName und Key/KeyCertIssuerSerial/X509SerialNumber dem Log-File entnommen und in die Konfigurationsdatei eingetragen</li>
+<li>Nach einem neuerlichen Start von MOA SP/SS stehen die Key-Definitionen zur Verfügung</li>
+</ol>
+</p>
+<p id="block">Sind die zu den zu konfigurierenden Schlüsseln zugehörigen Zertifikate bekannt,
+kann alternativ die Konfiguration in einem Schritt erfolgen, indem
+die benötigten Informationen mit dem Skript <tt>certtool -info &lt;certfilename&gt;</tt> aus dem Zertifikat gelesen werden.
+<tt>&lt;certfilename&gt;</tt> bezeichnet den Dateinamen eines X.509 Zertifikates in DER-Kodierung.
+<br /><br />
+<tt>certtool</tt> ist im Verzeichnis $MOA_SPSS_INST/tools abgelegt.</p>
+
+<div id="KeyGroupMapping" />
+<p id="block">
+<b>KeyGroupMapping</b><br />
+Das Element KeyGroupMapping ordnet einem Client von MOA SS die ihm zur Verfügung stehenden KeyGroups zu, indem das
+den Client repräsentierende TLS Client-Zertifikat (Element <tt>X509IssuerSerial</tt>) mit einer oder mehreren KeyGroups
+assoziiert wird. <br /><br />
+Enthält das Element KeyGroupMapping kein Element X509IssuerSerial, dann können die in diesem Element definierten
+KeyGroups von jedem Client (auch ohne TLS Client Authentisierung) verwendet werden.
+</p>
+
+<div id="ChainingModes" />
+<p id="block">
+<b>ChainingModes</b><br />
+Das Element ChainingModes definiert, ob bei der Zertifikatspfadüberprüfung das Kettenmodell ("chaining") oder das Modell nach PKIX RFC 3280 ("pkix") verwendet werden soll.
+<br /><br />
+Das Attribut systemDefaultMode spezifiziert das Modell, das im Standardfall verwendet werden soll.
+Mit dem Kind-Element TrustAnchor kann für jeden Trust Anchor ein abweichendes Modell spezifiziert werden.
+Ein Trust Anchor ist ein Zertifikat, das im TrustProfile spezifiziert ist (Erklärung siehe <a href="#TrustProfile">
+<tt>TrustProfile</tt></a>).
+Ein Trust Anchor wird durch den Typ dsig:X509IssuerSerialType spezifiziert.
+Das für diesen Trust Anchor gültige Modell wird durch das Attribut mode spezifiziert.
+<br /><br />
+Gültige Werte für die Attribute systemDefaultMode und mode sind "chaining" und "pkix".
+</p>
+
+<div id="CRLArchive" />
+<p id="block">
+<b>CRLArchive</b><br />
+Im Attribut duration wird spezifiziert, wie lange (in Tagen) gecachte CRLs archiviert werden müssen.
+</p>
+
+<div id="CRLDistributionPoint" />
+<p id="block">
+<b>CRLDistributionPoint</b><br />
+Das Element CRLDistributionPoint dient zum Spezifizieren von URLs, die auf CRLs von CAs (Zertifikatsaussteller) verweisen. <br /><br />
+Eine CA wird über das Element CAIssuerDN identifiziert, das den Issuer-DN der CA als String enthält. CRLDistributionPoint kann
+das Element DistributionPoint einmal oder mehrmals enthalten. Das Element DistributionPoint hat zwei Attribute: <br />
+<ul>
+<li>der Wert des Attributs uri enthält den CRL Distribution Point; es werden die Protokolle HTTP, HTTPS und LDAP
+unterstützt.</li>
+<li>der Wert des optionalen Attributs reasonCodes (vom Typ NMTOKENS) enthält eine Liste von Reason Codes
+(nach RFC 3280). Die über uri referenzierte CRL enthält nur CRL Einträge mit den spezifizierten Reason Codes.
+Wird der Wert dieses Attributs nicht gesetzt dann kann die CRL Einträge mit allen reason codes enthalten.<br />
+Gültige Werte:<br />
+<tt>unspecified, keyCompromise, cACompromise, affiliationChanged, superseded,
+cessationOfOperation, certificateHold, removeFromCRL, privilegeWithdrawn, aACompromise</tt></li>
+</ul>
+</p>
+
+<div id="Create" />
+<p id="block">
+<b>CreateSignatureEnvironmentProfile<br />
+CreateTransformsInfoProfile <br />
+VerifyTransformsInfoProfile<br />
+SupplementProfile</b><br />
+Jedes dieser Elemente enthält das Attribut id und das Attribut filename. Das Attribut id bezeichnet das Profil
+wie es im CreateXMLSignatureRequest bzw. VerifyXMLSignatureRequest tatsächlich referenziert wird.
+ Das Attribut filename bezeichnet die Datei, die die
+entsprechenden Elemente gemäß MOA SP/SS Schemas [MOA SP/SS Schema] beinhaltet. Die Datei beinhaltet wohlgeformtes
+XML mit genau einem Element als Dokumentelement.
+<br /><br />
+Die folgende Tabelle bezeichnet jene Elemente, die in den Dateien als Dokumentelement verwendet werden müssen:
+<br /><br />
+<table border="0" cellspacing="3" cellpadding="2">
+<tr><th>Profilname</th><th>Wurzelelement </th> </tr>
+<tr>
+<td id="info">CreateSignatureEnvironmentProfile</td><td id="info">CreateSignatureEnvironmentProfile</td>
+</tr>
+<tr>
+<td id="info">CreateTransformsInfoProfile</td><td id="info">CreateTransformsInfoProfile</td>
+</tr>
+<tr>
+<td id="info">VerifyTransformsInfoProfile</td><td id="info">VerifyTransformsInfoProfile</td>
+</tr>
+<tr>
+<td id="info">SupplementProfile</td><td id="info">SupplementProfile</td>
+</tr>
+</table>
+
+<br /><br />
+</p>
+
+<div id="TrustProfile" />
+<p id="block">
+<b>TrustProfile</b><br />
+Ein TrustProfile enthält Zertifikate, die als vertrauenswürdig betrachtet werden. Vertrauenswürdige Zertifikate können
+selbst-signierte Wurzel-Zertifikate, Zertifikate von Zwischen CAs oder End-Entity Zertifikate sein. Für die
+erfolgreiche Überprüfung eines Zertifikats muss (unter anderem) ein Zertifikatspfad zu einem Zertifikat aufgebaut
+werden können, das in jenem Trustprofile enthalten ist, welches im Verify-Request bezeichnet ist.<br />
+<br />
+TrustProfile enthält zwei Attribute:
+<ul>
+<li>Das Attribut id spezifiziert die TrustProfileID wie sie im Message-Format von MOA-SP referenziert wird</li>
+<li>Das Attribut uri spezifiziert eine URL, die ein Verzeichnis im lokalen Dateisystem referenziert
+(nur das Schema file wird unterstützt). Alle für diese TrustProfileID vertrauenswürdigen
+Zertifikate werden in diesem Verzeichnis gespeichert.</li>
+</ul>
+</p>
+
+</td></tr></table>
+<br /><br />
+
+
+<div id="minimal-config" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+<br />
+<div id="slogan">
+<b>Beispiele</b>
+<a href="examples/conf/MinimalSPConfig.xml" target="_new">MinimalSPConfig.xml </a>
+<br /><br /><br /><br />
+<br /><br /><br />
+<b>Beispiele</b>
+<a href="examples/conf/MinimalSSConfig.xml" target="_new">MinimalSSConfig.xml </a>
+</div>
+</td>
+<td valign="top">
+<p id="subtitel">Minimale Konfigurations-Dateien</p>
+
+<div id="block">
+<b>MOA-SP</b><br />
+Wird nur die Signaturprüfungs-Funktion von MOA-SP/SS verwendet, dann muss die Konfigurationsdatei zumindest folgende Elemente enthalten: <br />
+<ul>
+<li>ein Element TrustProfile </li>
+</ul>
+</div>
+
+<div id="block">
+<b>MOA-SS</b> <br />
+Wird nur die Server-Signatur-Funktion von MOA-SP/SS verwendet, dann muss die Konfigurationsdatei zumindest folgende Elemente enthalten: <br />
+<ul>
+<li>ein Element HardwareKeyModule oder SoftwareKeyModule </li>
+<li>ein Element KeyGroup mit einem Kind-Element Key </li>
+<li>ein Element KeyGroupMapping mit einem Kind-Element <br />KeyGroup </li>
+</ul>
+</div>
+
+</td></tr></table>
+<br /><br />
+
+
+<div id="online-config" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+<div id="slogan">
+<br /><br />
+</div>
+</td>
+<td valign="top">
+<p id="subtitel">Änderung der Konfiguration während des Betriebs</p>
+<div id="block">
+Der Inhalt dieser Konfiguration, bzw. jene Teile, auf die indirekt verwiesen wird (z.B. die Dateien, die die
+Transformations-Profile enthalten), können während des laufenden Betriebes des MOA-Servers geändert werden. Der
+Server selbst wird durch den Aufruf einer URL im Applikationskontext von MOA SP/SS
+(siehe <a href="sp-admin_1.htm#ConfigurationUpdate" target="_new">ConfigurationUpdate</a>)
+dazu veranlasst, die geänderte Konfigurati-on neu einzulesen. Im Falle einer fehlerhaften neuen Konfiguration
+wird die ursprüngliche Konfiguration beibehalten.
+<br /><br />
+</div>
+</td></tr></table>
+<br /><br />
+
+
+
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top"><br /></td>
+<td valign="top">
+<hr />
+<div style="font-size:8pt; color:#909090">&copy; 2003 <!-- Development Center, BRZ GmbH --></div>
+</td></tr></table>
+<br />
+
+
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/spss.server/doc/moa_spss/sp-admin_3.htm b/spss.server/doc/moa_spss/sp-admin_3.htm
new file mode 100644
index 000000000..2e8152abf
--- /dev/null
+++ b/spss.server/doc/moa_spss/sp-admin_3.htm
@@ -0,0 +1,237 @@
+<html>
+<head>
+ <title>MOA SP/SS-Administration</title>
+ <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
+ <meta content="heinz.rosenkranz@brz.gv.at" name="author"/>
+
+<style type="text/css">
+ body { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; }
+ td { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; }
+ th { font-family:"Verdana", "Arial"; font-size:10pt; font-weight:bold; color:#d8d8d8; background:#505050}
+ li { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; margin-top:3px }
+ ul { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; margin-top:3px }
+ tt { font-size:9pt; color:#505060; }
+ #titel { font-family:"Verdana", "Arial"; font-size:18pt; color:#505060; }
+ #subtitel { font-family:"Verdana", "Arial"; font-size:12pt; font-weight:bold; color:#505060; }
+ #slogan { font-family:"Verdana", "Arial"; font-size:8pt; color:#808090; text-align:justify; width:160px }
+ #block { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; text-align:justify }
+ #klein { font-family:"Verdana", "Arial"; font-size:9pt; color:#505060; margin-top:3px }
+ #info { font-family:"Verdana", "Arial"; font-size:8pt; color:#505060; padding:3px; border:solid 1px #c0c0c0 }
+ #infolist { font-family:"Verdana", "Arial"; font-size:8pt; color:#505060; }
+ a:link {color:#000090}
+ a:visited {color:#000090}
+ a:hover {color:#c03030}
+ a {text-decoration: none}
+</style>
+
+<script language="JavaScript">
+<!--
+function goWin(url) {
+ Fenster=window.open(url,"smallWin","toolbar=0,location=0,directories=0,status=0,menubar=0,resizable=yes,scrollbars=yes,width=500,height=480,top=20,screenY=0,left=20,screenX=0");
+ window.setTimeout("showWin()",300);
+}
+function showWin() { Fenster.focus(); }
+// -->
+</script>
+</head>
+
+<body bgcolor="#FFFFFF" >
+<div style="width:650px">
+
+<!-- Projekt-Logo -->
+<div style="height:42px; font-size:16pt; color:#b0b8c0; background:#003050">
+&#160;Module für Online-Applikationen
+</div>
+<div style="margin-left:8px; margin-top:3px; font-size:8pt; color:#707070; ">
+<!-- Development Center der BRZ GmbH, A-Trust und IAIK Graz -->&#160;
+</div>
+<div style="margin-top:-65px; text-align:right; font-size:8pt; font-weight:bold; color:#d04040;" >
+Projekt <span style="font-size:48pt; ">moa</span>&#160;
+</div>
+<br />
+
+<!-- First Section with Navigation -->
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top">
+<div style="font-weight:bold; margin-top:12px">MOA-SP/SS</div><br />
+<div id="klein"><a href="sp-admin.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Übersicht</b></a></div>
+<div id="klein"><a href="sp-admin_1.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Basis-Installation<br />&#160; &#160;&#160;(Webservice)</b></a></div>
+<div id="klein"><a href="sp-admin_4.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Basis-Installation<br />&#160; &#160;&#160;(Klassenbibliothek)</b></a></div>
+<div id="klein"><a href="sp-admin_2.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Konfiguration </b></a></div>
+<div id="klein"><img src="../moa_images/select.gif" border="0" width="13" height="14" />
+ <b> Optionale<br />&#160; &#160;&#160;Komponenten</b></div>
+<br />
+<div id="klein"><a href="moa.htm"><img src="../moa_images/west.gif" border="0" width="13" height="14" />
+ <b> Zurück</b></a></div>
+<br />
+<div id="slogan">
+<b>Optionale <br />Komponenten</b><br />
+<a href="#IIS"><b>IIS </b></a><br />
+<a href="#Apache"><b>Apache </b></a><br />
+<a href="#HSM"><b>HSM </b></a><br />
+<a href="#SQL"><b>PostgreSQL </b></a><br />
+</div>
+</td>
+
+<div id="IIS" />
+<td valign="top">
+<p id="titel">Konfiguration der optionalen Komponenten</p>
+<p id="subtitel">Konfiguration des Microsoft Internet Information Server (optional)</p>
+<div id="block">
+Den MOA SP/SS Webservices kann optional ein MS IIS vorgeschaltet sein. In diesem Fall übernimmt der MS IIS die HTTP- bzw. HTTPS-Kommunikation mit dem Aufrufer des Webservices. Die Kommunikation zwischen MS IIS und dem in Tomcat deployten Webservice wird durch Jakarta mod_jk durchgeführt. Die angeführten Konfigurationsschritte gehen von einer MS IIS Standard-Installation aus.<br /><br />
+<b>Konfiguration von Jakarta mod_jk im MS IIS</b><br />
+Für die Kommunikation des MS IIS mit dem im Tomcat deployten Webservice wird das ISAPI-Modul von Jakarta mod_jk im MS IIS installiert und konfiguriert. Eine detaillierte Installations- und Konfigurationsanleitung gibt das <a href="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/jk/iishowto.html" target="_new">mod_jk IIS HowTo</a>. Beispiele für <tt>workers.properties</tt> und <tt>uriworkermap.properties</tt> Dateien liegen im Verzeichnis $MOA_SPSS_INST/tomcat bei.
+<br /><br />
+<b>Konfiguration von Tomcat</b><br />
+Damit Tomcat die Aufrufe, die von MS IIS mittels Jakarta mod_jk weiterleitet, entgegennehmen kann, muss in $CATALINA_HOME/conf/server.xml der AJP 1.3 Connector aktiviert werden. Im Gegenzug können die Connectoren für HTTP und HTTPS deaktiviert werden. Das geschieht am einfachsten durch Ein- bzw. Auskommentieren der entsprechenden <tt>Connector</tt> Konfigurations-Elemente in dieser Datei. Die Datei $MOA_SPSS_INST/tomcat/server.mod_jk.xml enthält eine Konfiguration, die ausschließlich den Port für den mod_jk Connector offen lässt.
+<br /><br />
+</div>
+<div id="block">
+<b>Konfiguration von SSL</b><br />
+Die Dokumentation zum Einrichten von SSL auf dem MS IIS steht nach Installation des IIS unter http://localhost/iisHelp/ bzw. <a href="http://www.microsoft.com/windows2000/en/server/iis/default.asp" target="_new">online</a> zur Verfügung.
+</div>
+</td></tr></table>
+<br /><br />
+
+
+<div id="Apache" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+<div id="slogan">
+<br /><br />
+</div>
+</td>
+<td valign="top">
+<p id="subtitel">Konfiguration des Apache Webservers (optional)</p>
+<div id="block">
+Den MOA SP/SS Webservices kann ein Apache Webserver vorgeschaltet sein. Das Prinzip funktioniert wie bei MS IIS, auch hier wird Jakarta mod_jk für die Kommunikation zwischen Webserver und Tomcat eingesetzt. Die angeführten Konfigurationsschritte gehen von einer Standard-Installation des Apache Webservers aus und sind ident für die Versionen 1.3.x und 2.0.x.
+<br /><br />
+<b>Konfiguration von Jakarta mod_jk im Apache Webserver</b><br />
+ Um das MOA-SPSS Webservice hinter einem Apache Webserver zu betreiben, ist die Konfiguration des Apache-Moduls mod_jk erforderlich. Eine detaillierte Installations- und Konfigurationsanleitung gibt das <a href="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/jk/aphowto.html" target="_new">mod_jk Apache HowTo</a>. Ein Beispiel für eine <tt>workers.properties</tt> Datei liegt im Verzeichnis $MOA_SPSS_INST/tomcat bei.<br />
+Um das MOA SP/SS Webservice dem Apache Webserver bekannt zu machen, sind zumindest folgende Einträge im globalen Kontext der Apache-Konfigurationsdatei notwendig:
+<pre>
+ LoadModule jk_module /usr/lib/apache/mod_jk.so
+ AddModule jk_module
+ JkOptions +ForwardKeySize +ForwardURICompat
+ -ForwardDirectories
+ JkWorkersFile conf/workers.properties
+ JkMount /moa-spss/* moaworker
+</pre>
+
+Die Pfad- und Dateinamen können je nach existierender Apache Installation geringfügig variieren.
+
+<br /><br />
+<b>Konfiguration von Tomcat</b><br />
+Die Konfiguration von Tomcat ist analog wie im Abschnitt über den MS IIS durchzuführen.
+<br /><br />
+
+<b>Konfiguration von SSL mit mod_SSL </b><br />
+Apache kann in Verbindung mit mod_SSL als SSL-Endpunkt für das MOA SP/SS Webservice fungieren. In diesem Fall entfällt die SSL-Konfiguration in Tomcat, da Apache und Tomcat auch im Fall von SSL Daten via mod_jk austauschen. Eine detaillierte Installations- und Konfigurationsanleitung von mod_SSL gibt die <a href="http://www.modssl.org/docs/" target="_new">Online-Dokumentation</a>.
+<br /><br />
+Bei der Verwendung von Client-Authentisierung muss darauf geachtet werden, dass mod_ssl die HTTP-Header mit den Informationen über das Client-Zertifikat exportiert. Dies wird durch Angabe der Option<br />
+<pre>
+ SSLOptions +ExportCertData +StdEnvVars
+</pre>
+in der Apache-Konfiguration erreicht. Je nach vorhandener SSL-Konfiguration des Apache Webservers kann diese Option im globalen Kontext, im Kontext des Virtual Hosts oder im Kontexts eines Verzeichnisses spezifiziert werden.<br />
+
+</div>
+</td></tr></table>
+<br /><br />
+
+
+<div id="HSM" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+<div id="slogan">
+<br /><br />
+</div>
+</td>
+<td valign="top">
+<p id="subtitel">HSM, am Beispiel Eracom protectserver orange external (optional) </p>
+<div id="block">
+Eracom protectserver orange external wird gemäß der Installationsanleitung installiert.
+<p>
+Die Bibliotheken in $MOA_SPSS_INST/pkcs11 müssen anschließend in den Library-Pfad
+des jeweiligen Betriebssystems kopiert werden (Windows 2000: ein Verzeichnis, das
+in der Umgebungsvariablen PATH vorhanden ist; Linux: ein Verzeichnis, das in der
+Umgebungsvariablen LD_LIBRARY_PATH vorhanden ist). Der Name der PKCS#11-Bibliothek
+wird als Wert des Attributs <a href="sp-admin_2.htm#HardwareKeyModule">
+<tt>/MOAConfiguration/HardwareKeyModule/@name</tt></a> in der
+Konfigurationsdatei verwendet.
+<br />
+<br /><br />
+</div>
+</td></tr></table>
+
+
+<div id="SQL" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+</td>
+<td valign="top">
+<p id="subtitel">Konfiguration von PostgreSQL (optional)</p>
+<div id="block">
+Die MOA SP/SS Module können PostgreSQL zum Zwischenspeichern von Certificate Revocation Lists (CRLs) und zum Abspeichern von Log-Meldungen verwenden. In beiden Fällen wird eine installierte und konfigurierte Datenbank vorausgesetzt. Eine detaillierte Übersicht über die Installation und Konfiguration von PostgreSQL gibt die <a href="http://techdocs.postgresql.org/">Online-Dokumentation</a>. <b>Hinweis:</b> Eine Möglichkeit, PostgreSQL unter MS Windows zu installieren, besteht darin, <a href="http://sources.redhat.com/cygwin/">Cygwin</a> mit dem PostgreSQL-Package zu installieren. Alternative Installationsvarianten werden auf <a href="http://techdocs.postgresql.org/guides/Windows">dieser Seite</a> angeführt.<br /><br />
+<b>Anlegen eines Benutzers und einer Datenbank für MOA</b><br />
+Damit die MOA SP/SS Module eine Verbindung zu PostgreSQL aufbauen kann, müssen der Name eines PostgreSQL-Benutzers und einer -Datenbank bekannt sein. Sollten diese nicht vorhanden sein, kann mit folgenden Kommandos ein Benutzer namens <tt>moa</tt> und eine Datenbank namens <tt>moadb</tt> angelegt werden: <br />
+<pre>
+ createuser -U postgres -d -A -P moa
+ createdb -U moa moadb
+</pre>
+
+Da die MOA SP/SS Module über JDBC mit der Datenbank kommunizieren, ist in der Folge die Angabe einer JDBC-URL notwendig, die die Verbindungsparameter enthält. Wurden der Benutzer und die Datenbank wie im obigen Beispiel angelegt, ist folgende JDBC-URL anzugeben (durchgeschrieben, in einer Zeile):
+<pre>
+ jdbc:postgresql://host/moadb?user=moa&amp;
+ password=moapass
+</pre>
+(Annahme: als Passwort für den Benutzer <tt>moa</tt> wurde <tt>moapass</tt> gewählt).
+Die Zeichen <tt>jdbc:postgresql://</tt> sind unveränderliche Bestandteile einer PostgreSQL JDBC-URL. <tt>host</tt> gibt den Rechner an, auf dem PostgreSQL läuft. Der nächste Parameter (<tt>moadb</tt>) identifiziert den Namen der Datenbank. Über die Parameter <tt>user=</tt> und <tt>pass=</tt> werden Benutzer und Passwort bekanntgegeben.
+
+
+<br /><br />
+
+<b>Caching von CRLs</b><br />
+Zum Cachen von CRLs müssen in der MOA SP/SS Konfigurationsdatei die Einträge <tt>archiveRevocationInfo</tt> auf <tt>true</tt> und <tt>DataBaseArchiveParameter.JDBCUrl</tt> auf eine gültige JDBC-URL gesetzt werden. Da es sich hier um einen Eintrag in eine XML-Datei handelt, muss das Zeichen "&amp;" in der oben gezeigten JDBC-URL durch die Zeichenfolge "&amp;amp;" ersetzt werden.
+<br /><br />
+<b>Logging</b><br />
+Für das Logging in eine PostgreSQL Datenbank mittels Jakarta Log4j muss zunächst eine Tabelle für die Log-Meldungen angelegt werden. Dies kann mit folgendem SQL-Statement erreicht werden:
+<pre>
+ create table spss_log
+ (log_time timestamp,
+ log_level varchar(5),
+ log_msg text);
+</pre>
+Um das Logging in die Datenbank Log4j bekannt zu machen, muss die Log4j-Konfiguration adaptiert werden. Die Datei $MOA_SPSS_INST/conf/moa-spss/log4j.properties enthält bereits eine beispielhafte Jakarta Log4j-Konfiguration für das Logging in eine PostgreSQL Datenbank, die standardmäßig ausgeschaltet ist. Wie beim Caching von CRLs ist auch hier die Angabe einer JDBC-URL notwendig, damit die MOA SP/SS Module eine Verbindung zur Datenbank aufnehmen können.<br />
+<b>Hinweis:</b> Bei Tests hat sich das Logging in eine Datenbank mit Jakarta Log4j als Performance-Engpass herausgestellt. Es wird deshalb empfohlen, auf dieses Feature zu verzichten.
+<br /><br />
+</div>
+
+</td></tr></table>
+<br /><br />
+
+
+
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top"><br /></td>
+<td valign="top">
+<hr />
+<div style="font-size:8pt; color:#909090">&copy; 2003 <!-- Development Center, BRZ GmbH --></div>
+</td></tr></table>
+<br />
+
+
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/spss.server/doc/moa_spss/sp-admin_4.htm b/spss.server/doc/moa_spss/sp-admin_4.htm
new file mode 100644
index 000000000..45aba4695
--- /dev/null
+++ b/spss.server/doc/moa_spss/sp-admin_4.htm
@@ -0,0 +1,183 @@
+<html>
+<head>
+ <title>MOA SP/SS-Administration</title>
+ <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
+ <meta content="heinz.rosenkranz@brz.gv.at" name="author"/>
+
+<style type="text/css">
+ body { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; }
+ td { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; }
+ th { font-family:"Verdana", "Arial"; font-size:10pt; font-weight:bold; color:#d8d8d8; background:#505050}
+ li { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; margin-top:3px }
+ ul { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; margin-top:3px }
+ tt { font-size:9pt; color:#505060; }
+ pre { font-size:9pt; color:#505060; }
+ #titel { font-family:"Verdana", "Arial"; font-size:18pt; color:#505060; }
+ #subtitel { font-family:"Verdana", "Arial"; font-size:12pt; font-weight:bold; color:#505060; }
+ #slogan { font-family:"Verdana", "Arial"; font-size:8pt; color:#808090; text-align:justify; width:160px }
+ #block { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; text-align:justify }
+ #klein { font-family:"Verdana", "Arial"; font-size:9pt; color:#505060; margin-top:3px }
+ #info { font-family:"Verdana", "Arial"; font-size:8pt; color:#505060; padding:3px; border:solid 1px #c0c0c0 }
+ #infolist { font-family:"Verdana", "Arial"; font-size:8pt; color:#505060; }
+ a:link {color:#000090}
+ a:visited {color:#000090}
+ a:hover {color:#c03030}
+ a {text-decoration: none}
+</style>
+
+<script language="JavaScript">
+<!--
+function goWin(url) {
+ Fenster=window.open(url,"smallWin","toolbar=0,location=0,directories=0,status=0,menubar=0,resizable=yes,scrollbars=yes,width=500,height=480,top=20,screenY=0,left=20,screenX=0");
+ window.setTimeout("showWin()",300);
+}
+function showWin() { Fenster.focus(); }
+// -->
+</script>
+</head>
+
+<body bgcolor="#FFFFFF" >
+<div style="width:650px">
+
+<!-- Projekt-Logo -->
+<div style="height:42px; font-size:16pt; color:#b0b8c0; background:#003050">
+&#160;Module für Online-Applikationen
+</div>
+<div style="margin-left:8px; margin-top:3px; font-size:8pt; color:#707070; ">
+<!-- Development Center der BRZ GmbH, A-Trust und IAIK Graz -->&#160;
+</div>
+<div style="margin-top:-65px; text-align:right; font-size:8pt; font-weight:bold; color:#d04040;" >
+Projekt <span style="font-size:48pt; ">moa</span>&#160;
+</div>
+<br />
+
+<!-- First Section with Navigation -->
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top">
+<div style="font-weight:bold; margin-top:12px">MOA-SP/SS</div><br />
+<div id="klein"><a href="sp-admin.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Übersicht</b></a></div>
+<div id="klein"><a href="sp-admin_1.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Basis-Installation<br />&#160; &#160;&#160;(Webservice)</b></a></div>
+<div id="klein"><img src="../moa_images/select.gif" border="0" width="13" height="14" />
+ <b> Basis-Installation<br />&#160; &#160;&#160;(Klassenbibliothek)</b></div>
+<div id="klein"><a href="sp-admin_2.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Konfiguration </b></a></div>
+<div id="klein"><a href="sp-admin_3.htm"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Optionale<br />&#160; &#160;&#160;Komponenten</b></a></div>
+<br />
+<div id="klein"><a href="moa.htm"><img src="../moa_images/west.gif" border="0" width="13" height="14" />
+ <b> Zurück</b></a></div>
+</br /><br />
+<div id="slogan">
+<b>Installationsschritte: </b>
+</br /><br />
+<a href="#vorbereitung"><b>Vorbereitung</b></a><br />
+<a href="#Klassenpfad"><b>Klassenpfad</b></a><br />
+<a href="#Logging"><b>Logging</b></a><br />
+</div>
+</td>
+
+<td valign="top">
+<p id="titel">Basis-Installation (Klassenbibliothek)</p>
+<div id="vorbereitung" />
+<p id="subtitel">Vorbereitung</p>
+<div id="block">
+<b>Installation des JDK</b><br />
+Installieren Sie das JDK 1.3.1 oder JDK 1.4.1 in ein beliebiges Verzeichnis. Das Wurzelverzeichnis der JDK-Installation wird im weiteren Verlauf als $JAVA_HOME bezeichnet.
+<br /><br />
+<b>Entpacken der MOA SP/SS Klassenbibliothek</b><br />
+Entpacken Sie die Datei moa-spss-1.0.x-lib.zip in ein beliebiges Verzeichnis. Dieses Verzeichnis wird im weiteren Verlauf als $MOA_SPSS_INST bezeichnet.
+<br /><br />
+<b>Installation der IAIK JCE und JSSE im JDK 1.3.1</b><br />
+Da Java in der Version 1.3.1 ohne Unterstützung für Kryptographie und SSL ausgeliefert wird, muss dies manuell nachträglich installiert werden. Für den Einsatz der MOA SP/SS Klassenbibliothek ist es deshalb notwendig, die Dateien aus dem Verzeichnis $MOA_SPSS_INST/ext13 in das Verzeichnis $JAVA_HOME/jre/lib/ext zu kopieren.
+<br /><br />
+<b>Installation der IAIK JCE im JDK 1.4.1</b><br />
+Um die mit MOA SP/SS ausgelieferte IAIK JCE im JDK 1.4.1 zu installieren, müssen die Dateien aus dem Verzeichnis $MOA_SPSS_INST/ext14 in das Verzeichnis $JAVA_HOME/lib/ext kopiert werden. Zusätzlich müssen die sogenannten "Unlimited Strength Jurisdiction Policy Files 1.4.1" heruntergeladen, entpackt und ins Verzeichnis $JAVA_HOME/jre/lib/security kopiert werden. Der Download für diese Dateien findet sich am unteren Ende der <a href="http://java.sun.com/j2se/1.4.1/download.html">Download-Seite für das JDK 1.4.1</a> in der Sektion "Other Downloads".
+<br /><br />
+</div>
+</td></tr></table>
+
+
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<div id="Klassenpfad" />
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+<div id="slogan">
+<br /><br />
+</div>
+</td>
+<td valign="top">
+<p id="subtitel">Einbinden der Bibliotheken in den Klassenpfad</p>
+<div id="block">
+Um die MOA SP/SS Klassenbibliothek in einer Applikation verwenden zu können, müssen die mit MOA SP/SS ausgelieferten Klassenbibliotheken in den Java Klassenpfad der Applikation eingebunden werden. Folgende Tabelle gibt Aufschluss über die eingesetzten Klassenbibliotheken:<br /><br />
+<div id="block">
+<table border="1" width="100%" cellpadding="2" cellspacing="0">
+<tr>
+<th>Klassenbibliothek</th><th>Version</th><th>Dateien</th>
+</tr><tr>
+<td>MOA SP/SS</td><td>1.0.x&#160; </td><td>moa-spss.jar, moa-common.jar</td>
+</tr><tr>
+<td>IAIK MOA</td><td>1.07&#160; </td><td>lib/iaik-moa-full.jar, lib/iaikPkcs11Provider.jar, lib/iaikPkcs11Wrapper.jar, lib/iaik_cms.jar, lib/iaik_ecc.jar, lib/ixsil.jar, lib/ext13/iaik_jce_full.jar, lib/ext14/iaik_ecc.jar, lib/ext14/iaik_jce_full.jar, lib/ext14/ iaikPkcs11Provider_signed.jar</td>
+</tr><tr>
+<td>JAXP</td><td>1.2_01&#160; </td><td>lib/jaxp-api.jar, lib/sax.jar, lib/dom.jar</td>
+</tr><tr>
+<td>Xerces-J</td><td>2.0.2&#160; </td><td>lib/xercesImpl.jar, lib/xmlParserAPIs.jar</td>
+</tr><tr>
+<td>Xalan-J</td><td>2.2.0&#160; </td><td>lib/xalan.jar, lib/bsf.jar</td>
+</tr><tr>
+<td>Jaxen</td><td>1.0&#160; </td><td>lib/jaxen-core.jar, lib/jaxen-dom.jar, lib/saxpath.jar</td>
+</tr><tr>
+<td>Commons-Logging</td><td>1.0.2&#160; </td><td>lib/commons-logging-api.jar, lib/commons-logging.jar</td>
+</tr><tr>
+<td>Log4j</td><td>1.2.7&#160; </td><td>lib/log4j-1.2.7.jar</td>
+</tr><tr>
+<td>Commons-Discovery</td><td>0.2&#160; </td><td>lib/commons-discovery.jar</td>
+</tr><tr>
+<td>JSSE</td><td>1.0.3_01&#160; </td><td>lib/ext13/jsse.jar, lib/ext13/jcert.jar, lib/ext13/jnet.jar</td>
+</tr><tr>
+<td>Postgres JDBC2</td><td>7.3&#160; </td><td>lib/pg73jdbc2.jar</td>
+</tr><tr>
+</tr>
+</table>
+</div>
+<br />
+<div id="block">
+Folgende Einschränkungen sind zu beachten:<br />
+<ul>
+<li>Unter JDK 1.4.1 muss die Angabe der IAIK MOA Bibliotheken <tt>lib/iaik_ecc.jar</tt> und <tt>lib/iaikPkcs11Provider.jar</tt> entfallen, da diese bereits im Vorbereitungsschritt ins JDK kopiert wurden, und damit automatisch zur Verfügung stehen.
+<li>Unter JDK 1.4.1 muss die Angabe der JSSE-Bibliotheken entfallen, da diese bereits im JDK enthalten sind.</li>
+<li>Wenn keine Datenbank-Funktionalität verwendet wird, kann die Angabe des Postgres JDBC-Treibers entfallen.</li>
+</ul>
+
+</div>
+</td></tr></table>
+
+<div id="Logging" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+<div id="slogan">
+</div>
+</td>
+<td valign="top">
+<div id="Logging" />
+<p id="subtitel">Logging</p>
+<div id="block">
+Die MOA SP/SS Klassenbibliothek verwendet Jakarta Log4j für die Ausgabe von Log-Meldungen am Bildschirm bzw. in Log-Dateien. Die im Abschnitt zum Thema <a href="sp-admin_1.htm#Logging">Logging im MOA SP/SS Webservice</a> gemachten Aussagen lassen sich großteils auf den Einsatz der MOA SP/SS Klassenbibliothek übertragen.
+</td></tr></table>
+<br /><br />
+
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top"><br /></td>
+<td valign="top">
+<hr />
+<div style="font-size:8pt; color:#909090">&copy; 2003 <!-- Development Center, BRZ GmbH --></div>
+</td></tr></table>
+<br />
+
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/spss.server/doc/moa_spss/sp-anwendung.htm b/spss.server/doc/moa_spss/sp-anwendung.htm
new file mode 100644
index 000000000..4adccb46d
--- /dev/null
+++ b/spss.server/doc/moa_spss/sp-anwendung.htm
@@ -0,0 +1,1079 @@
+<html>
+<head>
+ <title>MOA SP/SS-Anwendung</title>
+ <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
+ <meta content="heinz.rosenkranz@brz.gv.at" name="author"/>
+
+<style type="text/css">
+ body { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; }
+ td { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; }
+ th { font-family:"Verdana", "Arial"; font-size:10pt; font-weight:bold; color:#c0c0c0; background:#505050}
+ li { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; margin-top:3px }
+ ul { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; margin-top:3px }
+ tt { font-size:9pt; color:#505060; }
+ pre { font-size:9pt; color:#505060; }
+ #titel { font-family:"Verdana", "Arial"; font-size:18pt; color:#505060; }
+ #subtitel { font-family:"Verdana", "Arial"; font-size:12pt; font-weight:bold; color:#505060; }
+ #slogan { font-family:"Verdana", "Arial"; font-size:8pt; color:#808090; text-align:justify; width:160px }
+ #block { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; text-align:justify }
+ #klein { font-family:"Verdana", "Arial"; font-size:9pt; color:#505060; margin-top:3px }
+ a:link {color:#000090}
+ a:visited {color:#000090}
+ a:hover {color:#c03030}
+ a {text-decoration: none}
+</style>
+
+<script language="JavaScript">
+<!--
+function goWin(url) {
+ Fenster=window.open(url,"smallWin","toolbar=0,location=0,directories=0,status=0,menubar=0,resizable=yes,scrollbars=yes,width=500,height=480,top=20,screenY=0,left=20,screenX=0");
+ window.setTimeout("showWin()",300);
+}
+function showWin() { Fenster.focus(); }
+// -->
+</script>
+</head>
+
+<body bgcolor="#FFFFFF" >
+<div style="width:650px">
+
+<!-- Projekt-Logo -->
+<div style="height:42px; font-size:16pt; color:#b0b8c0; background:#003050">
+&#160;Module für Online-Applikationen
+</div>
+<div style="margin-left:8px; margin-top:3px; font-size:8pt; color:#707070; ">
+<!-- Development Center der BRZ GmbH, A-Trust und IAIK Graz -->&#160;
+</div>
+<div style="margin-top:-65px; text-align:right; font-size:8pt; font-weight:bold; color:#d04040;" >
+Projekt <span style="font-size:48pt; ">moa</span>&#160;
+</div>
+<br />
+
+<!-- First Section with Navigation -->
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top">
+<div style="font-weight:bold; margin-top:12px">MOA-SP/SS</div><br />
+<div id="klein"><a href="#Webservices"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Beispiel-Programme </b></div>
+<div id="klein"><a href="#ClientExample"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Client Example</b></div>
+<div id="klein"><a href="#ServerAuth"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Server Auth Example</b></div>
+<div id="klein"><a href="#ClientAuth"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Client Auth Example</b></div>
+<div id="klein"><a href="#API"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> API Example</b></div>
+<br />
+<div id="klein"><a href="#Beispiel-Requests"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> Beispiel-Requests</b></div>
+
+<div id="klein"><a href="#CreateXMLSignature1"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> CreateXMLSignature 1</b></div>
+<div id="klein"><a href="#VerifyXMLSignature1"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> VerifyXMLSignature 1</b></div>
+<div id="klein"><a href="#CreateXMLSignature2"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> CreateXMLSignature 2</b></div>
+<div id="klein"><a href="#VerifyXMLSignature2"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> VerifyXMLSignature 2</b></div>
+<div id="klein"><a href="#VerifyCMSSignature"><img src="../moa_images/idle.gif" border="0" width="13" height="14" />
+ <b> VerifyCMSSignature</b></div>
+
+<br />
+<div id="klein"><a href="moa.htm"><img src="../moa_images/west.gif" border="0" width="13" height="14" />
+ <b> Zurück</b></a></div>
+<br /><br />
+</td>
+
+<td valign="top">
+<div id="titel">MOA SP/SS-Anwendung</div>
+<p id="block">
+Die Module Signaturprüfung (SP) und Serversignatur (SS) sind als plattformunabhängige Module ausgelegt, die über ein
+Webservice bzw. ein Java-API verwendet werden können.
+<br /><br />
+Dieses Handbuch beschreibt die Verwendung der SP/SS-Module anhand einfacher exemplarischer Anwendungen:
+<ul>
+<li>HTTPClientExample.java <br />Aufruf des Webservice über HTTP </li>
+<li>HTTPSClientExampleServerAuth.java <br />Aufruf des Webservice über eine TLS-Verbindung mit serverseitiger Authentisierung</li>
+<li>HTTPSClientExampleClientAuth.java <br />Aufruf des Webservice über eine TLS-Verbindung mit client- und serverseitiger Authentisierung</li>
+<li>APIClientExample.java <br />Aufruf des API</li>
+</ul>
+Weiters werden folgende Beispiel-Requests beschrieben:
+<ul>
+<li>einfache Requests für die Erstellung und Überprüfung einer XML-Signatur</li>
+<li>umfassende Requests für die Erstellung und Überprüfung einer XML-Signatur</li>
+<li>ein Request für die Überprüfung einer CMS-Signatur</li>
+</ul>
+
+</p>
+</td></tr></table>
+
+
+<div id="voraussetzung" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+</div>
+</td>
+<td valign="top">
+<p id="subtitel">Voraussetzungen</p>
+<div id="block">
+Die folgende Liste enthält die erforderlichen Java-Bibliotheken, um die Beispielprogramme auszuführen.
+Die angeführten Versionsnummern bezeichnen jene Versionen dieser Java-Bibliotheken, mit denen die
+Beispielprogramme getestet wurden.
+<br /><br />
+<table border="1" width="100%" cellpadding="2" cellspacing="0">
+<tr>
+<th>Java-Bibliothek</th><th>Version</th><th>Bemerkung</th>
+</tr><tr>
+<tr valign="top">
+<td>JDK</td><td>1.3+</td><td>Java Development Kit</td>
+</tr><tr valign="top">
+<td>Xerces <br />XML Parser</td><td>2.0.2+</td>
+<td id="klein">nicht nötig wenn JDK 1.4 verwendet wird <br />
+ Download: <a href="http://xml.apache.org/xerces2-j/">xml.apache.org/xerces2-j</a> </td>
+</tr><tr valign="top">
+<td>AXIS Framework</td><td>1.0+</td>
+<td id="klein">Download: <a href="http://xml.apache.org/axis/">xml.apache.org/axis</a> </td>
+</tr><tr valign="top">
+<td>JSSE</td><td>1.0.3+</td>
+<td id="klein">wenn eine SSL Verbindung verwendet wird, nicht nötig wenn JDK 1.4 verwendet wird <br />Download: <a href="http://java.sun.com/products/jsse/">java.sun.com/products/jsse</a> </td>
+</tr><tr valign="top">
+<td>Servlet API</td><td>2.3+</td>
+<td id="klein">nicht nötig wenn AXIS 1.1 verwendet wird <br />
+Download: <a href="http://java.sun.com/products/servlet/">java.sun.com/products/servlet</a> </td>
+</tr>
+</table>
+</div>
+</td></tr></table>
+<br /><br />
+
+
+
+<div id="Webservices" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="titel">&#160;</p>
+<p id="subtitel">&#160;</p>
+</td>
+<td valign="top">
+<p id="titel">Beispiel-Programme </p>
+<div id="block">Im folgenden werden vier Beispiele für Client-Applikationen beschrieben: </div>
+<ul>
+<li>HTTPClientExample <br />
+Aufruf des Webservice über HTTP</li>
+<li>HTTPSClientExampleServerAuth <br />
+Aufruf des Webservice über eine TLS-Verbindung mit serverseitiger Authentisierung </li>
+<li>HTTPSClientExampleClientAuth <br />
+Aufruf des Webservice über eine TLS-Verbindung mit client- und serverseitiger Authentisierung</li>
+<li>APIClientExample <br />
+Aufruf des API</li>
+</ul>
+</td></tr></table>
+<br /><br />
+
+
+
+<div id="ClientExample" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+<div id="slogan">
+<b>Beispiel: </b><br />
+<a href="examples/testclient/example_request.xml" target="_new">example_request.xml</a><br />
+<a href="HTTPClientExample.txt" target="_new">HTTPClientExample</a><br />
+<br /><br />
+</div>
+</td>
+<td valign="top">
+<p id="subtitel">Beispiel HTTPClientExample </p>
+<div id="block">
+<b>1. Einlesen des XML-Request aus einer Datei</b><br />
+<pre>
+ FileInputStream inputStream =
+ new FileInputStream("example_request.xml");
+</pre
+<br /><br />
+
+<b>2. Aufbau der DOM-Struktur</b><br />
+Erstellen der BuilderFactory für den Parser
+<pre>
+ DocumentBuilderFactory factory =
+ DocumentBuilderFactory.newInstance();
+</pre>
+Namespaces müssen im Request definiert sein, darum
+<pre>
+ factory.setNamespaceAware(true);
+</pre>
+Einen neuen Builder instanzieren
+<pre>
+ DocumentBuilder builder =
+ factory.newDocumentBuilder();
+</pre>
+XML-Datei einlesen und parsen
+<pre>
+ Document root_request =
+ builder.parse(inputStream);
+</pre>
+<br /><br />
+
+<b>3. AXIS Service instanzieren</b><br />
+Service erstellen. SERVICE_QNAME ist entweder SignatureCreation oder SignatureVerification.
+<pre>
+ Service service =
+ ServiceFactory.newInstance().
+ createService(SERVICE_QNAME);
+</pre>
+Call Object erstellen
+<pre>
+ Call call = service.createCall();
+</pre>
+Ein SOAP Body Objekt erzeugen und mit dem Request aus der Datei füllen
+<pre>
+ SOAPBodyElement body =
+ new SOAPBodyElement(root_request.
+ getDocumentElement());
+ SOAPBodyElement[] params =
+ new SOAPBodyElement[] {body};
+</pre>
+Serviceendpunkt einstellen. URL zum Server mit dem Webservice z.b. http://localhost:8080/moa-spss/services/SignatureCreation.
+<pre>
+ call.setTargetEndpointAddress(ENDPOINT);
+</pre>
+<br /><br />
+
+<b>4. Service aufrufen</b><br />
+Request durchführen (Parameter werden als Array von SOAPBodyElement-Objekten übergeben)
+<pre>
+ Vector responses = (Vector)call.invoke(params);
+</pre>
+Response auslesen
+<pre>
+ SOAPBodyElement response =
+ (SOAPBodyElement) responses.get(0);
+</pre>
+Response-Document auslesen
+<pre>
+ Document root_response = response.getAsDocument();
+</pre>
+<br /><br />
+
+<b>5. Exceptions behandeln</b><br />
+Folgende Exceptions können auftreten und müssen bei der Dokumentverarbeitung
+behandelt werden:<br />
+<table border="1" width="100%" cellpadding="2" cellspacing="0">
+<tr>
+<th>Exception</th><th>Beschreibung</th>
+</tr><tr>
+<tr valign="top">
+<td>FileNotFoundException</td><td>Datei kann nicht gefunden werden</td>
+</tr><tr valign="top">
+<td>IOException</td><td>Datei kann nicht gelesen werden</td>
+</tr><tr valign="top">
+<td>ParserConfigurationException</td><td>Parsereinstellungen nicht korrekt</td>
+</tr><tr valign="top">
+<td>xxSAXException</td><td>Fehler beim Parsen (z.b. XML-Fehler in der Eingabedatei)</td>
+</tr><tr valign="top">
+<td>ServiceException</td><td>Fehler beim Durchführen des AXIS Request</td>
+</tr><tr valign="top">
+<td>RemoteException</td><td>Probleme mit der Verbindung</td>
+</tr>
+</table>
+
+</div>
+</td></tr></table>
+<br /><br />
+
+
+
+<div id="ServerAuth" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+<div id="slogan">
+<b>Beispiel: </b><br />
+<a href="examples/testclient/example_request.xml" target="_new">example_request.xml</a><br />
+<a href="HTTPSClientExampleServerAuth.txt" target="_new">HTTPSClientExample 1</a><br />
+<br /><br />
+</div>
+</td>
+<td valign="top">
+<p id="subtitel">Beispiel HTTPSClientExampleServerAuth</p>
+<div id="block">
+Zusätzlich zu HTTPClientExample: <br /><br />
+Erst werden die Konstanten für die Systemproperties gesetzt
+<pre>
+ handler = "java.protocol.handler.pkgs";
+ trustStore = "javax.net.ssl.trustStore";
+ trustStorePassword =
+ "javax.net.ssl.trustStorePassword";
+</pre>
+Hinzufügen des SSL-Providers in das Systemobjekt Security
+<pre>
+ Security.addProvider(
+ new com.sun.net.ssl.internal.ssl.Provider());
+</pre>
+Setzen der Systemproperties für den SSL-Provider
+<pre>
+ System.setProperty(
+ handler,"com.sun.net.ssl.internal.www.protocol");
+ System.setProperty(
+ trustStore, "client.keystore");
+ System.setProperty(trustStorePassword, "changeit");
+</pre>
+
+Danach muß nur noch der Endpunkt umgestellt werden von ENDPOINT zu SECURE_ENDPOINT
+<pre>
+ "http://localhost:8080/moa-spss/
+ services/SignatureCreation"
+</pre>
+wird zu
+<pre>
+ "https://localhost:8443/moa-spss/
+ services/SignatureCreation"
+</pre>
+AXIS erkennt das es sich um eine sichere Verbindung handelt und initialisert die Verbindung über einen SecureSocket.
+</div>
+</td></tr></table>
+<br /><br />
+
+
+
+<div id="ClientAuth" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+<div id="slogan">
+<b>Beispiel: </b><br />
+<a href="examples/testclient/example_request.xml" target="_new">example_request.xml</a><br />
+<a href="HTTPSClientExampleClientAuth.txt" target="_new">HTTPSClientExample 2</a><br />
+<br /><br />
+</div>
+</td>
+<td valign="top">
+<p id="subtitel">Beispiel HTTPSClientExampleClientAuth</p>
+<div id="block">
+Zusätzlich zu HTTPSClientExampleServerAuth: <br /><br />
+Für Clientauthorisierung kommen noch folgende Properties hinzu
+<pre>
+ keyStore = "javax.net.ssl.keyStore";
+ keyStorePassword = "javax.net.ssl.keyStorePassword";
+ System.setProperty(
+ keyStore, "client.keystore");
+ System.setProperty(keyStorePassword, "changeit");
+</pre>
+</div>
+</td></tr></table>
+<br /><br />
+
+<div id="API" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+<div id="slogan">
+<b>Beispiel: </b><br />
+<a href="APIClientExample.txt" target="_new">APIClientExample</a><br />
+<br /><br />
+</div>
+</td>
+<td valign="top">
+<p id="subtitel">Beispiel APIClientExample</p>
+<div id="block">
+Folgende VM-Properties m&uuml;ssen gesetzt sein um das API Beispiel
+ausführen zu können.<br /><br />
+
+<table border="1" cellpadding="2" cellspacing="0">
+<tr>
+<th colspan=2>moa.spss.server.configuration</th>
+</tr><tr>
+<tr valign="top">
+<td>Pfad&nbsp;zur&nbsp;Konfiguration von&nbsp;MOA-SPSS</td><td>Beispiel C:\moa\ConfigurationTest.xml </td>
+</tr>
+<th colspan=2>log4j.configuration</th>
+<tr valign="top">
+<td>Pfad zu einer g&uuml;ltigen Log4J Konfiguration</td><td>Beispiel file:/C:/moa/log4j.properties</td>
+</tr><tr valign="top">
+</tr>
+</table>
+<br />
+Serverfunktionshandler instanzieren
+<pre> SPSSFactory spf =
+ SPSSFactory.getInstance();</pre>
+
+Signaturedaten in ein Contentobjekt einbinden
+<pre> byte[]data =
+ "Dies sind Testdaten".getBytes("UTF-8");
+ ByteArrayInputStream bis =
+ new ByteArrayInputStream(data);
+ Content cont =
+ spf.createContent(bis,"http://uri.data.org");</pre>
+
+Beschreibungselement zu den Daten erstellen
+<pre> MetaInfo mi =
+ spf.createMetaInfo("text/plain","Testdaten",null);</pre>
+
+Transformationen erstellen
+<pre> CreateTransformsInfo cti =
+ spf.createCreateTransformsInfo(null,mi);
+ CreateTransformsInfoProfile ct =
+ spf.createCreateTransformsInfoProfile(
+ cti,
+ null);</pre>
+
+Datenobjekt aufbauen
+<pre> DataObjectInfo doi =
+ spf.createDataObjectInfo(
+ DataObjectInfo.STRUCTURE_DETACHED,
+ false,
+ cont,
+ ct);
+ List dataobjectinfolist = new ArrayList();
+ dataobjectinfolist.add(doi);</pre>
+
+alles zusammenpacken zu einer SingleSignature
+<pre> SingleSignatureInfo ssi =
+ spf.createSingleSignatureInfo(
+ dataobjectinfolist,
+ null,
+ false);
+ List singlesignatureinfolist = new ArrayList();
+ singlesignatureinfolist.add(ssi);</pre>
+die Signatur in einen Request einbetten
+<pre> CreateXMLSignatureRequest cxsreq =
+ spf.createCreateXMLSignatureRequest(
+ "PKCS12RSAKey1",
+ singlesignatureinfolist);</pre>
+
+Signatureerstellungsservice instanzieren
+<pre> SignatureCreationService scs =
+ SignatureCreationService.getInstance();</pre>
+
+Signatureerstellungsservice aufrufen
+<pre> CreateXMLSignatureResponse cxsres =
+ scs.createXMLSignature(cxsreq);</pre>
+
+Response auswerten
+<pre> List elements = cxsres.getResponseElements();
+
+ SignatureEnvironmentResponse ser =
+ (SignatureEnvironmentResponse)elements.get(0);</pre>
+
+Responsetyp lesen
+<pre> int response_type = ser.getResponseType();
+ if(response_type ==
+ SignatureEnvironmentResponse.ERROR_RESPONSE)
+ {
+ ...
+ }
+</pre>
+Fehlerfall
+<pre> System.out.println("Bei der Erstellung der
+ Signatur ist ein Fehler aufgetreten");
+</pre>
+Signaturerstellung erfolgreich
+<pre> Element se = ser.getSignatureEnvironment();
+ System.out.println(
+ "Signaturerstellung erfolgreich");
+ displayTree(se);
+</pre>
+
+</div>
+</td></tr></table>
+<br /><br />
+
+
+<div id="Beispiel-Requests" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+</td>
+<td valign="top">
+<p id="titel">Beispiel-Requests</p>
+<div id="block">
+In den folgenden Abschnitten werden einfache und umfassende Beispiele für Requests beschrieben, die an MOA-SP/SS
+gesendet werden können. Damit soll der Anwendungsentwickler einen Überblick über die
+Möglichkeiten von MOA-SP/SS vermittelt bekommen. Die detaillierte und vollständige Beschreibung
+des Funktionsumfangs ist in den Spezifikationen von MOA-SP/SS und des Security-Layers enthalten.
+</div>
+</td></tr></table>
+<br /><br />
+
+
+
+<div id="CreateXMLSignature1" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+<div id="slogan">
+<b>Beispiel: </b><br />
+<a href="examples/requestsResponses/CreateXMLSignatureRequest1.xml" target="_new">Request</a><br />
+<a href="examples/requestsResponses/CreateXMLSignatureResponse1.xml" target="_new">Response</a><br />
+<br /><br />
+</div>
+</td>
+<td valign="top">
+<p id="subtitel">Beispiel:<br/ > einfacher CreateXMLSignatureRequest</p>
+<div id="block">
+Das Beispiel in <a href="examples/requestsResponses/CreateXMLSignatureRequest1.xml" target="_new">CreateXMLSignatureReqest1.xml</a> zeigt einen
+einfachen <tt>&lt;CreateXMLSignatureRequest&gt;</tt>. Die Bedeutung der einzelnen Elemente
+wird im folgenden beschrieben:
+<pre>
+ &lt;KeyIdentifier&gt;PKCS12RSAKey1&lt;/KeyIdentifier&gt;
+</pre>
+<tt>PKCS12RSAKey1</tt> bezeichnet eine Schlüsselgruppe aus der MOA-SS einen Signaturschlüssel selektieren soll
+und muss einer im Konfigurationsfile definierten <tt>&lt;KeyGroup&gt;</tt> entsprechen.
+<pre>
+ &lt;SingleSignatureInfo SecurityLayerConformity="false"&gt;
+</pre>
+Für jedes <tt>&lt;SingleSignatureInfo&gt;</tt>-Element wird eine eigene XML-Signatur erzeugt. Wird das
+Attribut <tt>SecurityLayerConformity</tt> auf <tt>true</tt> gesetzt, dann wird eine XML-Signatur
+gemäß <a href="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20020831/core/Core.html#signaturerstellungNachXMLDSIGAntwort"
+target="_new">Security-Layer Spezifikation</a> erzeugt; d.h. es werden signierte Properties (Zeitpunkt
+der Signaturerstellung,
+das für die Signaturüberprüfung zu verwendende Zertifikat, Metainformationen zu den signierten Datenobjekten) und ein
+Manifest, das alle implizite Transformationsparameter enthält, zur Signatur hinzugefügt.
+<pre>
+ &lt;DataObjectInfo Structure="enveloping"&gt;
+</pre>
+Für jedes Daten-Objekt, das in die Signatur als <tt>dsig:Reference</tt> aufgenommen werden soll, muss ein
+<tt>DataObjectInfo</tt>-Element spezifiziert werden. Das Attribut <tt>Structure</tt> gibt an, ob die Daten
+in die Signatur in ein <tt>&lt;dsig:Object&gt;</tt>-Element integriert werden soll
+(<tt>Structure="enveloping"</tt>) oder via eine URL referenziert werden soll (<tt>Structure="detached"</tt>).
+<br /><br />
+Im Fall von <tt>Structure="enveloping"</tt> muss im nachfolgenden <tt>DataObject</tt> Element entweder das
+Attribut <tt>Reference</tt> gesetzt sein oder die zu signierenden Daten explizit im Element <tt>Base64Content</tt> oder
+<tt>XMLContent</tt> spezifiziert sein. Die Angabe der zu signierenden Daten über das Attribut <tt>Reference</tt>
+und gleichzeitig dem Element <tt>Base64Content</tt> oder <tt>XMLContent</tt> ist nicht erlaubt.
+<br /><br />
+Im Fall von <tt>Structure="detached"</tt> muss das Attribut <tt>Reference</tt> im nachfolgenden <tt>DataObject</tt>
+Element gesetzt sein. Die Angabe der Elemente <tt>Base64Content</tt> oder <tt>XMLContent</tt> ist optional.
+<pre>
+ &lt;DataObject&gt;
+ &lt;XMLContent xml:space="preserve"&gt;
+ Diese Daten werden signiert.
+ &lt;XMLContent&gt;
+ &lt;/DataObject&gt;
+</pre>
+Die zu signierenden Daten werden im Element <tt>&lt;DataObject&gt;</tt> spezifiziert und können entweder als
+<tt>&lt;XMLContent&gt;</tt> oder <tt>&lt;Base64Content&gt;</tt> oder über das Attribut <tt>Reference</tt>
+angegeben werden.
+<pre>
+ &lt;CreateTransformsInfoProfile&gt;
+ &lt;CreateTransformsInfo&gt;
+ &lt;FinalDataMetaInfo&gt;
+ &lt;MimeType&gt;text/plain&lt;MimeType&gt;
+ &lt;/FinalDataMetaInfo&gt;
+ &lt;/CreateTransformsInfo&gt;
+ &lt;/CreateTransformsInfoProfile&gt;
+</pre>
+Zu jedem Daten-Objekt können optional Transformationen (z.B. XPath, XSLT, Base64-Decodierung, etc.)angegeben werden.
+Werden keine Transformationen angegeben so muss zumindest der MIME-Type der zu signierenden Daten spezifiziert werden.
+<p>
+Die von diesem Request erzeugt Response ist in <a href="examples/requestsResponses/CreateXMLSignatureResponse1.xml"
+target="_new">CreateXMLSignatureResponse1.xml</a> abgelegt.
+</div>
+</td></tr></table>
+<br /><br />
+
+
+<div id="VerifyXMLSignature1" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+<div id="slogan">
+<b>Beispiel: </b><br />
+<a href="examples/requestsResponses/VerifyXMLSignatureRequest1.xml" target="_new">Request</a><br />
+<a href="examples/requestsResponses/VerifyXMLSignatureResponse1.xml" target="_new">Response</a><br />
+<br /><br />
+</div>
+</td>
+<td valign="top">
+<p id="subtitel">Beispiel:<br/ > einfacher VerifyXMLSignatureRequest</p>
+<div id="block">
+Die oben erzeugte XML-Signatur kann mit dem in <a href="examples/requestsResponses/VerifyXMLSignatureRequest1.xml" target="_new">VerifyXMLSignatureReqest1.xml</a> gezeigten
+einfachen <tt>&lt;VerifyXMLSignatureRequest&gt;</tt> wieder überprüft werden.
+<pre>
+&lt;VerifyXMLSignatureRequest
+ xmlns="http://reference.e-government.gv.at/
+ namespace/moa/20020822#"
+ xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"&gt;
+
+ &lt;VerifySignatureInfo&gt;
+ &lt;VerifySignatureEnvironment&gt;
+ &lt;XMLContent&gt;
+ &lt;dsig:Signature
+ Id="signature-1"
+ xmlns:dsig="http://www.w3.org/2000/09/
+ xmldsig#"&gt;
+ .........
+ &lt;/dsig:Signature&gt;
+ &lt;/XMLContent&gt;
+ &lt;/VerifySignatureEnvironment&gt;
+</pre>
+
+Im Element <tt>VerifySignatureInfo</tt> wird zuerst die zu überprüfende Signatur im Element
+<tt>VerifySignatureEnvironment</tt> angegeben. Im Beispiel wird die Signatur als Kind-Element von
+<tt>&lt;XMLContent&gt;</tt> spezifiziert. Alternativ könnte die Signatur in Base64-Kodierung
+im Element <tt>&lt;Base64Content&gt;</tt> oder mit dem Attribut <tt>Reference</tt> über eine URL
+referenziert werden.
+
+<pre>
+ &lt;VerifySignatureLocation&gt;
+ //dsig:Signature
+ &lt;/VerifySignatureLocation&gt;
+
+ &lt;/VerifySignatureInfo&gt;
+</pre>
+
+Weiters muss mittels eines XPath-Ausdrucks im Element <tt>&lt;VerifySignatureLocation&gt;</tt>
+die Position der zu prüfenden Signatur spezifiziert werden. Werden im XPath-Ausdruck
+Namespace-Prefixes verwendet, müssen die entsprechenden Namespace-Deklarationen im Kontext
+des Elements <tt>VerifySignatureLocation</tt> bekannt sein. Im Beispiel wird das Prefix <tt>dsig</tt>
+verwendet, das im Element <tt>&lt;VerifyXMLSignatureRequest&gt;</tt> deklariert wird.
+
+<pre>
+ &lt;TrustProfileID&gt;TrustProfile1&lt;TrustProfileID&gt;
+</pre>
+Abschließend wird im Element <tt>&lt;TrustProfileID&gt;</tt> ein Trustprofile spezifiziert, das am MOA-SP Server
+definiert ist und jene Zertifikate enthält, die für diesen Request als vertrauenswürdig gelten.
+<p>
+Die von diesem Request erzeugt Response ist in <a href="examples/requestsResponses/verifyXMLSignatureResponse1.xml"
+target="_new">VerifyXMLSignatureResponse1.xml</a> abgelegt. Die Response enthält das Ergebnis der Signaturprüfung
+im Element <tt>&lt;SignatureCheck&gt;</tt>, das Ergebnis der Zertifikatsprüfung im Element
+<tt>&lt;CertificateCheck&gt;</tt> und Informationen über den Signator im Element
+<tt>&lt;SignerInfo&gt/&lt;X509Data&gt;</tt>. Die Informationen über den Signator bestehen aus den Elementen
+<tt>&lt;X509SubjectName&gt;</tt>, <tt>&lt;X509IssuerSerial&gt;</tt> und <tt>&lt;X509Certificate&gt;</tt>.
+
+</div>
+</td></tr></table>
+<br /><br />
+
+
+<div id="CreateXMLSignature2" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p> <div id="slogan"> <b>Beispiel: </b><br /> <a
+href="examples/requestsResponses/CreateXMLSignatureRequest2.xml" target="_new">Request</a><br />
+<a href="examples/requestsResponses/CreateXMLSignatureResponse2.xml" target="_new">Response</a>
+<br /> <br /><br />
+</div>
+</td>
+<td valign="top"> <p
+id="subtitel">Beispiel:<br/ > umfassender CreateXMLSignatureRequest</p> <div
+id="block"> Das Beispiel in <a
+href="examples/requestsResponses/CreateXMLSignatureRequest2.xml"
+target="_new">CreateXMLSignatureReqest2.xml</a> zeigt einen umfassenden
+<tt>&lt;CreateXMLSignatureRequest&gt;</tt>.
+<br /><br />
+Das Beispiel benötigt zwei Dateien, die über die URL
+<tt>http://localhost:8080/TestDatenGenerator/resources/&lt;Dateiname&gt;</tt> erreichbar sind.
+Bevor der Beispiel-Request ausgeführt wird, muss daher
+<a href="requestsResponses/TestDatenGenerator.zip">TestDatenGenerator.zip</a>
+entpackt und in $CATALINA_HOME/webapps kopiert werden. Voraussetzung ist, dass Tomcat auf Port 8080 läuft.
+
+<pre>
+&lt;CreateXMLSignatureRequest
+ xmlns="http://reference.e-government.gv.at/
+ namespace/moa/20020822#"
+ xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"&gt;
+ &lt;KeyIdentifier&gt;PKCS12RSAKey1&lt;/KeyIdentifier&gt;
+ &lt;SingleSignatureInfo SecurityLayerConformity="false"&gt;
+ &lt;DataObjectInfo Structure="enveloping"
+ ChildOfManifest="true"&gt;
+ &lt;DataObject&gt;
+ &lt;XMLContent&gt;Diese Daten werden
+ signiert.&lt;/XMLContent&gt;
+ &lt;/DataObject&gt;
+ &lt;CreateTransformsInfoProfile&gt;
+ &lt;CreateTransformsInfo&gt;
+ &lt;FinalDataMetaInfo&gt;
+ &lt;MimeType&gt;text/plain&lt;/MimeType&gt;
+ &lt;/FinalDataMetaInfo&gt;
+ &lt;/CreateTransformsInfo&gt;
+ &lt;/CreateTransformsInfoProfile&gt;
+ &lt;/DataObjectInfo&gt;
+ &lt;/SingleSignatureInfo&gt;
+</pre>
+
+Der Anfang des Requests ist identisch mit dem <a href="#CreateXMLSignature1">einfachen CreateXMLSignatureRequest</a>.
+Als Variation wurde <tt>&lt;ChildOfManifest= "true"&gt;</tt> gesetzt.
+
+Damit wird spezifiziert, dass die zugehörige <tt>&lt;dsig:Reference&gt;</tt> nicht in das Element
+<tt>&lt;SignedInfo&gt;</tt> sondern in ein XMLDSig-Manifest eingefügt werden soll.
+
+Wird das Attribut <tt>&lt;ChildOfManifest&gt;</tt> nicht gesetzt, dann
+wird kein XMLDSig-Manifest erzeugt.
+
+<pre>
+ &lt;SingleSignatureInfo SecurityLayerConformity="true"&gt;
+</pre>
+
+Anschließend wird angegeben, dass eine zweite Signatur erstellt werden soll.
+<tt>SecurityLayerConformity="true"</tt> gibt an, dass die Signatur entsprechend der Security-Layer
+Spezifikation Version 1.1 erstellt werden muss, d.h. es werden Signaturattribute und gegebenenfalls ein
+<a href="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20020831/core/Core.html#signaturerstellungNachXMLDSIGAntwortImplTransParam" target="_new">
+Signatur-Manifest<a> erzeugt. Wird eine Security-Layer konforme Signatur erzeugt, dann
+darf <tt>&lt;ChildOfManifest="true"&gt;</tt> nicht gesetzt sein.
+<p>
+Die zweite Signatur soll zwei Datenobjekte enthalten:
+
+<pre>
+ &lt;DataObjectInfo Structure="detached"&gt;
+</pre>
+
+Für das erste Datenobjekt sollen die signierten Daten nicht in der Signatur enthalten sein (<tt>Structure="detached"</tt>).
+
+<pre>
+ &lt;DataObject
+ Reference="http://localhost:8080/TestDatenGenerator
+ /resources/testDaten.txt"&gt;
+ &lt;Base64Content&gt;
+ RGllcyBz........DQphdXM=
+ &lt;/Base64Content&gt;
+ &lt;/DataObject&gt;
+ &lt;CreateTransformsInfoProfile&gt;
+ &lt;CreateTransformsInfo&gt;
+ &lt;FinalDataMetaInfo&gt;
+ &lt;MimeType&gt;text/plain&lt;/MimeType&gt;
+ &lt;/FinalDataMetaInfo&gt;
+ &lt;/CreateTransformsInfo&gt;
+ &lt;/CreateTransformsInfoProfile&gt;
+ &lt;/DataObjectInfo&gt;
+</pre>
+
+Die zu signierenden Daten sind in Base64-Kodierung angegeben und werden in der Signatur über die URL, die im
+Attribut <tt>Reference</tt> angegeben ist, referenziert. Diese URL wird im Zuge der Signaturerstellung
+nicht aufgelöst, da die Daten bereits explizit im Request angegeben sind. Es werden keine weitere
+Transformationen für das Datenobjekt angegeben.
+
+<pre>
+ &lt;DataObjectInfo Structure="enveloping"&gt;
+ &lt;DataObject&gt;
+ &lt;XMLContent xml:space="preserve"&gt;
+ &lt;data:book
+ xmlns:data="http://uri.data.org"
+ data:hardback="yes"&gt;
+ &lt;data:title&gt;
+ Gesundheitliche Auswirkungen
+ elektronischer Signaturen
+ &lt;/data:title&gt;
+ &lt;data:first-name&gt;Ellipse&lt;/data:first-name&gt;
+ &lt;data:last-name&gt;Kurvenreich&lt;/data:last-name&gt;
+ &lt;data:birth-date&gt;1951-04-16&lt;/data:birth-date&gt;
+ &lt;data:birth-location&gt;
+ Hinterm Berg
+ &lt;/data:birth-location&gt;
+ &lt;data:register-number&gt;
+ 6-930-21512-12
+ &lt;/data:register-number&gt;
+ &lt;/data:book&gt;
+ &lt;/XMLContent&gt;
+ &lt;/DataObject&gt;
+</pre>
+
+Das zweite Datenobjekt, das signiert werden soll ist eine XML-Struktur.
+<p>
+Für die XML-Struktur wird eine Transformation spezifiziert, die angewendet werden muss, bevor die Daten signiert
+werden:
+<pre>
+ &lt;CreateTransformsInfoProfile&gt;
+</pre>
+Transformationen können entweder explizit im Request im Element <tt>&lt;CreateTransformsInfoProfile&gt;</tt>
+angegeben werden oder mit dem Element <tt>&lt;CreateTransformsInfoProfileID&gt;</tt> über eine am MOA-SS-Server
+konfigurierte Profil-ID referenziert werden.
+<pre>
+ &lt;CreateTransformsInfo&gt;
+</pre>
+Im Transformationsprofil werden im Element <tt>&lt;CreateTransformsInfo&gt;</tt> die Transformationskette
+(<tt>&lt;dsig:Transforms&gt;</tt>) und optionale Ergänzungsobjekte (<tt>&lt;Supplement&gt;</tt>) angegeben.
+<pre>
+ &lt;dsig:Transforms&gt;
+ &lt;dsig:Transform
+ Algorithm="http://www.w3.org/TR/
+ 1999/REC-xslt-19991116"&gt;
+ &lt;xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/
+ 1999/XSL/Transform"
+ version="1.0"&gt;
+ &lt;xsl:include
+ href="http://localhost:8080/
+ TestDatenGenerator/resources/
+ CX1_book_not_here.xsl"/&gt;
+ &lt;/xsl:stylesheet&gt;
+ &lt;/dsig:Transform&gt;
+ &lt;/dsig:Transforms&gt;
+</pre>
+Im Beispiel besteht die Transformationskette aus einer XSLT-Transformation, die ein weiteres XSLT Stylesheet inkludiert.
+MOA-SS unterstützt alle Transformationen aus der XMLDSig-Spezifikation sowie Exclusive XML Canonicalization 1.0 und
+XPath Filter 2.0.
+
+<pre>
+ &lt;FinalDataMetaInfo&gt;
+ &lt;MimeType&gt;text/html&lt;/MimeType&gt;
+ &lt;/FinalDataMetaInfo&gt;
+ &lt;/CreateTransformsInfo&gt;
+</pre>
+<tt>&lt;FinalDataMetaInfo&gt;</tt> gibt den MIME-Type der Daten an, die das Ergebnis der Transformation bilden und
+tatsächlich signiert werden.
+<p>
+Weiters können optional Ergänzungsobjekte angegeben werden, die Daten enthalten, die von MOA-SP zur
+Signaturerstellung verwendet werden sollen:
+<pre>
+ &lt;Supplement&gt;
+ &lt;Content Reference="http://localhost:8080/
+ TestDatenGenerator/resources/
+ CX1_book_not_here.xsl"&gt;
+ &lt;Base64Content&gt;PHhzbDpzdHls.....eWxlc2hlZXQ+
+ &lt;/Base64Content&gt;
+ &lt;/Content&gt;
+ &lt;/Supplement&gt;
+ &lt;/CreateTransformsInfoProfile&gt;
+ &lt;/DataObjectInfo&gt;
+</pre>
+Im aktuellen Beispiel wird ein Ergänzungsobjekt für jenes Stylesheet angegeben, das im Stylesheet der oben
+spezifizierten XSLT-Transformation referenziert wird. MOA-SS wird die angegebene URL nicht auflösen sondern
+stattdessen die im Ergänzungsobjekt enthaltenen Daten verwenden.
+<p>
+<pre>
+ &lt;CreateSignatureInfo xmlns:env="http://uri.env.org"&gt;
+</pre>
+Abschließend wird hier noch mittels des optionalen Elements <tt>&lt;CreateSignatureInfo&gt;</tt> festgelegt,
+dass die zu erzeugende Signatur in ein bereits bestehendes XML-Dokument eingebettet werden soll. Im Beispiel
+wird das Namespace-Prefix <tt>env</tt> hier deklariert, da es weiter unten im Element
+<tt>CreateSignatureLocation</tt> verwendet werden wird.
+<pre>
+ &lt;CreateSignatureEnvironment&gt;
+ &lt;XMLContent&gt;
+ &lt;env:Document
+ xmlns:env="http://uri.env.org"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://uri.env.org
+ http://anyhost/envSchema.xsd"&gt;
+ nach diesem Text wird die Signatur in das Dokument
+ eingefügt
+ &lt;/env:Document&gt;
+ &lt;/XMLContent&gt;
+ &lt;/CreateSignatureEnvironment&gt;
+</pre>
+Im Element <tt>&lt;CreateSignatureEnvironment&gt;</tt> wird das XML-Dokument angegeben.
+<pre>
+ &lt;CreateSignatureEnvironmentProfile&gt;
+ &lt;CreateSignatureLocation Index="1"&gt;
+ /env:Document
+ &lt;/CreateSignatureLocation&gt;
+ &lt;/CreateSignatureEnvironmentProfile&gt;
+</pre>
+Anschließend wird im Profil angegeben an welcher Position des XML-Dokuments die Signatur eingefügt werden
+soll. Im Element <tt>&lt;CreateSignatureLocation&gt;</tt> wird ein XPath-Ausdruck angegeben, der das
+Element selektiert, als dessen Kind die Signatur eingefügt werden soll. Das Attribut <tt>Index</tt> spezifiziert
+die Position innerhalb dieses Elements, an der die Signatur eingefügt werden soll. <tt>"0"</tt> gibt an,
+dass die Signatur als erstes Kind eingefügt werden soll.</tt>
+<pre>
+ &lt;/CreateSignatureInfo&gt;
+ &lt;/SingleSignatureInfo&gt;
+&lt;/CreateXMLSignatureRequest&gt;
+</pre>
+Abschließend müssen alle Elemente wieder geschlossen werden.
+<p>
+Die von diesem Request erzeugt Response ist in <a href="examples/requestsResponses/CreateXMLSignatureResponse2.xml" target="_new">
+CreateXMLSignatureResponse2.xml</a> abgelegt. Die Response enthält zwei Elemente <tt>SignatureEnvironment</tt>, die die
+beiden erzeugten Signaturen enthalten.
+</div>
+</td></tr></table>
+<br /><br />
+
+<div id="VerifyXMLSignature2" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+<div id="slogan">
+<b>Beispiel: </b><br />
+<a href="examples/requestsResponses/VerifyXMLSignatureRequest2.xml" target="_new">Request</a><br />
+<a href="examples/requestsResponses/VerifyXMLSignatureResponse2.xml" target="_new">Response</a><br />
+<br /><br />
+</div>
+</td>
+
+
+<td valign="top">
+<p id="subtitel">Beispiel:<br/ > umfassender VerifyXMLSignatureRequest</p>
+<div id="block">
+Das Beispiel in <a href="examples/requestsResponses/VerifyXMLSignatureRequest2.xml" target="_new">
+VerifyXMLSignatureReqest2.xml</a> zeigt wie die im obigen Beispiel erzeugte zweite Signatur
+überprüft werden kann.
+<pre>
+&lt;VerifyXMLSignatureRequest
+ xmlns="http://reference.e-government.gv.at/
+ namespace/moa/20020822#"
+ xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"&gt;
+ &lt;DateTime&gt;2003-03-24T12:41:54+01:00&lt;/DateTime&gt;
+</pre>
+Optional kann ein Datum und eine Uhrzeit angegeben werden, für die die Überprüfung durchgeführt werden soll.
+
+<pre>
+ &lt;VerifySignatureInfo&gt;
+ &lt;VerifySignatureEnvironment&gt;
+ &lt;XMLContent&gt;
+ &lt;env:Document xmlns:env="http://uri.env.org" .....&gt;
+ nach diesem Text ..... Dokument eingefuegt
+ &lt;dsig:Signature .....&gt;.....&lt;/dsig:Signature&gt;
+ &lt;/env:Document&gt;
+ &lt;/XMLContent&gt;
+ &lt;/VerifySignatureEnvironment&gt;
+</pre>
+Die Signatur inklusive des umgebenden XML-Dokuments wird im Element <tt>&lt;VerifySignatureEnvironment&gt;</tt>
+angegeben.
+<pre>
+ &lt;VerifySignatureLocation&gt;
+ //dsig:Signature
+ &lt;/VerifySignatureLocation&gt;
+ &lt;/VerifySignatureInfo&gt;
+</pre>
+Die zu prüfende Signatur aus dem Element <tt>&lt;VerifySignatureEnvironment&gt;</tt> wird über einen XPath-Ausdruck
+spezifiziert.
+
+Enthält die Signatur ID-Attribute, die referenziert werden, dann muss das XML-Dokument validierend geparst werden können.
+Im Beispiel-Request wird die URL des Schemas für das Element <tt>env:Document</tt> im Attribut <tt>xsi:schemaLocation</tt>
+spezifiziert (<tt>http://anyhost/envSchema.xsd</tt>). Soll MOA-SP diese URL nicht selbst auflösen, dann kann das
+Schema kann im Element <tt>SupplementProfile</tt> übergeben werden:
+
+<pre>
+ &lt;SupplementProfile&gt;
+ &lt;Content Reference="http://anyhost/envSchema.xsd"&gt;
+ &lt;XMLContent xml:space="preserve"&gt;
+ &lt;xsd:schema
+ targetNamespace="http://uri.env.org"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified"
+ attributeFormDefault="unqualified"&gt;
+ &lt;xsd:element name="Document"&gt;
+ &lt;xsd:complexType mixed="true"&gt;
+ &lt;xsd:sequence minOccurs="0"
+ maxOccurs="unbounded"&gt;
+ &lt;xsd:any namespace="##any"
+ processContents="lax"/&gt;
+ &lt;/xsd:sequence&gt;
+ &lt;/xsd:complexType&gt;
+ &lt;/xsd:element&gt;
+ &lt;/xsd:schema&gt;
+ &lt;/XMLContent&gt;
+ &lt;/Content&gt;
+ &lt;/SupplementProfile&gt;
+</pre>
+
+<pre>
+ &lt;ReturnHashInputData/&gt;
+</pre>
+Das Element gibt an, dass für jedes <tt>dsig:SignedInfo/dsig:Reference</tt> Element jene Daten, die für die
+Hash-Berechnung der Signatur als Eingangsdaten verwendet werden, in der Antwort returniert werden sollen.
+
+<pre>
+ &lt;TrustProfileID&gt;TrustProfile1&lt;/TrustProfileID&gt;
+&lt;/VerifyXMLSignatureRequest&gt;
+</pre>
+Abschließend wird ein am MOA-SP Server definiertes Profil angegeben, dass jene Zertifikate umfasst, die für
+diesen Request als vertrauenswürdig anzusehen sind.
+<p>
+
+Die von diesem Request erzeugt Response ist in <a href="examples/requestsResponses/VerifyXMLSignatureResponse2.xml" target="_new">
+VerifyXMLSignatureResponse2.xml</a> abgelegt. Zusätzlich zu den Daten der Response des einfachen
+VerifyXMLSignatureRequests enthält diese Response für jedes <tt>dsig:SignedInfo/dsig:Reference</tt> Element
+ein <tt>HashInputData</tt> Element.
+</div>
+</td></tr></table>
+<br /><br />
+
+
+
+
+
+<div id="VerifyCMSSignature" />
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top" id="klein">
+<p id="subtitel">&#160;</p>
+<div id="slogan">
+<b>Beispiel: </b><br />
+<a href="examples/requestsResponses/VerifyCMSSignatureRequest.xml" target="_new">Request</a><br />
+<a href="examples/requestsResponses/VerifyCMSSignatureResponse.xml" target="_new">Response</a><br />
+<br /><br />
+</div>
+</td>
+<td valign="top">
+<p id="subtitel">Beispiel:<br/ > VerifyCMSSignatureRequest</p>
+<div id="block">
+Das Beispiel in <a href="examples/requestsResponses/VerifyCMSSignatureRequest.xml" target="_new">VerifyCMSSignatureRequest.xml</a> zeigt einen
+einfachen <tt>&lt;VerifyCMSSignatureRequest&gt;</tt>. Die Bedeutung der einzelnen Elemente
+wird im folgenden beschrieben:
+<pre>
+&lt;VerifyCMSSignatureRequest
+ xmlns="http://reference.e-government.gv.at/
+ namespace/moa/20020822#"
+ xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
+ Signatories="1"&gt;
+</pre>
+Das optionale Attribut <tt>Signatories</tt> enthält eine Liste von positiven Ganzzahlen und gibt an, welche Signaturen
+im CMS-Datenobjekt überprüft werden sollen. <tt>Signatories="1"</tt> gibt an, dass die erste Signatur geprüft
+werden soll.
+Wird das Attribut nicht spezifiziert, dann wird ebenfalls die erste Signatur geprüft. <tt>Signatories="all"</tt>
+gibt an, dass alle im CMS-Objekt enthaltene Signaturen geprüft werden sollen.
+
+<pre>
+ &lt;DateTime&gt;2003-04-04T09:30:47-05:00&lt;/DateTime&gt;
+</pre>
+Das optionale Element <tt>&lt;DateTime&gt;</tt> gibt an für welchen Zeitpunkt die Signaturüberprüfung
+durchgeführt werden soll. Ist das Element nicht im Request enthalten, dann wird die aktuelle Systemzeit
+verwendet.
+
+<pre>
+ &lt;CMSSignature&gt;MIIGAAYJKo...mT9fmvKwdJOiA==&lt;/CMSSignature&gt;
+</pre>
+Das Element <tt>&lt;CMSSignature&gt;</tt> enthält das CMS-Signaturobjekt in Base64-Kodierung.
+<br /><br />
+Sind die signierten Daten nicht in der CMS-Signatur enthalten, müssen sie im <tt>DataObject</tt>-Element
+angegeben werden. Optional kann der MIME-Type dieser Daten spezifiziert werden. Die eigentlichen Daten
+müssen im <tt>Base64Content</tt>-Element in Base64-Kodierung vorliegen.
+
+<pre>
+ &lt;TrustProfileID&gt;TrustProfile1&lt;TrustProfileID&gt;
+</pre>
+
+<tt>TrustProfile1</tt> referenziert ein im Konfigurationsfile des MOA-Server definiertes Profil, das
+jene Zertifikate umfasst, die für diese Überprüfung als vertrauenswürdig gelten.
+
+
+<p>
+Die von diesem Request erzeugt Response ist in <a href="examples/requestsResponses/VerifyCMSSignatureResponse.xml" target="_new">
+VerifyCMSSignatureResponse.xml</a> abgelegt. Die Response enthält die selben Informationen wie die Response zum
+einfachen VerifyXMLSignatureRequest.
+</div>
+</td></tr></table>
+<br /><br />
+
+
+
+<table width="650" border="0" cellpadding="10" cellspacing="0">
+<tr>
+<td width="170" valign="top"><br /></td>
+<td valign="top">
+<hr />
+<div style="font-size:8pt; color:#909090">&copy; 2003 <!-- Development Center, BRZ GmbH --></div>
+</td></tr></table>
+<br />
+
+
+</div>
+</body>
+</html> \ No newline at end of file