aboutsummaryrefslogtreecommitdiff
path: root/spss.server/src/at/gv/egovernment/moa/spss/server
diff options
context:
space:
mode:
Diffstat (limited to 'spss.server/src/at/gv/egovernment/moa/spss/server')
-rw-r--r--spss.server/src/at/gv/egovernment/moa/spss/server/invoke/DataObjectFactory.java5
-rw-r--r--spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureCreationInvoker.java24
-rw-r--r--spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureCreationProfileFactory.java2
3 files changed, 28 insertions, 3 deletions
diff --git a/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/DataObjectFactory.java b/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/DataObjectFactory.java
index 6f541ed42..634cf9992 100644
--- a/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/DataObjectFactory.java
+++ b/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/DataObjectFactory.java
@@ -332,6 +332,7 @@ public class DataObjectFactory {
* Create a <code>DataObject</code> from a <code>Content</code> object.
*
* @param content The <code>Content</code> object containing the data.
+ * @param finalDataMetaInfo The meta information corresponding with <code>content</code>.
* @param referenceID The reference ID to set in the resulting
* <code>DataObject</code>. May be <code>null</code>.
* @param allowContentAndReference If <code>true</code>, then
@@ -363,6 +364,7 @@ public class DataObjectFactory {
*/
public DataObject createFromContentOptionalRefType(
Content content,
+ MetaInfo finalDataMetaInfo,
String referenceID,
boolean allowContentAndReference,
boolean binaryAsXml,
@@ -414,6 +416,9 @@ public class DataObjectFactory {
dataObject.setURI(reference);
dataObject.setReferenceID(referenceID);
+ // set Type gathered from corresponding meta information
+ dataObject.setTypeURI(finalDataMetaInfo.getType());
+
return dataObject;
}
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,
diff --git a/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureCreationProfileFactory.java b/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureCreationProfileFactory.java
index c9bb12f75..6078c7fb0 100644
--- a/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureCreationProfileFactory.java
+++ b/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureCreationProfileFactory.java
@@ -181,7 +181,7 @@ public class XMLSignatureCreationProfileFactory {
* @throws MOAApplicationException An error occurred creating one of the
* profiles.
*/
- private List getCreateTransformsInfoProfiles(SingleSignatureInfo singleSignatureInfo)
+ List getCreateTransformsInfoProfiles(SingleSignatureInfo singleSignatureInfo)
throws MOAApplicationException {
TransactionContext context =
TransactionContextManager.getInstance().getTransactionContext();