aboutsummaryrefslogtreecommitdiff
path: root/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureCreationInvoker.java
diff options
context:
space:
mode:
Diffstat (limited to 'spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureCreationInvoker.java')
-rw-r--r--spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureCreationInvoker.java24
1 files changed, 22 insertions, 2 deletions
diff --git a/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureCreationInvoker.java b/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureCreationInvoker.java
index c3b788716..7de8ba48f 100644
--- a/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureCreationInvoker.java
+++ b/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureCreationInvoker.java
@@ -30,9 +30,11 @@ import at.gv.egovernment.moa.spss.MOAApplicationException;
import at.gv.egovernment.moa.spss.MOAException;
import at.gv.egovernment.moa.spss.MOASystemException;
import at.gv.egovernment.moa.spss.api.common.Content;
+import at.gv.egovernment.moa.spss.api.common.MetaInfo;
import at.gv.egovernment.moa.spss.api.xmlsign.CreateSignatureEnvironmentProfileExplicit;
import at.gv.egovernment.moa.spss.api.xmlsign.CreateSignatureInfo;
import at.gv.egovernment.moa.spss.api.xmlsign.CreateSignatureLocation;
+import at.gv.egovernment.moa.spss.api.xmlsign.CreateTransformsInfoProfileExplicit;
import at.gv.egovernment.moa.spss.api.xmlsign.CreateXMLSignatureRequest;
import at.gv.egovernment.moa.spss.api.xmlsign.CreateXMLSignatureResponse;
import at.gv.egovernment.moa.spss.api.xmlsign.DataObjectInfo;
@@ -157,9 +159,11 @@ public class XMLSignatureCreationInvoker {
}
// build the list of DataObjects
+ List createTransformsProfiles = profileFactory.getCreateTransformsInfoProfiles(singleSignatureInfo);
dataObjectList =
buildDataObjectList(
singleSignatureInfo,
+ createTransformsProfiles,
signatureEnvironment,
refIdGen);
@@ -288,6 +292,8 @@ public class XMLSignatureCreationInvoker {
*
* @param singleSignatureInfo The <code>SingleSignatureInfo</code> object
* containing the <code>DataObjectInfo</code> objects.
+ * @param createTransformsProfiles A list of objects of type {@link CreateTransformsInfoProfileExplicit},
+ * each representing the transforms info profile information for the corresponding <code>DataObject</code>.
* @param signatureEnvironment The
* @param idGen The ID generator for <code>DataObject</code> references.
* @return The <code>List</code> of <code>DataObject</code>s contained in the
@@ -299,28 +305,36 @@ public class XMLSignatureCreationInvoker {
*/
private List buildDataObjectList(
SingleSignatureInfo singleSignatureInfo,
+ List createTransformsProfiles,
XMLDataObject signatureEnvironment,
IdGenerator idGen)
throws MOASystemException, MOAApplicationException {
List dataObjInfos = singleSignatureInfo.getDataObjectInfos();
List dataObjects = new ArrayList();
- //Document requestDoc = singleSignatureInfo.getOwnerDocument();
Iterator dtIter;
+ Iterator ctpIter = createTransformsProfiles.iterator();
- for (dtIter = dataObjInfos.iterator(); dtIter.hasNext();) {
+ for (dtIter = dataObjInfos.iterator(); dtIter.hasNext();)
+ {
DataObjectInfo dataObjInfo = (DataObjectInfo) dtIter.next();
String structure = dataObjInfo.getStructure();
+
+ CreateTransformsInfoProfileExplicit transformsProfile =
+ (CreateTransformsInfoProfileExplicit) ctpIter.next();
+ MetaInfo finalDataMetaInfo = transformsProfile.getCreateTransformsInfo().getFinalDataMetaInfo();
if (DataObjectInfo.STRUCTURE_ENVELOPING.equals(structure)) {
dataObjects.add(
buildEnvelopingDataObject(
dataObjInfo.getDataObject(),
+ finalDataMetaInfo,
idGen.nextId()));
} else if (DataObjectInfo.STRUCTURE_DETACHED.equals(structure)) {
dataObjects.add(
buildDetachedDataObject(
dataObjInfo.getDataObject(),
+ finalDataMetaInfo,
signatureEnvironment,
idGen.nextId()));
} else {
@@ -338,6 +352,7 @@ public class XMLSignatureCreationInvoker {
*
* @param content The <code>Content</code> object containing the data object.
* <code>ContentOptionalRefType</code>.
+ * @param finalDataMetaInfo The meta information corresponding with <code>content</code>.
* @param referenceID The reference ID to use in the signature for the
* <code>DataObject</code> created.
* @return The <code>DataObject</code> representing the data contained in
@@ -349,6 +364,7 @@ public class XMLSignatureCreationInvoker {
*/
private DataObject buildEnvelopingDataObject(
Content content,
+ MetaInfo finalDataMetaInfo,
String referenceID)
throws MOASystemException, MOAApplicationException {
@@ -358,6 +374,7 @@ public class XMLSignatureCreationInvoker {
dataObject =
factory.createFromContentOptionalRefType(
content,
+ finalDataMetaInfo,
referenceID,
false,
false,
@@ -371,6 +388,7 @@ public class XMLSignatureCreationInvoker {
* Build a <code>DataObject</code> to be used in a detached signature.
*
* @param content The <code>Content</code> object containing an the data.
+ * @param finalDataMetaInfo The meta information corresponding with <code>content</code>.
* @param signatureEnvironment The signature environment where the signature
* will be inserted.
* @param referenceID The reference ID to use in the signature for the
@@ -384,6 +402,7 @@ public class XMLSignatureCreationInvoker {
*/
private DataObject buildDetachedDataObject(
Content content,
+ MetaInfo finalDataMetaInfo,
XMLDataObject signatureEnvironment,
String referenceID)
throws MOASystemException, MOAApplicationException {
@@ -404,6 +423,7 @@ public class XMLSignatureCreationInvoker {
dataObject =
factory.createFromContentOptionalRefType(
content,
+ finalDataMetaInfo,
referenceID,
true,
false,