diff options
Diffstat (limited to 'spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api')
6 files changed, 74 insertions, 7 deletions
diff --git a/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/SPSSFactory.java b/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/SPSSFactory.java index b5cc96a04..d41891167 100644 --- a/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/SPSSFactory.java +++ b/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/SPSSFactory.java @@ -25,6 +25,7 @@ package at.gv.egovernment.moa.spss.api; import java.io.InputStream; +import java.math.BigDecimal; import java.math.BigInteger; import java.security.cert.X509Certificate; import java.util.Date; @@ -481,7 +482,9 @@ public abstract class SPSSFactory { */ public abstract CMSDataObject createCMSDataObject( MetaInfo metaInfo, - CMSContent content); + CMSContent content, + BigDecimal excludeByteRangeFrom, + BigDecimal excludeByteRangeTo); /** * Create a new <code>CMSContent</code> object from the data contained at the diff --git a/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/cmsverify/CMSDataObject.java b/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/cmsverify/CMSDataObject.java index 0c4b2ce6d..f9a684676 100644 --- a/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/cmsverify/CMSDataObject.java +++ b/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/cmsverify/CMSDataObject.java @@ -24,6 +24,8 @@ package at.gv.egovernment.moa.spss.api.cmsverify; +import java.math.BigDecimal; + import at.gv.egovernment.moa.spss.api.common.MetaInfo; /** @@ -46,4 +48,10 @@ public interface CMSDataObject { * @return The actual content. */ public CMSContent getContent(); -} + + + public BigDecimal getExcludeByteRangeFrom(); + + public BigDecimal getExcludeByteRangeTo(); + + } diff --git a/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/impl/CMSDataObjectImpl.java b/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/impl/CMSDataObjectImpl.java index 0e89885c8..20a9b5654 100644 --- a/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/impl/CMSDataObjectImpl.java +++ b/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/impl/CMSDataObjectImpl.java @@ -24,6 +24,8 @@ package at.gv.egovernment.moa.spss.api.impl; +import java.math.BigDecimal; + import at.gv.egovernment.moa.spss.api.cmsverify.CMSContent; import at.gv.egovernment.moa.spss.api.cmsverify.CMSDataObject; import at.gv.egovernment.moa.spss.api.common.MetaInfo; @@ -40,6 +42,9 @@ public class CMSDataObjectImpl implements CMSDataObject { private MetaInfo metaInfo; /** The <code>CMSContent</code> contained in this data object. */ private CMSContent cmsContent; + + private BigDecimal excludeByteRangeFrom; + private BigDecimal excludeByteRangeTo; /** * Sets the meta information associated with the CMS data object. @@ -67,4 +72,20 @@ public class CMSDataObjectImpl implements CMSDataObject { return cmsContent; } + public void setExcludeByteRangeFrom(BigDecimal excludeByteRangeFrom) { + this.excludeByteRangeFrom = excludeByteRangeFrom; + } + + public BigDecimal getExcludeByteRangeFrom() { + return excludeByteRangeFrom; + } + + public void setExcludeByteRangeTo(BigDecimal excludeByteRangeTo) { + this.excludeByteRangeTo = excludeByteRangeTo; + } + + public BigDecimal getExcludeByteRangeTo() { + return excludeByteRangeTo; + } + } diff --git a/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/impl/SPSSFactoryImpl.java b/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/impl/SPSSFactoryImpl.java index 8e3bb7636..ac3d4c940 100644 --- a/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/impl/SPSSFactoryImpl.java +++ b/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/impl/SPSSFactoryImpl.java @@ -25,7 +25,7 @@ package at.gv.egovernment.moa.spss.api.impl; import java.io.InputStream; - +import java.math.BigDecimal; import java.math.BigInteger; import java.security.cert.X509Certificate; import java.util.Date; @@ -273,11 +273,15 @@ public class SPSSFactoryImpl extends SPSSFactory { public CMSDataObject createCMSDataObject( MetaInfo metaInfo, - CMSContent content) { + CMSContent content, + BigDecimal excludeByteRangeFrom, + BigDecimal excludeByteRangeTo) { CMSDataObjectImpl cmsDataObject = new CMSDataObjectImpl(); cmsDataObject.setMetaInfo(metaInfo); cmsDataObject.setContent(content); + cmsDataObject.setExcludeByteRangeFrom(excludeByteRangeFrom); + cmsDataObject.setExcludeByteRangeTo(excludeByteRangeTo); return cmsDataObject; } diff --git a/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateCMSSignatureRequestParser.java b/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateCMSSignatureRequestParser.java index 737915ecd..a8cae9c4e 100644 --- a/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateCMSSignatureRequestParser.java +++ b/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateCMSSignatureRequestParser.java @@ -25,6 +25,7 @@ package at.gv.egovernment.moa.spss.api.xmlbind; import java.io.InputStream; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; @@ -38,7 +39,6 @@ import at.gv.egovernment.moa.spss.api.cmssign.DataObjectInfo; import at.gv.egovernment.moa.spss.api.cmssign.SingleSignatureInfo; import at.gv.egovernment.moa.spss.api.cmsverify.CMSContent; import at.gv.egovernment.moa.spss.api.cmsverify.CMSDataObject; -import at.gv.egovernment.moa.spss.api.common.Content; import at.gv.egovernment.moa.spss.api.common.MetaInfo; import at.gv.egovernment.moa.util.Base64Utils; import at.gv.egovernment.moa.util.BoolUtils; @@ -71,6 +71,9 @@ public class CreateCMSSignatureRequestParser { private static final String META_INFO_XPATH = MOA + "MetaInfo"; private static final String CONTENT_XPATH = MOA + "Content"; private static final String BASE64_CONTENT_XPATH = MOA + "Base64Content"; + private static final String EXCLUDEBYTERANGE_FROM_XPATH = MOA + "ExcludedByteRange/" + MOA + "From"; + private static final String EXCLUDEBYTERANGE_TO_XPATH = MOA + "ExcludedByteRange/" + MOA + "To"; + /** The factory to create API objects. */ @@ -212,7 +215,18 @@ public class CreateCMSSignatureRequestParser { metaInfo = RequestParserUtils.parseMetaInfo(metaInfoElem); } - return factory.createCMSDataObject(metaInfo, content); + String excludeByteRangeFromStr = XPathUtils.getElementValue(dataObjectElem, EXCLUDEBYTERANGE_FROM_XPATH, null); + String excludeByteRangeToStr = XPathUtils.getElementValue(dataObjectElem, EXCLUDEBYTERANGE_TO_XPATH, null); + + BigDecimal excludeByteRangeFrom = null; + BigDecimal excludeByteRangeTo = null; + + if (excludeByteRangeFromStr != null) + excludeByteRangeFrom = new BigDecimal(excludeByteRangeFromStr); + if (excludeByteRangeToStr != null) + excludeByteRangeTo = new BigDecimal(excludeByteRangeToStr); + + return factory.createCMSDataObject(metaInfo, content, excludeByteRangeFrom, excludeByteRangeTo); } else { return null; diff --git a/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyCMSSignatureRequestParser.java b/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyCMSSignatureRequestParser.java index d50a17ffc..6209d8ef9 100644 --- a/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyCMSSignatureRequestParser.java +++ b/spss/server/serverlib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyCMSSignatureRequestParser.java @@ -25,6 +25,7 @@ package at.gv.egovernment.moa.spss.api.xmlbind; import java.io.InputStream; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -65,6 +66,9 @@ public class VerifyCMSSignatureRequestParser { private static final String META_INFO_XPATH = MOA + "MetaInfo"; private static final String CONTENT_XPATH = MOA + "Content"; private static final String BASE64_CONTENT_XPATH = MOA + "Base64Content"; + private static final String EXCLUDEBYTERANGE_FROM_XPATH = MOA + "ExcludedByteRange/" + MOA + "From"; + private static final String EXCLUDEBYTERANGE_TO_XPATH = MOA + "ExcludedByteRange/" + MOA + "To"; + /** The <code>SPSSFactory</code> for creating new API objects. */ private SPSSFactory factory = SPSSFactory.getInstance(); @@ -161,7 +165,20 @@ public class VerifyCMSSignatureRequestParser { metaInfo = RequestParserUtils.parseMetaInfo(metaInfoElem); } - return factory.createCMSDataObject(metaInfo, content); + String excludeByteRangeFromStr = XPathUtils.getElementValue(dataObjectElem, EXCLUDEBYTERANGE_FROM_XPATH, null); + String excludeByteRangeToStr = XPathUtils.getElementValue(dataObjectElem, EXCLUDEBYTERANGE_TO_XPATH, null); + + BigDecimal excludeByteRangeFrom = null; + BigDecimal excludeByteRangeTo = null; + + if (excludeByteRangeFromStr != null) + excludeByteRangeFrom = new BigDecimal(excludeByteRangeFromStr); + if (excludeByteRangeToStr != null) + excludeByteRangeTo = new BigDecimal(excludeByteRangeToStr); + + return factory.createCMSDataObject(metaInfo, content, excludeByteRangeFrom, excludeByteRangeTo); + + } else { return null; } |