aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpdanner <pdanner@d688527b-c9ab-4aba-bd8d-4036d912da1d>2008-03-27 07:36:10 +0000
committerpdanner <pdanner@d688527b-c9ab-4aba-bd8d-4036d912da1d>2008-03-27 07:36:10 +0000
commitb1c951bd4c125f52123d4a6947f459b505f8beb1 (patch)
treeded1d70fd9ad871f532114462ea690c4f6262023
parentc940b711f4358d07c5b58cd1f48f7d8d6889e2c7 (diff)
downloadmoa-id-spss-b1c951bd4c125f52123d4a6947f459b505f8beb1.tar.gz
moa-id-spss-b1c951bd4c125f52123d4a6947f459b505f8beb1.tar.bz2
moa-id-spss-b1c951bd4c125f52123d4a6947f459b505f8beb1.zip
Added trace logs, resolved link issues in documentation
git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/trunk@1062 d688527b-c9ab-4aba-bd8d-4036d912da1d
-rw-r--r--common/.settings/org.eclipse.jdt.core.prefs6
-rw-r--r--id/server/auth/.classpath3
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java17
-rw-r--r--spss/handbook/clients/webservice/conf/http.properties4
-rw-r--r--spss/handbook/handbook/usage/usage.html126
-rw-r--r--spss/server/history.txt11
-rw-r--r--spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/server/service/AxisHandler.java7
-rw-r--r--spss/server/serverws/.settings/org.eclipse.wst.common.component6
8 files changed, 107 insertions, 73 deletions
diff --git a/common/.settings/org.eclipse.jdt.core.prefs b/common/.settings/org.eclipse.jdt.core.prefs
index 88a20b6aa..af8eeb2ca 100644
--- a/common/.settings/org.eclipse.jdt.core.prefs
+++ b/common/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,7 @@
-#Fri Nov 16 14:43:51 CET 2007
+#Wed Jan 16 15:02:15 CET 2008
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.4
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.4
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
@@ -9,4 +9,4 @@ org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
+org.eclipse.jdt.core.compiler.source=1.4
diff --git a/id/server/auth/.classpath b/id/server/auth/.classpath
index 8cd9e4eb8..d6e7fdeb6 100644
--- a/id/server/auth/.classpath
+++ b/id/server/auth/.classpath
@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v5.0"/>
+ <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER/modules"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
- <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java
index 5cd03cb18..c49cc41c6 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java
@@ -19,6 +19,7 @@ import java.util.Vector;
import javax.xml.transform.TransformerException;
+import org.apache.axis.AxisFault;
import org.w3c.dom.Element;
import at.gv.egovernment.moa.id.AuthenticationException;
@@ -72,7 +73,9 @@ import at.gv.egovernment.moa.id.util.HTTPUtils;
import at.gv.egovernment.moa.id.util.MOAIDMessageProvider;
import at.gv.egovernment.moa.id.util.Random;
import at.gv.egovernment.moa.id.util.SSLUtils;
+import at.gv.egovernment.moa.logging.LogMsg;
import at.gv.egovernment.moa.logging.Logger;
+import at.gv.egovernment.moa.spss.MOASystemException;
import at.gv.egovernment.moa.util.Base64Utils;
import at.gv.egovernment.moa.util.BoolUtils;
import at.gv.egovernment.moa.util.Constants;
@@ -863,6 +866,20 @@ public class AuthenticationServer implements MOAIDAuthConstants {
// parses the <VerifyXMLSignatureResponse>
VerifyXMLSignatureResponse vsresp = new VerifyXMLSignatureResponseParser(domVsresp).parseData();
+
+ if (Logger.isTraceEnabled()) {
+ if (domVsresp!=null) {
+ try {
+ String xmlVerifyXMLSignatureResponse = DOMUtils.serializeNode(domVsresp, true);
+ Logger.trace(new LogMsg(xmlCreateXMLSignatureReadResponse));
+ Logger.trace(new LogMsg(xmlVerifyXMLSignatureResponse));
+ } catch (Throwable t) {
+ t.printStackTrace();
+ Logger.info(new LogMsg(t.getStackTrace()));
+ }
+ }
+ }
+
// validates the <VerifyXMLSignatureResponse>
VerifyXMLSignatureResponseValidator.getInstance().validate(
vsresp,
diff --git a/spss/handbook/clients/webservice/conf/http.properties b/spss/handbook/clients/webservice/conf/http.properties
index e61785a81..22f2d2cda 100644
--- a/spss/handbook/clients/webservice/conf/http.properties
+++ b/spss/handbook/clients/webservice/conf/http.properties
@@ -16,10 +16,10 @@ signServiceEndPoint = http://localhost:8080/moa-spss/services/SignatureCreation
# Name des zu sendenden Signaturerstellungsrequests (entweder absolute
# oder relative Pfadangabe; eine relative Pfadangabe wird relativ zum
# Arbeitsverzeichnis der Java VM interpretiert)
-#signRequest = resources/requests/CreateXMLSignatureRequest.Simple.xml
+signRequest = resources/requests/CreateXMLSignatureRequest.Simple.xml
#signRequest=resources/requests/CreateXMLSignatureRequest.Refs.xml
#signRequest=resources/requests/CreateXMLSignatureRequest.Transforms.xml
-signRequest=resources/requests/CreateXMLSignatureRequest.Supplements.xml
+#signRequest=resources/requests/CreateXMLSignatureRequest.Supplements.xml
#
diff --git a/spss/handbook/handbook/usage/usage.html b/spss/handbook/handbook/usage/usage.html
index e117297e7..ea7302fcb 100644
--- a/spss/handbook/handbook/usage/usage.html
+++ b/spss/handbook/handbook/usage/usage.html
@@ -14,9 +14,9 @@
<td align="center" class="logoTitle" width="123"><img src="../common/LogoMoa4c.jpg" alt="Logo MOA" width="123" height="138" align="right"></td>
</tr>
</table>
- <hr/>
- <p class="title"><a href="../index.html">MOA: Serversignatur (SS) und Signaturpr&uuml;fung (SP), V 1.4</a></p>
- <p class="subtitle">Anwendung</p>
+ <hr/>
+ <p class="title"><a href="../index.html">MOA: Serversignatur (SS) und Signaturpr&uuml;fung (SP), V 1.4</a></p>
+ <p class="subtitle">Anwendung</p>
<hr/>
<h1>Inhalt</h1>
<ol>
@@ -68,7 +68,7 @@
</ol>
</li>
</ol>
- <ol type="A">
+ <ol type="A">
<li><a href="#referenzierte_software">Referenzierte Software</a></li>
</ol>
<hr/>
@@ -96,13 +96,13 @@
<p> Im Fall von <code>Structure="enveloping"</code> muss im nachfolgenden <code>DataObject</code> Element entweder das Attribut <code>Reference</code> (enth&auml;lt eine URL, von der SS die Daten beziehen soll) gesetzt sein, oder aber die zu signierenden Daten werden explizit in einem der Elemente <code>Base64Content</code> (enth&auml;lt Daten in Base64 kodierter Form) oder <code>XMLContent</code> (enth&auml;lt Daten als beliebiges XML-Fragment) oder <code>LocRefContent</code> (enth&auml;lt eine URL, von der SS die Daten beziehen soll; in diesem Fall also gleichwertig wie ein gesetztes Attribut <code>Reference</code>) spezifiziert sein. Die Angabe der zu signierenden Daten &uuml;ber das Attribut <code>Reference</code> und gleichzeitig einem der Elemente <code>Base64Content</code> oder <code>XMLContent</code> oder <code>LocRefContent</code> ist nicht erlaubt.</p>
<p>Im Fall von <code>Structure="detached"</code> muss das Attribut <code>Reference</code> im nachfolgenden <code>DataObject</code> Element gesetzt sein. Es enth&auml;lt jene URL, die zur Referenzierung der Daten als Wert von <code>dsig:Reference/@URI</code> in die XML-Signatur aufgenommen wird. Die Angabe eines der Element <code>Base64Content</code> oder <code>XMLContent</code> oder <code>LocRefContent</code> ist optional. Unterbleibt die Angabe, bezieht SS die Daten von der URL im Attribut <code>Reference</code>. Wird eines der Elemente verwendet, bezieht SS die Daten durch Analyse des angegebenen Elements (siehe obiger Absatz). </p>
<p>Im konkreten Beispiel sollen die Daten in ein <code>dsig:Object</code> Element integriert werden (<code>Structure="enveloping"</code>). Die Daten werden mittels <code>XMLContent</code> als XML-Fragment (ein einfacher Textknoten) angegeben.</p>
- <p>
+ <p>
<pre> &lt;CreateTransformsInfoProfile&gt;<br> &lt;CreateTransformsInfo&gt;
&lt;FinalDataMetaInfo&gt;
&lt;MimeType&gt;text/plain&lt;MimeType&gt;
&lt;/FinalDataMetaInfo&gt;
&lt;/CreateTransformsInfo&gt;
- &lt;/CreateTransformsInfoProfile&gt;</pre>
+ &lt;/CreateTransformsInfoProfile&gt;</pre>
Zu jedem Daten-Objekt k&ouml;nnen optional Transformationen (z.B. XPath, XSLT, Base64-Decodierung, etc.) angegeben werden. Werden - wie hier im Beispiel - keine Transformationen angegeben, so muss zumindest der MIME-Type der zu signierenden Daten spezifiziert werden. <p></p>
<h5>Response</h5>
<p><code><a href="../../clients/webservice/resources/requests/CreateXMLSignatureRequest.Simple.resp.xml" target="_blank">CreateXMLSignatureRequest.Simple.resp.xml</a></code> ist eine typische Response des SS Webservices auf den obigen Request. Sein Aufbau wird nachfolgend analysiert. Bitte beachten Sie, dass die dargestellte Response zur bessernen Lesbarkeit einger&uuml;ckt und gek&uuml;rzt wurde.</p>
@@ -124,8 +124,8 @@
<h5>Request</h5>
<p>Dieses Beispiel stellt die vielf&auml;ltigen M&ouml;glichkeiten vor, wie MOA SS mitgeteilt werden kann, welche Daten signiert (wenn keine Transformationen angegeben werden) bzw. als Eingangsdaten f&uuml;r die Berechnung der Transformationen verwendet werden sollen (wenn Transformationen angegeben werden).</p>
<p>Mit <a href="../../clients/webservice/resources/requests/CreateXMLSignatureRequest.Refs.xml" target="_blank"><code>CreateXMLSignatureRequest.Refs.xml</code></a> sollen insgesamt neun Datenobjekte signiert werden:</p>
- <pre>&lt;CreateXMLSignatureRequest
- xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
+ <pre>&lt;CreateXMLSignatureRequest
+ xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
xmlns:dsig=&quot;http://www.w3.org/2000/09/xmldsig#&quot;&gt;<br> &lt;KeyIdentifier&gt;KG_allgemein&lt;/KeyIdentifier&gt;<br> &lt;SingleSignatureInfo SecurityLayerConformity=&quot;false&quot;&gt;</pre>
<p>Die Signatur soll mit dem Schl&uuml;ssel <code>KG_allgemein</code> erstellt werden; jene Elemente, die speziell f&uuml;r eine Security-Layer V1.1 konforme Signatur notwendig sind (vergleiche <a href="#webservice_xmlrequests_erstellungxml_simple" class="term">Einfaches Beispiel</a>), brauchen nicht erstellt zu werden (<code>SecurityLayerConformity=&quot;false&quot;</code>).</p>
<pre> &lt;DataObjectInfo Structure=&quot;enveloping&quot; ChildOfManifest=&quot;true&quot;&gt;
@@ -219,7 +219,7 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
&lt;DataObject Reference="NichtAufloesbareReferenz1"&gt;
&lt;XMLContent&gt;&lt;doc:XMLDocument xmlns:doc="urn:document"&gt;
&lt;doc:Paragraph&gt;Ich bin der erste Absatz in diesem Dokument.&lt;/doc:Paragraph&gt;
- &lt;doc:Paragraph ParaId="Para2"&gt;Und ich bin der zweite Absatz in diesem Dokument.
+ &lt;doc:Paragraph ParaId="Para2"&gt;Und ich bin der zweite Absatz in diesem Dokument.
Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
&lt;/doc:XMLDocument&gt;&lt;/XMLContent&gt;
&lt;/DataObject&gt;
@@ -304,14 +304,14 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
<h5>Response</h5>
<p><code><a href="../../clients/webservice/resources/requests/CreateXMLSignatureRequest.Refs.resp.xml" target="_blank">CreateXMLSignatureRequest.Refs.resp.xml</a></code> ist eine typische Response des SS Webservices auf den obigen Request. Sein Aufbau wird nachfolgend analysiert. Bitte beachten Sie, dass die dargestellte Response zur bessernen Lesbarkeit einger&uuml;ckt und gek&uuml;rzt wurde.</p>
<pre>
-&lt;CreateXMLSignatureResponse
- xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
+&lt;CreateXMLSignatureResponse
+ xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
xmlns:dsig=&quot;http://www.w3.org/2000/09/xmldsig#&quot;&gt;
&lt;SignatureEnvironment&gt;
&lt;doc:XMLDocument xmlns:doc=&quot;urn:document&quot;&gt;
&lt;doc:Paragraph&gt;Ich bin der erste Absatz in diesem Dokument.&lt;/doc:Paragraph&gt;
&lt;doc:Paragraph ParaId=&quot;Para2&quot;&gt;Und ich bin der zweite Absatz in diesem Dokument.
-Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;&lt;dsig:Signature Id=&quot;signature-1-1&quot;
+Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;&lt;dsig:Signature Id=&quot;signature-1-1&quot;
xmlns:dsig=&quot;http://www.w3.org/2000/09/xmldsig#&quot;&gt;
&lt;dsig:SignedInfo&gt;
&lt;dsig:CanonicalizationMethod Algorithm=&quot;http://www.w3.org/TR/2001/REC-xml-c14n-20010315&quot;/&gt;
@@ -421,8 +421,8 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
<h4><a name="webservice_xmlrequests_erstellungxml_transformationen" id="webservice_xmlrequests_erstellungxml_transformationen"></a>2.1.1.3 Transformationen</h4>
<h5>Request</h5>
<p>Dieses Beispiel (<a href="../../clients/webservice/resources/requests/CreateXMLSignatureRequest.Transforms.xml" target="_blank"><code>CreateXMLSignatureRequest.Transforms.xml</code></a>) stellt die wichtigsten Transformationen vor, die von MOA SS bei der Erstellung einer Signatur verwendet werden k&ouml;nnen. Eine Transformation bzw. eine Kette mehrerer hintereinandergeschalteter Transformationen werden auf die Referenz-Eingangsdaten (also jene Daten, die in DataObjectInfo/DataObject angegeben werden) angewendet; das Ergebnis flie&szlig;t dann in die Hashwert-Berechnung ein. </p>
-<pre>&lt;CreateXMLSignatureRequest
- xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
+<pre>&lt;CreateXMLSignatureRequest
+ xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
xmlns:dsig=&quot;http://www.w3.org/2000/09/xmldsig#&quot;&gt;<br> &lt;KeyIdentifier&gt;KG_allgemein&lt;/KeyIdentifier&gt;<br> &lt;SingleSignatureInfo SecurityLayerConformity=&quot;false&quot;&gt;</pre>
<p>Die Signatur soll mit dem Schl&uuml;ssel <code>KG_allgemein</code> erstellt werden; jene Elemente, die speziell f&uuml;r eine Security-Layer V1.1 konforme Signatur notwendig sind (vergleiche <a href="#webservice_xmlrequests_erstellungxml_simple" class="term">Einfaches Beispiel</a>), brauchen nicht erstellt zu werden (<code>SecurityLayerConformity=&quot;false&quot;</code>).</p>
<pre>
@@ -439,7 +439,7 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
&lt;/CreateTransformsInfo&gt;
&lt;/CreateTransformsInfoProfile&gt;
&lt;/DataObjectInfo&gt;
-</pre>
+</pre>
<p>F&uuml;r das erste zu signierende Datenobjekt werden die Referenz-Eingangsdaten mittels <code>DataObject/@Reference</code> referenziert, d. h. MOA SS l&ouml;st die darin enthaltene URL auf, um zu den Daten zu gelangen. Es handelt sich dabei um einen <a href="../../clients/common/referencedData/Text.b64" target="_blank">base64 kodierten Text</a>.</p>
<p>Unterschrieben werden soll nun aber nicht dieser base64 kodierte Text, sondern der entsprechend dekodierte Text. Dies l&auml;sst sich elegant durch die Angabe einer <span class="term"><a href="http://www.w3.org/TR/xmldsig-core/#sec-Base-64" target="_blank">Base64 Decoding</a></span><a href="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/#sec-Base-64" target="_blank"> Transformation</a> bewerkstelligen. Dazu wird als erstes Kindelement von <code>CreateTransformsInfo</code> ein <code>dsig:Transforms</code> Element im Request angegeben. Dieses <code>dsig:Transforms</code> Element nimmt ein oderer mehrere <code>dsig:Transform</code> Elemente auf, wobei jedes <code>dsig:Transform</code> Element f&uuml;r eine Transformation steht. In unserem Fall wird nur eine einzige Transformation ben&ouml;tigt; die Angabe, um welche Transformation es sich handelt, wird durch das Attribut <code>dsig:Transform/@Algorithm</code> angegeben. F&uuml;r die <span class="term">Base64 Decoding</span> Transformation muss der Wert auf <code>http://www.w3.org/2000/09/xmldsig#base64</code> gesetzt werden. Sie ist eine parameterlose Transformation, d. h. <code>dsig:Transform</code> hat keine Kindelemente.</p>
<p>Der Mime-Type der zu signierenden Daten wird als <code>text/plain</code> angegeben, da ja tats&auml;chlich nach der durchgef&uuml;hrten Transformation dekodierter Text vorliegt, &uuml;ber den dann der Hashwert berechnet wird. </p>
@@ -450,13 +450,13 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
&lt;CreateTransformsInfo&gt;
&lt;dsig:Transforms&gt;
&lt;dsig:Transform Algorithm=&quot;http://www.w3.org/2002/06/xmldsig-filter2&quot;&gt;
- &lt;xp2:XPath
- xmlns:xp2=&quot;http://www.w3.org/2002/06/xmldsig-filter2&quot;
- xmlns:doc=&quot;urn:document&quot;
+ &lt;xp2:XPath
+ xmlns:xp2=&quot;http://www.w3.org/2002/06/xmldsig-filter2&quot;
+ xmlns:doc=&quot;urn:document&quot;
Filter=&quot;subtract&quot;&gt;/doc:XMLDocument/doc:Paragraph[2]&lt;/xp2:XPath&gt;
&lt;/dsig:Transform&gt;
&lt;dsig:Transform Algorithm=&quot;http://www.w3.org/TR/1999/REC-xslt-19991116&quot;&gt;
- &lt;xsl:stylesheet version=&quot;1.0&quot;
+ &lt;xsl:stylesheet version=&quot;1.0&quot;
xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot; xmlns:doc=&quot;urn:document&quot;&gt;
&lt;xsl:output encoding=&quot;UTF-8&quot; method=&quot;xml&quot; indent=&quot;yes&quot;/&gt;
&lt;xsl:template match=&quot;/doc:XMLDocument&quot;&gt;
@@ -491,8 +491,8 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
<h5>Response</h5>
<p><code><a href="../../clients/webservice/resources/requests/CreateXMLSignatureRequest.Transforms.resp.xml" target="_blank">CreateXMLSignatureRequest.Transforms.resp.xml</a></code> ist eine typische Response des SS Webservices auf den obigen Request. Sein Aufbau wird nachfolgend analysiert. Bitte beachten Sie, dass die dargestellte Response zur bessernen Lesbarkeit einger&uuml;ckt und gek&uuml;rzt wurde.</p>
<pre>
-&lt;CreateXMLSignatureResponse
- xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
+&lt;CreateXMLSignatureResponse
+ xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
xmlns:dsig=&quot;http://www.w3.org/2000/09/xmldsig#&quot;&gt;
&lt;SignatureEnvironment&gt;
&lt;dsig:Signature Id=&quot;signature-1-1&quot; xmlns:dsig=&quot;http://www.w3.org/2000/09/xmldsig#&quot;&gt;
@@ -515,13 +515,13 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
&lt;dsig:Reference Id=&quot;reference-1-2&quot; URI=&quot;http://localhost:8080/referencedData/XMLDocument.xml&quot;&gt;
&lt;dsig:Transforms&gt;
&lt;dsig:Transform Algorithm=&quot;http://www.w3.org/2002/06/xmldsig-filter2&quot;&gt;
- &lt;xp2:XPath Filter=&quot;subtract&quot; xmlns:doc=&quot;urn:document&quot;
- xmlns:dsig=&quot;http://www.w3.org/2000/09/xmldsig#&quot;
- xmlns:xf2=&quot;http://www.w3.org/2002/06/xmldsig-filter2&quot;
+ &lt;xp2:XPath Filter=&quot;subtract&quot; xmlns:doc=&quot;urn:document&quot;
+ xmlns:dsig=&quot;http://www.w3.org/2000/09/xmldsig#&quot;
+ xmlns:xf2=&quot;http://www.w3.org/2002/06/xmldsig-filter2&quot;
xmlns:xp2=&quot;http://www.w3.org/2002/06/xmldsig-filter2&quot;&gt;/doc:XMLDocument/doc:Paragraph[2]&lt;/xp2:XPath&gt;
&lt;/dsig:Transform&gt;
&lt;dsig:Transform Algorithm=&quot;http://www.w3.org/TR/1999/REC-xslt-19991116&quot;&gt;
- &lt;xsl:stylesheet version=&quot;1.0&quot;
+ &lt;xsl:stylesheet version=&quot;1.0&quot;
xmlns:doc=&quot;urn:document&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;
&lt;xsl:output encoding=&quot;UTF-8&quot; indent=&quot;yes&quot; method=&quot;xml&quot;/&gt;
&lt;xsl:template match=&quot;/doc:XMLDocument&quot;&gt;...&lt;/xsl:template&gt;
@@ -538,8 +538,8 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
<h5>Request</h5>
<p>Dieses Beispiel (<a href="../../clients/webservice/resources/requests/CreateXMLSignatureRequest.Supplements.xml" target="_blank"><code>CreateXMLSignatureRequest.Supplements.xml</code></a>) stellt die Verwendung von Erg&auml;nzungsobjekten vor. Ein Erg&auml;nzungsobjekt betrifft entweder ein zu signierendes Datum (Zusammenhang mit einem <code>DataObject</code>) oder jenes Dokument, in das eine zu erzeugende Signatur eingef&uuml;gt werden soll (Zusammenhang mit <code>CreateSignatureEnvironment</code>). Es muss dann angegeben werden, wenn in einem zu signierenden Datum bzw. im Einf&uuml;gedokument auf Daten per Referenz verwiesen wird, diese referenzierten Daten aber von MOA SS nicht aufgel&ouml;st werden k&ouml;nnen. Das Erg&auml;nzungsobjekt enth&auml;lt dann genau diese Daten, die nicht von MOA SS aufgel&ouml;st werden k&ouml;nnen.</p>
<pre>
-&lt;CreateXMLSignatureRequest
- xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
+&lt;CreateXMLSignatureRequest
+ xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
xmlns:dsig=&quot;http://www.w3.org/2000/09/xmldsig#&quot;&gt;
&lt;KeyIdentifier&gt;KG_allgemein&lt;/KeyIdentifier&gt;
&lt;SingleSignatureInfo SecurityLayerConformity=&quot;false&quot;&gt;
@@ -557,7 +557,7 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
&lt;dsig:Transform Algorithm=&quot;http://www.w3.org/TR/1999/REC-xslt-19991116&quot;&gt;
&lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;
&lt;xsl:include href=&quot;XMLDocument.Para.xsl&quot;/&gt;
-&lt;/xsl:stylesheet&gt;
+&lt;/xsl:stylesheet&gt;
&lt;/dsig:Transform&gt;
&lt;dsig:Transform Algorithm=&quot;http://www.w3.org/2001/10/xml-exc-c14n#&quot;/&gt;
&lt;/dsig:Transforms&gt;
@@ -579,10 +579,10 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
<p>Ein Erg&auml;nzungsobjekt f&uuml;r zu signierende Daten wird im entsprechenden <code>DataObjectInfo</code> Element angegeben, und zwar als Inhalt des Elements <code>CreateTransformsInfoProfile/Supplement</code>. Das verpflichtend zu verwendende Attribut <code>Content/@Reference</code> enth&auml;lt dabei die Referenz auf das Erg&auml;nzungsobjekt in exakt jener Schreibweise, wie sie in der <code>xsl:include</code> Direktive vorkommt, hier also <code>XMLDocument.Para.xsl</code>. Das Element <code>Content</code> beinhaltet das Erg&auml;nzungsobjekt so, wie es MOA SS verwenden soll (Elemente <code>Base64Content</code> oder <code>XMLContent</code>, vergleiche <a href="#webservice_xmlrequests_erstellungxml_simple"><span class="term">Einfaches Beispiel</span></a>), bzw. enth&auml;lt eine von MOA SS aufl&ouml;sbare Referenz auf das Erg&auml;nzungsobjekt (Element <code>LocRefContent</code>, vergleiche <a href="#webservice_xmlrequests_erstellungxml_simple"><span class="term">Einfaches Beispiel</span></a>). Im konkreten Beispiel wird <code>LocRefContent</code> verwendet. </p>
<pre>
&lt;CreateSignatureInfo&gt;
- &lt;CreateSignatureEnvironment
+ &lt;CreateSignatureEnvironment
Reference=&quot;http://localhost:8080/referencedData/XMLDocument.withSchemaHint.xml&quot;/&gt;
&lt;CreateSignatureEnvironmentProfile&gt;
- &lt;CreateSignatureLocation
+ &lt;CreateSignatureLocation
Index=&quot;4&quot; xmlns:doc=&quot;urn:document&quot;&gt;/doc:XMLDocument&lt;/CreateSignatureLocation&gt;
</pre>
<p>Eingef&uuml;gt werden soll die zu erzeugende Signatur in ein <a href="../../clients/common/referencedData/XMLDocument.withSchemaHint.xml" target="_blank">bestehendes Dokument</a>, das MOA SS durch Aufl&ouml;sen der in <code>CreateSignatureEnvironment/@Reference</code> angegebenen URL erh&auml;lt. Eingef&uuml;gt werden soll die Signatur als f&uuml;nfter Kindknoten des Wurzelelements <code>doc:XMLDocument</code>. Beachten Sie wiederum die <a href="#webservice_xmlrequests_erstellungxml_daten_hinweisCreateSignatureLocation">Hinweise</a> zur Z&auml;hlweise f&uuml;r das Attribut <code>Index</code> bzw. zur Deklaration der im XPath-Ausdruck verwendeten Namespace-Deklarationen (hier <code>doc</code>). </p>
@@ -605,7 +605,7 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
<h5>Request</h5>
<p>Dieses Beispiel (<a href="../../clients/webservice/resources/requests/VerifyCMSSignatureRequest.Simple.xml" target="_blank"><code>VerifyCMSSignatureRequest.Simple.xml</code></a>) ist ein einfacher Request zur Pr&uuml;fung einer CMS-Signatur. Sein Aufbau wird nachfolgend analysiert. Bitte beachten Sie, dass der nachfolgende Ausschnitt aus dem Request aus Gr&uuml;nden der &Uuml;bersichtlichkeit gek&uuml;rzt wurde.</p>
<pre>
-&lt;VerifyCMSSignatureRequest
+&lt;VerifyCMSSignatureRequest
xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;&gt;
&lt;CMSSignature&gt;MIIHsAYJKo...4sLL6kpOPJaLg==&lt;/CMSSignature&gt;
&lt;TrustProfileID&gt;Test-Signaturdienste&lt;/TrustProfileID&gt;
@@ -616,8 +616,8 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
<h5>Response</h5>
<p><code><a href="../../clients/webservice/resources/requests/VerifyCMSSignatureRequest.Simple.resp.xml" target="_blank">VerifyCMSSignatureRequest.Simple.resp.xml</a></code> ist eine typische Response des SP Webservices auf den obigen Request. Sein Aufbau wird nachfolgend analysiert. Bitte beachten Sie, dass die dargestellte Response zur bessernen Lesbarkeit einger&uuml;ckt und gek&uuml;rzt wurde.</p>
<pre>
-&lt;VerifyCMSSignatureResponse
- xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
+&lt;VerifyCMSSignatureResponse
+ xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
xmlns:dsig=&quot;http://www.w3.org/2000/09/xmldsig#&quot;&gt;
&lt;SignerInfo&gt;
&lt;dsig:X509Data&gt;
@@ -652,8 +652,8 @@ O=A-Trust Ges. für Sicherheitssysteme im elektr. Datenverkehr GmbH,C=AT&lt;/dsig
<h5>Request</h5>
<p>Dieses erweiterte Beispiel zur Pr&uuml;fung einer CMS-Signatur (<a href="../../clients/webservice/resources/requests/VerifyCMSSignatureRequest.Extended.xml" target="_blank"><code>VerifyCMSSignatureRequest.Extended.xml</code></a>) demonstriert die Pr&uuml;fung mehrerer Signatoren einer CMS-Signatur, die Angabe des Pr&uuml;fzeitpunkts sowie die Pr&uuml;fung einer <span class="term">Detached Signature</span>, d. h. einer Signatur, in der die signierten Daten nicht enthalten sind und daher extra angegeben werden m&uuml;ssen. </p>
<pre>
-&lt;VerifyCMSSignatureRequest
- xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
+&lt;VerifyCMSSignatureRequest
+ xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
Signatories=&quot;1&quot;&gt;
&lt;DateTime&gt;2004-08-17T08:00:00+02:00&lt;/DateTime&gt;
&lt;CMSSignature&gt;MIIHiwYJKoZI...kfiwsvqSk48lou&lt;/CMSSignature&gt;
@@ -682,7 +682,7 @@ O=A-Trust Ges. für Sicherheitssysteme im elektr. Datenverkehr GmbH,C=AT&lt;/dsig
&lt;dsig:Signature Id=&quot;signature-1-1&quot; xmlns:dsig=&quot;http://www.w3.org/2000/09/xmldsig#&quot;&gt;
&lt;dsig:SignedInfo&gt;
&lt;dsig:CanonicalizationMethod Algorithm=&quot;http://www.w3.org/TR/2001/REC-xml-c14n-20010315&quot;/&gt;
- &lt;dsig:SignatureMethod
+ &lt;dsig:SignatureMethod
Algorithm=&quot;http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha1&quot;/&gt;
&lt;dsig:Reference Id=&quot;reference-1-1&quot; URI=&quot;#xpointer(id(&apos;signed-data-1-1-1&apos;)/node())&quot;&gt;
&lt;dsig:DigestMethod Algorithm=&quot;http://www.w3.org/2000/09/xmldsig#sha1&quot;/&gt;
@@ -713,7 +713,7 @@ O=A-Trust Ges. für Sicherheitssysteme im elektr. Datenverkehr GmbH,C=AT&lt;/dsig
<p><code><a href="../../clients/webservice/resources/requests/VerifyXMLSignatureRequest.Simple.resp.xml" target="_blank">VerifyXMLSignatureRequest.Simple.resp.xml</a></code> ist eine typische Response des SP Webservices auf den obigen Request. Sein Aufbau wird nachfolgend analysiert. Bitte beachten Sie, dass die dargestellte Response zur bessernen Lesbarkeit einger&uuml;ckt und gek&uuml;rzt wurde.</p>
<pre>
&lt;VerifyXMLSignatureResponse
- xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
+ xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
xmlns:dsig=&quot;http://www.w3.org/2000/09/xmldsig#&quot;&gt;
&lt;SignerInfo&gt;
&lt;dsig:X509Data&gt;
@@ -771,8 +771,8 @@ O=A-Trust Ges. für Sicherheitssysteme im elektr. Datenverkehr GmbH,C=AT&lt;/dsig
<h5>Response</h5>
<p><code><a href="../../clients/webservice/resources/requests/VerifyXMLSignatureRequest.Enveloped.resp.xml" target="_blank">VerifyXMLSignatureRequest.Enveloped.resp.xml</a></code> ist eine typische Response des SP Webservices auf den obigen Request. Sein Aufbau wird nachfolgend analysiert. Bitte beachten Sie, dass die dargestellte Response zur bessernen Lesbarkeit einger&uuml;ckt und gek&uuml;rzt wurde.</p>
<pre>
-&lt;VerifyXMLSignatureResponse
- xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
+&lt;VerifyXMLSignatureResponse
+ xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
xmlns:dsig=&quot;http://www.w3.org/2000/09/xmldsig#&quot;&gt;
&lt;SignerInfo&gt;
&lt;dsig:X509Data&gt;...&lt;/dsig:X509Data&gt;
@@ -797,7 +797,7 @@ O=A-Trust Ges. für Sicherheitssysteme im elektr. Datenverkehr GmbH,C=AT&lt;/dsig
<p>Das Attribut PartOf weist mit dem Wert SignedInfo darauf hin, dass die <code>dsig:Reference</code>,
f&uuml;r welche die Hasheingangsdaten gelten, Teil von <code>dsig:SignedInfo</code> ist (f&uuml;r eine <code>dsig:Reference</code> aus
einem <code>dsig:SignedInfo</code> w&uuml;rde der gelieferte Wert <code>XMLDSIGManifest</code> lauten; weiters
-w&uuml;rde<code> HashInputData</code> in einem solchen Fall ein weiteres Attribut
+w&uuml;rde<code> HashInputData</code> in einem solchen Fall ein weiteres Attribut
<code>ReferringSigReference</code> aufweisen, dessen Wert die Nummer jener <code>dsig:Reference</code> aus <code>dsig:SignedInfo </code>als
@@ -819,7 +819,7 @@ positive Ganzzahl repr&auml;sentiert, die auf das beinhaltende <code>dsig:Manife
<p>Dieses Beispiel zur Pr&uuml;fung einer XML-Signatur (<a href="../../clients/webservice/resources/requests/VerifyXMLSignatureRequest.XMLDSigManifest.xml" target="_blank"><code>VerifyXMLSignatureRequest.XMLDSigManifest.xml</code></a>) demonstriert die Pr&uuml;fung eines in der XML-Signatur vorhandenden <a href="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/#sec-Manifest" target="_blank">Manifests nach XMLDSig</a>. Bitte beachten Sie, dass der dargestellte Request zur bessernen Lesbarkeit einger&uuml;ckt und gek&uuml;rzt wurde.</p>
<pre>
&lt;VerifyXMLSignatureRequest
- xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
+ xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
xmlns:dsig=&quot;http://www.w3.org/2000/09/xmldsig#&quot;&gt;
&lt;VerifySignatureInfo&gt;
&lt;VerifySignatureEnvironment&gt;
@@ -827,7 +827,7 @@ positive Ganzzahl repr&auml;sentiert, die auf das beinhaltende <code>dsig:Manife
&lt;dsig:Signature xmlns:dsig=&quot;http://www.w3.org/2000/09/xmldsig#&quot; Id=&quot;signature-1-1&quot;&gt;
&lt;dsig:SignedInfo&gt;
&lt;dsig:CanonicalizationMethod Algorithm=&quot;http://www.w3.org/TR/2001/REC-xml-c14n-20010315&quot;/&gt;
- &lt;dsig:SignatureMethod
+ &lt;dsig:SignatureMethod
Algorithm=&quot;http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha1&quot;/&gt;
&lt;dsig:Reference Type=&quot;http://www.w3.org/2000/09/xmldsig#Manifest&quot; URI=&quot;#dsig-manifest-1-1&quot;&gt;
&lt;dsig:DigestMethod Algorithm=&quot;http://www.w3.org/2000/09/xmldsig#sha1&quot;/&gt;
@@ -861,8 +861,8 @@ positive Ganzzahl repr&auml;sentiert, die auf das beinhaltende <code>dsig:Manife
<h5>Response</h5>
<p><code><a href="../../clients/webservice/resources/requests/VerifyXMLSignatureRequest.XMLDSigManifest.resp.xml" target="_blank">VerifyXMLSignatureRequest.XMLDSigManifest.resp.xml</a></code> ist eine typische Response des SP Webservices auf den obigen Request. Sein Aufbau wird nachfolgend analysiert. Bitte beachten Sie, dass die dargestellte Response zur bessernen Lesbarkeit einger&uuml;ckt und gek&uuml;rzt wurde.</p>
<pre>
-&lt;VerifyXMLSignatureResponse
- xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
+&lt;VerifyXMLSignatureResponse
+ xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
xmlns:dsig=&quot;http://www.w3.org/2000/09/xmldsig#&quot;&gt;
&lt;SignerInfo&gt;
&lt;dsig:X509Data&gt;...&lt;/dsig:X509Data&gt;
@@ -928,7 +928,7 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
<p>Man erkennt, dass das Attribut <code>dsig:Reference/@URI</code> das Element<code> doc:Paragraph</code> mit dem auf den Wert <code>Para2</code> gesetzten ID-Attribut <code>ParaId</code> referenziert. MOA kann jedoch den Umstand, dass es sich bei <code>doc:Paragraph/@ParaId</code> um ein ID-Attribut handelt, nur dann erkennen, wenn es das XML-Dokument validierend parst. Der dazu n&ouml;tige Verweis auf das passende XML-Schema ist zwar mit dem Attribut <code>xsi:schemaLocation</code> vorhanden, jedoch handelt es sich dabei mit <code>urn:XMLDocument.xsd</code> um eine nicht aufl&ouml;sbare Referenz. Deshalb wird im Request ein passendes Erg&auml;nzungsobjekt ben&ouml;tigt (siehe unten).</p>
<p>Weiters erkennt man, dass <code>dsig:Reference</code> ein XSLT-Transformation enth&auml;lt. Im darin kodierten Stylesheet-Parameter (<code>dsig:Transform/xsl:stylesheet</code>) wird ein weiterer Stylesheet inkludiert (<code>XMLDocument.Para.xsl</code>). Diese Referenz ist aber wiederum f&uuml;r MOA SP nicht aufl&ouml;sbar. Auch hier wird also ein passendes Erg&auml;nzungsobjekt ben&ouml;tigt (siehe unten). </p>
<pre>
- &lt;VerifySignatureLocation xmlns:doc=&quot;urn:document&quot;
+ &lt;VerifySignatureLocation xmlns:doc=&quot;urn:document&quot;
xmlns:dsig=&quot;http://www.w3.org/2000/09/xmldsig#&quot;&gt;/doc:XMLDocument/dsig:Signature&lt;/VerifySignatureLocation&gt;
&lt;/VerifySignatureInfo&gt;
</pre>
@@ -945,7 +945,7 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
&lt;SupplementProfile&gt;
&lt;Content Reference=&quot;urn:XMLDocument.xsd&quot;&gt;
&lt;XMLContent&gt;
- &lt;xs:schema targetNamespace=&quot;urn:document&quot; xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;
+ &lt;xs:schema targetNamespace=&quot;urn:document&quot; xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;
xmlns=&quot;urn:document&quot; elementFormDefault=&quot;qualified&quot; attributeFormDefault=&quot;unqualified&quot;&gt;
...
&lt;/xs:schema&gt;
@@ -962,8 +962,8 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
<h5>Request</h5>
<p>Dieses Beispiel zur Pr&uuml;fung einer XML-Signatur (<a href="../../clients/webservice/resources/requests/VerifyXMLSignatureRequest.SigManifest.xml" target="_blank"><code>VerifyXMLSignatureRequest.SigManifest.xml</code></a>) demonstriert die &Uuml;berpr&uuml;fung des Zusammenhangs zwischen den <a href="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20040514/core/Core.html#glossar_Referenz-Eingangsdaten" target="_blank">Referenz-Eingangsdaten</a> und den <a href="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20040514/core/Core.html#glossar_Hash-Eingangsdaten" target="_blank">Hash-Eingangsdaten</a> f&uuml;r die <code>dsig:Reference</code>-Elemente einer XML-Signatur. Mit Hilfe dieser Pr&uuml;fung kann eine Anwendung feststellen, ob bei der Erstellung einer XML-Signatur jene Transformationen bzw. auch jene inkludierten Stylesheets (vgl. <a href="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20040514/core/Core.html#signaturerstellungNachXMLDSIGAntwortImplTransParam" target="_blank">Implizite Transformationsparameter</a>) einer XSLT-Transformation angewendet wurden, welche die Anwendung vorgegeben hat. Bei erfolgreicher Pr&uuml;fung dieses Zusammenhangs kann die Anwendung die Referenz-Eingangsdaten einer <code>dsig:Reference</code> als gesichert ansehen, obwohl eigentlich die Hash-Eingangsdaten durch die Signatur gesichert sind. Dies ist jenen F&auml;llen sinnvoll, in denen die Anwendung grunds&auml;tzlich mit XML-Daten arbeitet, diese Daten jedoch f&uuml;r das Signieren durch eine Person in ein f&uuml;r diese Person verst&auml;ndliches Format wie z.B. HTML umgewandelt werden sollen.</p>
<pre>
-&lt;VerifyXMLSignatureRequest
- xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
+&lt;VerifyXMLSignatureRequest
+ xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
xmlns:dsig=&quot;http://www.w3.org/2000/09/xmldsig#&quot;&gt;
&lt;VerifySignatureInfo&gt;
&lt;VerifySignatureEnvironment&gt;
@@ -987,8 +987,8 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
&lt;/dsig:Transforms&gt;
...
&lt;/dsig:Reference&gt;
- &lt;dsig:Reference
- Type=&quot;http://www.buergerkarte.at/specifications/Security-Layer/20020225#SignatureManifest&quot;
+ &lt;dsig:Reference
+ Type=&quot;http://www.buergerkarte.at/specifications/Security-Layer/20020225#SignatureManifest&quot;
URI=&quot;#manifest-1-1&quot;&gt;
...
&lt;/dsig:Reference&gt;
@@ -1063,8 +1063,8 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
<h5>Response</h5>
<p><code><a href="../../clients/webservice/resources/requests/VerifyXMLSignatureRequest.SigManifest.resp.xml" target="_blank">VerifyXMLSignatureRequest.SigManifest.resp.xml</a></code> ist eine typische Response des SP Webservices auf den obigen Request. Sein Aufbau wird nachfolgend analysiert. Bitte beachten Sie, dass die dargestellte Response zur bessernen Lesbarkeit einger&uuml;ckt und gek&uuml;rzt wurde. </p>
<pre>
-&lt;VerifyXMLSignatureResponse
- xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
+&lt;VerifyXMLSignatureResponse
+ xmlns=&quot;http://reference.e-government.gv.at/namespace/moa/20020822#&quot;
xmlns:dsig=&quot;http://www.w3.org/2000/09/xmldsig#&quot;&gt;
&lt;SignerInfo&gt;...&lt;/SignerInfo&gt;
</pre>
@@ -1072,7 +1072,7 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
<pre>
&lt;ReferenceInputData PartOf=&quot;SignedInfo&quot;&gt;
&lt;XMLContent xml:space=&quot;preserve&quot;&gt;
- &lt;doc:Paragraph ParaId=&quot;Para2&quot; xmlns:doc=&quot;urn:document&quot;
+ &lt;doc:Paragraph ParaId=&quot;Para2&quot; xmlns:doc=&quot;urn:document&quot;
xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&gt;...&lt;/doc:Paragraph&gt;
&lt;/XMLContent&gt;
&lt;/ReferenceInputData&gt;
@@ -1085,7 +1085,7 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
&lt;/ReferenceInputData&gt;
&lt;ReferenceInputData PartOf=&quot;SignedInfo&quot;&gt;
&lt;XMLContent xml:space=&quot;preserve&quot;&gt;
- &lt;etsi:SignedProperties xmlns:doc=&quot;urn:document&quot;
+ &lt;etsi:SignedProperties xmlns:doc=&quot;urn:document&quot;
xmlns:etsi=&quot;http://uri.etsi.org/01903/v1.1.1#&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&gt;
...
&lt;/etsi:SignedProperties&gt;
@@ -1126,9 +1126,9 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
<h3><a name="webservice_clients_übersicht" id="webservice_clients_übersicht"></a>2.2.1 &Uuml;bersicht</h3>
<p>Der Webservice-Client existiert in drei Varianten, wobei jede Variante in einer eigenen Java-Klasse implementiert ist:</p>
<ul>
- <li>Der einfache Client (<code><a href="../../clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTP.java">HTTP.java</a></code>) arbeitet ohne Authentifikation. Er pr&uuml;ft weder die Authentizit&auml;t des verwendeten MOA-Webservices, noch identifiziert er sich selbst gegen&uuml;ber dem MOA-Webservice.</li>
- <li>Der Client mit Server-Authentisierung (<code><a href="../../clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSServerAuth.java">HTTPSServerAuth.java</a></code>) pr&uuml;ft die Authentizit&auml;t des verwendeten MOA-Websservices an Hand dessen SSL-Serverzertifikats, identifiziert sich selbst jedoch nicht gegen&uuml;ber dem MOA-Webservice.</li>
- <li>Der Client mit Client- und Server-Authentisierung (<code><a href="../../clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSClientAuth.java">HTTPSClientAuth.java</a></code>) pr&uuml;ft einerseits die Authentizit&auml;t des verwendeten MOA-Websservices an Hand dessen SSL-Serverzertifikats; andererseits weist er sich selbst mittels eines SSL-Client-Zertifikats gegen&uuml;ber dem MOA-Webservice aus. </li>
+ <li>Der einfache Client (<code><a href="../../clients/webservice/src/main/java/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTP.java">HTTP.java</a></code>) arbeitet ohne Authentifikation. Er pr&uuml;ft weder die Authentizit&auml;t des verwendeten MOA-Webservices, noch identifiziert er sich selbst gegen&uuml;ber dem MOA-Webservice.</li>
+ <li>Der Client mit Server-Authentisierung (<code><a href="../../clients/webservice/src/main/java/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSServerAuth.java">HTTPSServerAuth.java</a></code>) pr&uuml;ft die Authentizit&auml;t des verwendeten MOA-Websservices an Hand dessen SSL-Serverzertifikats, identifiziert sich selbst jedoch nicht gegen&uuml;ber dem MOA-Webservice.</li>
+ <li>Der Client mit Client- und Server-Authentisierung (<code><a href="../../clients/webservice/src/main/java/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSClientAuth.java">HTTPSClientAuth.java</a></code>) pr&uuml;ft einerseits die Authentizit&auml;t des verwendeten MOA-Websservices an Hand dessen SSL-Serverzertifikats; andererseits weist er sich selbst mittels eines SSL-Client-Zertifikats gegen&uuml;ber dem MOA-Webservice aus. </li>
</ul>
<p>Welcher der drei Varianten des Webservice-Clients zum Einsatz kommen soll, h&auml;ngt von der Art ab, wie das MOA-Webservice betrieben wird, d.h. ob es Server- bzw. Client-Authentisierung unterst&uuml;tzt bzw. verlangt. Befinden sich sowohl MOA-Webservice als auch der Webservice-Client im gleichen, abgeschotteten Netzwerk, kann auch eine Kommunikation ohne Authenifikation in Betracht gezogen werden. Ansonsten wird der Standardfall wohl der Betrieb mit Server-Authentisierung (Verwendung von MOA SP) bzw. mit Server- und Client-Authentisierung (Verwendung von MOA SS) sein.</p>
<p class="remark">Hinweis: Das <a href="../../">Wurzelverzeichnis</a> dieses Handbuchs stellt ein komplettes und sofort verwendbares Eclipse Projekt dar. </p>
@@ -1173,18 +1173,18 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
</ol>
<h3><a name="webservice_clients_httpsserverauth" id="webservice_clients_httpsserverauth"></a>2.2.3 Besonderheiten von <code>HTTPSServerAuth.java</code></h3>
<p>Diese Variante des Webservice-Clients verwendet JSSE, um im Schritt 3 des Kernablaufs aus <a href="#webservice_clients_gemeinsamkeiten">Abschnitt 2.2.2</a> eine SSL-Verbindung mit Server-Authentifizierung zum MOA SP/SS Server aufzubauen. In dieser SSL-Verbindung sendet der Webservice-Client dann den erstellten SOAP-Request &uuml;ber HTTPS.</p>
-<p>Die Konfiguration von JSSE (Speicher f&uuml;r die vertrauensw&uuml;rdigen Serverzertifikate, Typ dieses Speichers, Passwort f&uuml;r diesen Speicher) wird mittels zus&auml;tzlicher Parameter in der in <a href="#webservice_clients_gemeinsamkeiten">Abschnitt 2.2.2</a> besprochenen Java-Properties-Datei vorgenommen. Genaue Infos zu diesen Konfigurationsparametern entnehmen Sie bitte der Quellcodedokumentation von <code><a href="../../clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSServerAuth.java">HTTPSServerAuth.java</a></code>. <a href="../../clients/webservice/conf/http.properties"><code>http.properties</code></a> enth&auml;lt eine auf dieses Handbuch abgestimmte Konfiguration.</p>
-<p>Falls Sie Probleme beim SSL-Verbindungsaufbau zwischen Webservice-Client und MOA SP/SS Webservice haben, empfiehlt sich die Aktivierung des JSSE Loggings. Das Setzen der daf&uuml;r notwendigen Java System Property ist im Quellcode von <code><a href="../../clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSServerAuth.java">HTTPSServerAuth.java</a></code> bereits enthalten, jedoch auskommentiert. Suchen Sie einfach nach dem String <code>javax.net.debug</code>, um zur entsprechenden Stelle im Quellcode zu gelangen. </p>
+<p>Die Konfiguration von JSSE (Speicher f&uuml;r die vertrauensw&uuml;rdigen Serverzertifikate, Typ dieses Speichers, Passwort f&uuml;r diesen Speicher) wird mittels zus&auml;tzlicher Parameter in der in <a href="#webservice_clients_gemeinsamkeiten">Abschnitt 2.2.2</a> besprochenen Java-Properties-Datei vorgenommen. Genaue Infos zu diesen Konfigurationsparametern entnehmen Sie bitte der Quellcodedokumentation von <code><a href="../../clients/webservice/src/main/java/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSServerAuth.java">HTTPSServerAuth.java</a></code>. <a href="../../clients/webservice/conf/http.properties"><code>http.properties</code></a> enth&auml;lt eine auf dieses Handbuch abgestimmte Konfiguration.</p>
+<p>Falls Sie Probleme beim SSL-Verbindungsaufbau zwischen Webservice-Client und MOA SP/SS Webservice haben, empfiehlt sich die Aktivierung des JSSE Loggings. Das Setzen der daf&uuml;r notwendigen Java System Property ist im Quellcode von <code><a href="../../clients/webservice/src/main/java/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSServerAuth.java">HTTPSServerAuth.java</a></code> bereits enthalten, jedoch auskommentiert. Suchen Sie einfach nach dem String <code>javax.net.debug</code>, um zur entsprechenden Stelle im Quellcode zu gelangen. </p>
<h3><a name="webservice_clients_httpsclientauth" id="webservice_clients_httpsclientauth"></a>2.2.4 Besonderheiten von <code>HTTPSClientAuth.java</code> </h3>
<p>Diese Variante des Webservice-Clients verwendet JSSE, um im Schritt 3 des Kernablaufs aus <a href="#webservice_clients_gemeinsamkeiten">Abschnitt 2.2.2</a> eine SSL-Verbindung mit Server- und Client-Authentifizierung zum MOA SP/SS Server aufzubauen. In dieser SSL-Verbindung sendet der Webservice-Client dann den erstellten SOAP-Request &uuml;ber HTTPS.</p>
-<p>Die gegen&uuml;ber <a href="#webservice_clients_httpsserverauth">Abschnitt 2.2.3</a> zus&auml;tzlich notwendige Konfiguration von JSSE (Speicher f&uuml;r das SSL-Client-Zertifikat sowie den dazugeh&ouml;rigen privaten Schl&uuml;ssel, Typ dieses Speichers, Passwort f&uuml;r diesen Speicher) wird mittels zus&auml;tzlicher Parameter in der in <a href="#webservice_clients_gemeinsamkeiten">Abschnitt 2.2.2</a> besprochenen Java-Properties-Datei vorgenommen. Genaue Infos zu diesen Konfigurationsparametern entnehmen Sie bitte der Quellcodedokumentation von <code><a href="../../clients/webservice/src/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSClientAuth.java">HTTPSClientAuth.java</a></code>. <a href="../../clients/webservice/conf/http.properties"><code>http.properties</code></a> enth&auml;lt eine auf dieses Handbuch abgestimmte Konfiguration.</p>
+<p>Die gegen&uuml;ber <a href="#webservice_clients_httpsserverauth">Abschnitt 2.2.3</a> zus&auml;tzlich notwendige Konfiguration von JSSE (Speicher f&uuml;r das SSL-Client-Zertifikat sowie den dazugeh&ouml;rigen privaten Schl&uuml;ssel, Typ dieses Speichers, Passwort f&uuml;r diesen Speicher) wird mittels zus&auml;tzlicher Parameter in der in <a href="#webservice_clients_gemeinsamkeiten">Abschnitt 2.2.2</a> besprochenen Java-Properties-Datei vorgenommen. Genaue Infos zu diesen Konfigurationsparametern entnehmen Sie bitte der Quellcodedokumentation von <code><a href="../../clients/webservice/src/main/java/at/gv/egovernment/moa/spss/handbook/clients/webservice/HTTPSClientAuth.java">HTTPSClientAuth.java</a></code>. <a href="../../clients/webservice/conf/http.properties"><code>http.properties</code></a> enth&auml;lt eine auf dieses Handbuch abgestimmte Konfiguration.</p>
<p>Beachten Sie bitte auch den Hinweis zum JSSE Logging aus <a href="#webservice_clients_httpsserverauth">Abschnitt 2.2.3</a>.</p>
<h1><a name="klassenbibliothek" id="klassenbibliothek"></a>3 Verwendung der Klassenbibliothek</h1>
<p>Neben dem Betrieb von MOA SP/SS als Webservice ist als Alternative auch die Verwendung von MOA SP/SS als Klassenbibliothek m&ouml;glich, also die direkte Einbindung in ein Java-Programm unter Verwendung des Application Programmers Interface (API) von MOA SP/SS. </p>
<h2><a name="klassenbibliothek_vorbereitung" id="klassenbibliothek_vorbereitung"></a>3.1 Vorbereitung</h2>
-<p>Um das API von MOA SP/SS verwenden zu k&ouml;nnen, m&uuml;ssen einerseits die MOA-Bibliotheken selbst, andererseits eine Reihe von unterst&uuml;tzenden Bibliotheken in den Klassenpfad aufgenommen werden. Eine &Uuml;bersicht dazu finden Sie im Installationshandbuch im <a href="../install/install.html#klassenbibliothek">Abschnitt 3</a>.
+<p>Um das API von MOA SP/SS verwenden zu k&ouml;nnen, m&uuml;ssen einerseits die MOA-Bibliotheken selbst, andererseits eine Reihe von unterst&uuml;tzenden Bibliotheken in den Klassenpfad aufgenommen werden. Eine &Uuml;bersicht dazu finden Sie im Installationshandbuch im <a href="../install/install.html#klassenbibliothek">Abschnitt 3</a>.
<h2><a name="klassenbibliothek_allgemeines" id="klassenbibliothek_allgemeines"></a>3.2 Allgemeines </h2>
-<p>Der strukturelle Aufbau der API entspricht weitgehend der Struktur eines MOA-XML-Requests. Es werden daher in diesem Abschnitt nur zwei grundlegende Beispiele gebracht; f&uuml;r komplexere Aufgaben k&ouml;nnen die XML-Beispiele aus <a href="#webservice_xmlrequests">Abschnitt 2.1</a> als Vorlage verwendet und einfach in die &quot;API-Welt&quot; &uuml;bertragen werden.
+<p>Der strukturelle Aufbau der API entspricht weitgehend der Struktur eines MOA-XML-Requests. Es werden daher in diesem Abschnitt nur zwei grundlegende Beispiele gebracht; f&uuml;r komplexere Aufgaben k&ouml;nnen die XML-Beispiele aus <a href="#webservice_xmlrequests">Abschnitt 2.1</a> als Vorlage verwendet und einfach in die &quot;API-Welt&quot; &uuml;bertragen werden.
<h2><a name="klassenbibliothek_beispiele" id="klassenbibliothek_beispiele"></a>3.3 Beispiele </h2>
<p>Dieses Handbuch enth&auml;lt zwei Beispiele f&uuml;r die Verwendung der API von MOA SP/SS:
<ol>
@@ -1195,7 +1195,7 @@ Ich habe weiters ein eigenens ID-Attribut bekommen.&lt;/doc:Paragraph&gt;
Die Auswahl der zu pr&uuml;fenden Signatur erfolgt ebenfalls per Kommandozeilenparameter. Detaillierte Informationen dazu finden Sie ebenfalls in der Quellcodedokumentation des Beispiels. </li>
</ol>
<h2><a name="klassenbibliothek_apidoc" id="klassenbibliothek_apidoc"></a>3.4 API-Dokumentation </h2>
-<p>F&uuml;r die vollst&auml;ndige Dokumentation des API von MOA SP/SS sei auf die <a href="../../api-doc/index.html">Java Doc der API</a> verwiesen.
+<p>F&uuml;r die vollst&auml;ndige Dokumentation des API von MOA SP/SS sei auf die <a href="../../api-doc/index.html">Java Doc der API</a> verwiesen.
<p>
<h1><a name="referenzierte_software" id="referenzierte_software"></a>A Referenzierte Software</h1>
<p>Auf folgende Software-Pakete wird in diesem Handbuch verwiesen:</p>
diff --git a/spss/server/history.txt b/spss/server/history.txt
index de661156b..18647a12b 100644
--- a/spss/server/history.txt
+++ b/spss/server/history.txt
@@ -1,4 +1,13 @@
##############
+1.4.3
+##############
+
+- Das Herauslösen des Verarbeitungsrequests aus dem SOAP-Request endete in einer
+ ClassCastException, wenn zwischen dem Body-Element des SOAP-Envelopes und dem
+ Request white spaces vorhanden sind bzw. dieses Element nicht unmittelbar nach
+ dem Body-Element steht. Das Herauslösen ist nun gegen white spaces robust.
+
+##############
1.4.2
##############
@@ -31,7 +40,7 @@
1.4.0
##############
-- Unterstützung von SOAP with Attachments. LocRefContent kann nun auch über SOAP
+- Unterstützung von SOAP with Attachments. LocRefContent kann nun auch über SOAP
attachments übergeben werden. Dadurch können alle notwendigen Teile für einen
Request platzsparend in einem Schritt übermittelt werden.
diff --git a/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/server/service/AxisHandler.java b/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/server/service/AxisHandler.java
index 3a7f13c48..b079667b0 100644
--- a/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/server/service/AxisHandler.java
+++ b/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/server/service/AxisHandler.java
@@ -204,7 +204,7 @@ public class AxisHandler extends BasicHandler {
} else {
info("handler.03", null);
}
- if (Logger.isDebugEnabled()) {
+ if (Logger.isTraceEnabled()) {
// OutputFormat format = new OutputFormat((Document) xmlRequest.getOwnerDocument());
// format.setLineSeparator("\n");
// format.setIndenting(false);
@@ -218,7 +218,7 @@ public class AxisHandler extends BasicHandler {
String msg = soapMessage.getSOAPPartAsString();
- Logger.debug(new LogMsg(msg));
+ Logger.trace(new LogMsg(msg));
}
} catch (MOASystemException e) {
MOASystemException se = new MOASystemException("2900", null, e);
@@ -270,6 +270,9 @@ public class AxisHandler extends BasicHandler {
serializedBytes.close();
xmlResponseString = serializedBytes.toString("UTF-8");
*/
+ if (Logger.isTraceEnabled()) {
+ Logger.trace(new LogMsg(xmlResponseString));
+ }
soapResponseString = SOAP_PART_PRE + xmlResponseString + SOAP_PART_POST;
//override axis response-message
msgContext.setResponseMessage(new Message(soapResponseString));
diff --git a/spss/server/serverws/.settings/org.eclipse.wst.common.component b/spss/server/serverws/.settings/org.eclipse.wst.common.component
index 06aa22f01..7ac34c6c2 100644
--- a/spss/server/serverws/.settings/org.eclipse.wst.common.component
+++ b/spss/server/serverws/.settings/org.eclipse.wst.common.component
@@ -2,6 +2,12 @@
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="moa-spss">
<wb-resource deploy-path="/" source-path="/src/main/webapp"/>
+ <dependent-module deploy-path="/WEB-INF/lib" handle="module:/resource/moa-common/moa-common">
+ <dependency-type>uses</dependency-type>
+ </dependent-module>
+ <dependent-module deploy-path="/WEB-INF/lib" handle="module:/resource/moa-spss-lib/moa-spss-lib">
+ <dependency-type>uses</dependency-type>
+ </dependent-module>
<property name="context-root" value="moa-spss"/>
<property name="java-output-path" value="target/classes"/>
</wb-module>