diff options
| author | gregor <gregor@d688527b-c9ab-4aba-bd8d-4036d912da1d> | 2003-11-26 17:08:12 +0000 | 
|---|---|---|
| committer | gregor <gregor@d688527b-c9ab-4aba-bd8d-4036d912da1d> | 2003-11-26 17:08:12 +0000 | 
| commit | cd3d7bc859c07dadb47219c1a38af1d3b8981a52 (patch) | |
| tree | a64d24d2980eeb1c5015fcc3130193f8c2c7d786 /spss.server/src/at/gv/egovernment | |
| parent | b548b9859413b3a974a5bad900c20fef4ae058d4 (diff) | |
| download | moa-id-spss-cd3d7bc859c07dadb47219c1a38af1d3b8981a52.tar.gz moa-id-spss-cd3d7bc859c07dadb47219c1a38af1d3b8981a52.tar.bz2 moa-id-spss-cd3d7bc859c07dadb47219c1a38af1d3b8981a52.zip | |
Zwischenstand Implementierung Feature 54.tags/Build-1.2.0.D02-svn
git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/trunk@63 d688527b-c9ab-4aba-bd8d-4036d912da1d
Diffstat (limited to 'spss.server/src/at/gv/egovernment')
8 files changed, 60 insertions, 6 deletions
| diff --git a/spss.server/src/at/gv/egovernment/moa/spss/api/SPSSFactory.java b/spss.server/src/at/gv/egovernment/moa/spss/api/SPSSFactory.java index dfa8927e1..e306127b3 100644 --- a/spss.server/src/at/gv/egovernment/moa/spss/api/SPSSFactory.java +++ b/spss.server/src/at/gv/egovernment/moa/spss/api/SPSSFactory.java @@ -832,6 +832,7 @@ public abstract class SPSSFactory {     * @param mimeType The MIME type part of the meta information.     * @param description Descriptive meta information. May be <code>null</code>.     * @param otherInfo XML meta information. May be <code>null</code>. +   * @param type Type information for XML signature creation. May be <code>null</code>.     * @return The <code>MetaInfo</code> object containing the above data.     *      * @pre mimeType != null && mimeType.length() > 0 @@ -841,7 +842,8 @@ public abstract class SPSSFactory {    public abstract MetaInfo createMetaInfo(      String mimeType,      String description, -    NodeList otherInfo); +    NodeList otherInfo, +    String type);    /**     * Create a <code>CanonicalizationTransform</code> type of <code>Transform</code>. diff --git a/spss.server/src/at/gv/egovernment/moa/spss/api/common/MetaInfo.java b/spss.server/src/at/gv/egovernment/moa/spss/api/common/MetaInfo.java index fea0a1b42..56a1793af 100644 --- a/spss.server/src/at/gv/egovernment/moa/spss/api/common/MetaInfo.java +++ b/spss.server/src/at/gv/egovernment/moa/spss/api/common/MetaInfo.java @@ -28,4 +28,10 @@ public interface MetaInfo {     * @return The elemental informations.     */      public NodeList getAnyElements(); +  /** +   * Gets the XML signature creation type information of the associated object. +   *  +   * @return the XML signature creation type information of the associated object. +   */ +  public String getType();  } diff --git a/spss.server/src/at/gv/egovernment/moa/spss/api/impl/MetaInfoImpl.java b/spss.server/src/at/gv/egovernment/moa/spss/api/impl/MetaInfoImpl.java index c435dd8fd..93aceb033 100644 --- a/spss.server/src/at/gv/egovernment/moa/spss/api/impl/MetaInfoImpl.java +++ b/spss.server/src/at/gv/egovernment/moa/spss/api/impl/MetaInfoImpl.java @@ -16,6 +16,8 @@ public class MetaInfoImpl implements MetaInfo {    private String description;    /** Descriptive XML content. */    private NodeList anyElements; +  /** Type information for XML signature creation */ +  private String type;    /**     * Sets the MIME type. @@ -56,4 +58,18 @@ public class MetaInfoImpl implements MetaInfo {      return anyElements;    } +  /** +   * Sets the XML signature creation type information. +   *  +   * @param type the XML signature creation type information to set. +   */ +  public void setType(String type) { +    this.type = type; +  } + +  public String getType() { +    return type; +  } + +  } diff --git a/spss.server/src/at/gv/egovernment/moa/spss/api/impl/SPSSFactoryImpl.java b/spss.server/src/at/gv/egovernment/moa/spss/api/impl/SPSSFactoryImpl.java index a953c2af3..bf15bf37e 100644 --- a/spss.server/src/at/gv/egovernment/moa/spss/api/impl/SPSSFactoryImpl.java +++ b/spss.server/src/at/gv/egovernment/moa/spss/api/impl/SPSSFactoryImpl.java @@ -472,11 +472,13 @@ public class SPSSFactoryImpl extends SPSSFactory {    public MetaInfo createMetaInfo(      String mimeType,      String description, -    NodeList otherInfo) { +    NodeList otherInfo, +    String type) {      MetaInfoImpl metaInfo = new MetaInfoImpl();      metaInfo.setMimeType(mimeType);      metaInfo.setDescription(description);      metaInfo.setAnyElements(otherInfo); +    metaInfo.setType(type);      return metaInfo;    } diff --git a/spss.server/src/at/gv/egovernment/moa/spss/api/xmlbind/RequestParserUtils.java b/spss.server/src/at/gv/egovernment/moa/spss/api/xmlbind/RequestParserUtils.java index a41b14df0..9e8c7d0e2 100644 --- a/spss.server/src/at/gv/egovernment/moa/spss/api/xmlbind/RequestParserUtils.java +++ b/spss.server/src/at/gv/egovernment/moa/spss/api/xmlbind/RequestParserUtils.java @@ -32,6 +32,7 @@ public class RequestParserUtils {    private static final String REFERENCE_ATTR_NAME = "Reference";    private static final String MIME_TYPE_XPATH = MOA + "MimeType";    private static final String DESCRIPTION_XPATH = MOA + "Description"; +  private static final String TYPE_XPATH = MOA + "Type";    private static final String XML_ASSOC_CONTENT_XPATH = MOA + "Content";    private static final String CONTENT_XPATH =      MOA + "Base64Content | " + MOA + "XMLContent |" + MOA + "LocRefContent"; @@ -71,8 +72,10 @@ public class RequestParserUtils {        XPathUtils.getElementValue(metaInfoElem, DESCRIPTION_XPATH, null);      NodeList anyOther =        XPathUtils.selectNodeList(metaInfoElem, ANY_OTHER_XPATH); +    String type = +      XPathUtils.getElementValue(metaInfoElem, TYPE_XPATH, null); -    return factory.createMetaInfo(mimeType, description, anyOther); +    return factory.createMetaInfo(mimeType, description, anyOther, type);    }    /** 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(); | 
