aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--spss.handbook/handbook/config/config.html2
-rw-r--r--spss.handbook/handbook/spec/MOA-SPSS-1.2.pdfbin339034 -> 142297 bytes
-rw-r--r--spss.server/history.txt9
-rw-r--r--spss.server/spec/MOA-SPSS-1.2.docbin536064 -> 556544 bytes
-rw-r--r--spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureVerificationInvoker.java12
-rw-r--r--spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureVerificationProfileFactory.java17
6 files changed, 22 insertions, 18 deletions
diff --git a/spss.handbook/handbook/config/config.html b/spss.handbook/handbook/config/config.html
index 52a0fe46d..501b851b1 100644
--- a/spss.handbook/handbook/config/config.html
+++ b/spss.handbook/handbook/config/config.html
@@ -589,7 +589,7 @@ dieses obligatorischen Attributs vom Typ<code> xs:anyURI</code> enth&auml;lt die
<ul>
<li><code>cfg:CreateSignatureEnvironmentProfile</code>: Enth&auml;lt f&uuml;r eine zu erstellende XML-Signatur, die in ein bereits bestehendes XML-Dokument integriert werden soll, die Stelle, an der die XML-Signatur eingef&uuml;gt werden soll, sowie allenfalls f&uuml;r die Verarbeitung des bestehenden XML-Dokuments notwendige Erg&auml;nzungsobjekte (z.B. ein XML-Schema f&uuml;r das validierende Parsen des bestehenden XML-Dokuments).</li>
<li><code>cfg:CreateTransformsInfoProfile</code>: Enth&auml;lt f&uuml;r ein bestimmtes Datenobjekt f&uuml;r eine zu erstellende XML-Signatur die auf dieses Datenobjekt anzuwendenden Transformationen, sowie allenfalls f&uuml;r die Durchf&uuml;hrung der Transformationen notwendige Erg&auml;nzungsobjekte (z.B. einen zu importierenden Stylesheet f&uuml;r eine XSL-Transformation).</li>
- <li><code>cfg:VerifyTransformsInfoProfile</code>: Enth&auml;lt f&uuml;r ein bestimmtes Datenobjekt f&uuml;r eine zu pr&uuml;fende XML-Signatur einen f&uuml;r dieses Datenobjekt erlaubten Transformationsweg, bestehend aus den anzuwendenden Transformationen, sowie allenfalls f&uuml;r die Durchf&uuml;hrung der Transformationen erlaubten Erg&auml;nzungsobjekte (z.B. einen zu importierenden Stylesheet f&uuml;r eine XSL-Transformation).</li>
+ <li><code>cfg:VerifyTransformsInfoProfile</code>: Enth&auml;lt f&uuml;r ein bestimmtes Datenobjekt f&uuml;r eine zu pr&uuml;fende XML-Signatur eine f&uuml;r dieses Datenobjekt erlaubte Transformationsfolge, bestehend aus den anzuwendenden Transformationen, sowie allenfalls f&uuml;r die Durchf&uuml;hrung der Transformationen erlaubte implizite Transformationsparameter (z.B. einen zu importierenden Stylesheet f&uuml;r eine XSL-Transformation).</li>
<li><code>cfg:SupplementProfile</code>: Enth&auml;lt f&uuml;r ein Datenobjekt in der zu pr&uuml;fenden XML-Signatur ein allenfalls f&uuml;r die Durchf&uuml;hrung der vorgegebenen Transformationen notwendiges Erg&auml;nzungsobjekt (z.B. einen zu importierenden Stylesheet f&uuml;r eine XSL-Transformation).</li>
</ul>
<p>Jedes dieser Elemente kann dabei beliebig oft (auch gar nicht) vorkommen. Alle Elemente teilen den gleichen Aufbau; sie weisen zwei obligatorische Attribute auf und haben keinen Element-Inhalt:</p>
diff --git a/spss.handbook/handbook/spec/MOA-SPSS-1.2.pdf b/spss.handbook/handbook/spec/MOA-SPSS-1.2.pdf
index 76094b848..bc3db0158 100644
--- a/spss.handbook/handbook/spec/MOA-SPSS-1.2.pdf
+++ b/spss.handbook/handbook/spec/MOA-SPSS-1.2.pdf
Binary files differ
diff --git a/spss.server/history.txt b/spss.server/history.txt
index 84f10047d..42930a943 100644
--- a/spss.server/history.txt
+++ b/spss.server/history.txt
@@ -1,11 +1,16 @@
##############
-Current
+ Current
##############
-- MOA fit für Mehrfachsignaturen, d.h. mehrere XML-Signaturen in einem XML-
+- MOA SS fit für Mehrfachsignaturen, d.h. mehrere XML-Signaturen in einem XML-
Dokument gemacht. Bisher scheiterte das an den fix vergebenen Id-Attributen
innerhalb der dsig:Signature-Struktur.
Siehe https://forge.cio.gv.at/bugzilla/show_bug.cgi?id=214.
+
+- MOA SP so verändert, dass die Prüfungen zum Signaturmanifest laut SL 1.2 jeden-
+ falls durchgeführt werden, auch wenn das Element SignatureManifestCheckParams
+ in VerifyXMLSignatureRequest nicht angegeben wird.
+ Siehe https://forge.cio.gv.at/bugzilla/show_bug.cgi?id=269.
##############
1.2.1
diff --git a/spss.server/spec/MOA-SPSS-1.2.doc b/spss.server/spec/MOA-SPSS-1.2.doc
index 4e4ceed09..62376fe38 100644
--- a/spss.server/spec/MOA-SPSS-1.2.doc
+++ b/spss.server/spec/MOA-SPSS-1.2.doc
Binary files differ
diff --git a/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureVerificationInvoker.java b/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureVerificationInvoker.java
index 185a8c511..e192b66a2 100644
--- a/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureVerificationInvoker.java
+++ b/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureVerificationInvoker.java
@@ -152,7 +152,7 @@ public class XMLSignatureVerificationInvoker {
supplements);
xmlSignature = buildXMLSignature(signatureEnvironment, request);
- // build the list of DataObjects
+ // build the list of DataObjects
dataObjectList = buildDataObjectList(supplements);
// build profile
@@ -301,8 +301,8 @@ public class XMLSignatureVerificationInvoker {
ConfigurationProvider config = context.getConfiguration();
List supplementProfiles = request.getSupplementProfiles();
- List supplements = new ArrayList();
if (supplementProfiles != null) {
+ List supplements = new ArrayList();
List mappedProfiles =
ProfileMapper.mapSupplementProfiles(supplementProfiles, config);
Iterator iter;
@@ -312,9 +312,11 @@ public class XMLSignatureVerificationInvoker {
(SupplementProfileExplicit) iter.next();
supplements.add(profile.getSupplementProfile());
}
+
+ return supplements;
}
- return supplements;
+ return null;
}
/**
@@ -351,7 +353,7 @@ public class XMLSignatureVerificationInvoker {
// validate that each ReferenceData object contains transforms specified
// in the corresponding SignatureManifestCheckParams/ReferenceInfo
- if (profile.checkSecurityLayerManifest()) {
+ if (request.getSignatureManifestCheckParams() != null) {
List refInfos =
request.getSignatureManifestCheckParams().getReferenceInfos();
List refDatas = filterReferenceInfos(result.getReferenceDataList());
@@ -401,7 +403,7 @@ public class XMLSignatureVerificationInvoker {
// validate the hashes contained in all the ReferenceInfo objects of the
// security layer manifest
- if (profile.checkSecurityLayerManifest()
+ if (request.getSignatureManifestCheckParams() != null
&& result.containsSecurityLayerManifest()) {
Map hashValues = buildTransformParameterHashValues(request);
Set transformParameterURIs =
diff --git a/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureVerificationProfileFactory.java b/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureVerificationProfileFactory.java
index 858964c82..5df13a337 100644
--- a/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureVerificationProfileFactory.java
+++ b/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureVerificationProfileFactory.java
@@ -75,19 +75,16 @@ public class XMLSignatureVerificationProfileFactory {
profile.setIncludeHashInputData(request.getReturnHashInputData());
// set the security layer manifest check parameters
+ // and transformation supplements (if present)
checkParams = request.getSignatureManifestCheckParams();
+ profile.setCheckSecurityLayerManifest(true);
+ profile.setIncludeReferenceInputData(checkParams != null ? checkParams.getReturnReferenceInputData() : false);
if (checkParams != null) {
- List transformationSupplements;
-
- profile.setCheckSecurityLayerManifest(true);
- profile.setIncludeReferenceInputData(
- checkParams.getReturnReferenceInputData());
- transformationSupplements = buildTransformationSupplements();
- profile.setTransformationSupplements(transformationSupplements);
+ List transformationSupplements;
+ transformationSupplements = buildTransformationSupplements();
+ profile.setTransformationSupplements(transformationSupplements);
} else {
- profile.setCheckSecurityLayerManifest(false);
- profile.setIncludeReferenceInputData(false);
- profile.setTransformationSupplements(Collections.EMPTY_LIST);
+ profile.setTransformationSupplements(Collections.EMPTY_LIST);
}
return profile;