aboutsummaryrefslogtreecommitdiff
path: root/spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureCreationProfileFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureCreationProfileFactory.java')
-rw-r--r--spss.server/src/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureCreationProfileFactory.java39
1 files changed, 23 insertions, 16 deletions
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 6078c7fb0..7ac971da8 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
@@ -1,5 +1,13 @@
package at.gv.egovernment.moa.spss.server.invoke;
+import iaik.server.modules.algorithms.HashAlgorithms;
+import iaik.server.modules.keys.KeyEntryID;
+import iaik.server.modules.keys.KeyModule;
+import iaik.server.modules.keys.KeyModuleFactory;
+import iaik.server.modules.xmlsign.SignatureStructureTypes;
+import iaik.server.modules.xmlsign.XMLSignatureCreationProfile;
+import iaik.server.modules.xmlsign.XMLSignatureInsertionLocation;
+
import java.math.BigInteger;
import java.security.Principal;
import java.security.cert.X509Certificate;
@@ -12,18 +20,8 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import iaik.server.modules.algorithms.HashAlgorithms;
-import iaik.server.modules.keys.KeyEntryID;
-import iaik.server.modules.keys.KeyModule;
-import iaik.server.modules.keys.KeyModuleFactory;
-import iaik.server.modules.xmlsign.SignatureStructureTypes;
-import iaik.server.modules.xmlsign.XMLSignatureCreationProfile;
-import iaik.server.modules.xmlsign.XMLSignatureInsertionLocation;
-
import at.gv.egovernment.moa.logging.LogMsg;
import at.gv.egovernment.moa.logging.Logger;
-import at.gv.egovernment.moa.util.Constants;
-
import at.gv.egovernment.moa.spss.MOAApplicationException;
import at.gv.egovernment.moa.spss.MOASystemException;
import at.gv.egovernment.moa.spss.api.common.XMLDataObjectAssociation;
@@ -44,6 +42,7 @@ import at.gv.egovernment.moa.spss.server.transaction.TransactionContext;
import at.gv.egovernment.moa.spss.server.transaction.TransactionContextManager;
import at.gv.egovernment.moa.spss.server.util.IdGenerator;
import at.gv.egovernment.moa.spss.util.MessageProvider;
+import at.gv.egovernment.moa.util.Constants;
/**
* A factory to create <code>XMLSignatureCreationProfile</code>s from a
@@ -91,6 +90,8 @@ public class XMLSignatureCreationProfileFactory {
*
* @param singleSignatureInfo The <code>SingleSignatureInfo</code> object
* containing information about the creation of a signature.
+ * @param sigInfoReservedIDs The <code>Set</code> of reserved ID attribue values
+ * for the particular <code>singleSignatureInfo</code>.
* @return The <code>XMLSignatureCreationProfile</code> containing additional
* information for creating an XML signature.
* @throws MOASystemException A system error occurred during creation of the
@@ -98,11 +99,14 @@ public class XMLSignatureCreationProfileFactory {
* @throws MOAApplicationException An application error occurred during
* creation of the profile. See message for details.
*/
- public XMLSignatureCreationProfile createProfile(SingleSignatureInfo singleSignatureInfo)
- throws MOASystemException, MOAApplicationException {
+ public XMLSignatureCreationProfile createProfile(SingleSignatureInfo singleSignatureInfo,
+ Set sigInfoReservedIDs) throws MOASystemException, MOAApplicationException {
+
+ HashSet allReservedIDs = new HashSet(reserved);
+ allReservedIDs.addAll(sigInfoReservedIDs);
XMLSignatureCreationProfileImpl profile =
- new XMLSignatureCreationProfileImpl(createProfileCount, reserved);
+ new XMLSignatureCreationProfileImpl(createProfileCount, allReservedIDs);
TransactionContext context =
TransactionContextManager.getInstance().getTransactionContext();
ConfigurationProvider config = context.getConfiguration();
@@ -124,7 +128,8 @@ public class XMLSignatureCreationProfileFactory {
buildDataObjectTreatmentList(
singleSignatureInfo,
createTransformsProfiles,
- transformationSupplements);
+ transformationSupplements,
+ allReservedIDs);
profile.setDataObjectTreatmentList(dataObjectTreatmentList);
// set the key set
@@ -259,6 +264,7 @@ public class XMLSignatureCreationProfileFactory {
* <code>singleSignatureInfo</code>.
* @param transformationSupplements Additional parameters for
* transformations contained in <code>DataObjectTreatment</code>s.
+ * @param reservedIDs The <code>Set</code> of reserved object IDs.
* @return A <code>List</code> of <code>DataObjectTreatment</code> objects.
* @throws MOAApplicationException An error occurred building one of the
* <code>DataObjectTreatment</code>s.
@@ -268,7 +274,8 @@ public class XMLSignatureCreationProfileFactory {
private List buildDataObjectTreatmentList(
SingleSignatureInfo singleSignatureInfo,
List createTransformsInfoProfiles,
- List transformationSupplements)
+ List transformationSupplements,
+ Set reservedIDs)
throws MOASystemException, MOAApplicationException {
TransactionContext context =
@@ -290,7 +297,7 @@ public class XMLSignatureCreationProfileFactory {
new IdGenerator(
("signed-data-" + createProfileCount)
+ ("-" + dataObjectTreatmentCount++),
- reserved);
+ reservedIDs);
DataObjectTreatmentImpl treatment = new DataObjectTreatmentImpl(objIdGen);
treatment.setFinalContentType(