diff options
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.java | 39 |
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( |