aboutsummaryrefslogtreecommitdiff
path: root/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/SL2MOA.java
diff options
context:
space:
mode:
Diffstat (limited to 'spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/SL2MOA.java')
-rw-r--r--spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/SL2MOA.java88
1 files changed, 88 insertions, 0 deletions
diff --git a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/SL2MOA.java b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/SL2MOA.java
new file mode 100644
index 000000000..11855242e
--- /dev/null
+++ b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/transformers/SL2MOA.java
@@ -0,0 +1,88 @@
+/*
+ * Created on 20.11.2003
+ *
+ * (c) Stabsstelle IKT-Strategie des Bundes
+ */
+package at.gv.egovernment.moa.spss.slinterface.transformers;
+
+import java.util.HashMap;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+import at.gv.egovernment.moa.spss.slinterface.Constants;
+
+/**
+ * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at)
+ */
+public class SL2MOA
+{
+ /**
+ * Transforms an SL VerifyXMLSignatureRequest into a MOA VerifyXMLSignatureRequest.
+ *
+ * @param slVerifyXMLSignatureRequest The SL VerifyXMLSignatureRequest to be transformed.
+ *
+ * @return the specified request document, transformed into a MOA VerifyXMLSignatureRequest. Please note
+ * that <code>slVerifyXMLSignatureRequest</code> is modified into the moa request.
+ *
+ * @pre slVerifyXMLSignatureRequest is a valid instance of the SL Schema (version 1.2 or 1.1).
+ */
+ public static Document toMoaVerifyXMLSignatureRequest(Document slVerifyXMLSignatureRequest,
+ String trustProfileID)
+ {
+ // Namespace to namespace prefix mapping
+ HashMap prefixMap = new HashMap(4);
+ prefixMap.put(Constants.NSURI_SL_10_, Constants.NSPRE_SL_10_);
+ prefixMap.put(Constants.NSURI_SL_11_, Constants.NSPRE_SL_11_);
+ prefixMap.put(Constants.NSURI_SL_12_, Constants.NSPRE_SL_12_);
+ prefixMap.put(Constants.NSURI_MOA_12_, Constants.NSPRE_MOA_12_);
+
+ // Namespaces to be changed
+ HashMap nsTransforms = new HashMap();
+ nsTransforms.put(Constants.NSURI_SL_10_, Constants.NSURI_MOA_12_);
+ nsTransforms.put(Constants.NSURI_SL_11_, Constants.NSURI_MOA_12_);
+ nsTransforms.put(Constants.NSURI_SL_12_, Constants.NSURI_MOA_12_);
+
+ // Names to be changed
+ HashMap nameTransforms = new HashMap();
+ nameTransforms.put(
+ new QName(Constants.NSURI_SL_11_, "SignatureInfo"),
+ new QName(Constants.NSURI_MOA_12_,"VerifySignatureInfo"));
+ nameTransforms.put(
+ new QName(Constants.NSURI_SL_12_, "SignatureInfo"),
+ new QName(Constants.NSURI_MOA_12_,"VerifySignatureInfo"));
+ nameTransforms.put(
+ new QName(Constants.NSURI_SL_11_, "SignatureEnvironment"),
+ new QName(Constants.NSURI_MOA_12_,"VerifySignatureEnvironment"));
+ nameTransforms.put(
+ new QName(Constants.NSURI_SL_12_, "SignatureEnvironment"),
+ new QName(Constants.NSURI_MOA_12_,"VerifySignatureEnvironment"));
+ nameTransforms.put(
+ new QName(Constants.NSURI_SL_11_, "SignatureLocation"),
+ new QName(Constants.NSURI_MOA_12_,"VerifySignatureLocation"));
+ nameTransforms.put(
+ new QName(Constants.NSURI_SL_12_, "SignatureLocation"),
+ new QName(Constants.NSURI_MOA_12_,"VerifySignatureLocation"));
+ nameTransforms.put(
+ new QName(Constants.NSURI_SL_11_, "Supplement"),
+ new QName(Constants.NSURI_MOA_12_,"SupplementProfile"));
+ nameTransforms.put(
+ new QName(Constants.NSURI_SL_12_, "Supplement"),
+ new QName(Constants.NSURI_MOA_12_,"SupplementProfile"));
+
+ Element verifyRequestElem = slVerifyXMLSignatureRequest.getDocumentElement();
+ verifyRequestElem.setAttributeNS(Constants.NSURI_NAMESPACES_,
+ "xmlns:" + Constants.NSPRE_MOA_12_, Constants.NSURI_MOA_12_);
+
+ // Convert SL request into MOA request
+ verifyRequestElem = Utils.transformDeep(verifyRequestElem, prefixMap, nsTransforms, nameTransforms);
+
+ // Add trust profile ID element
+ Element trustProfileIDElem = slVerifyXMLSignatureRequest.createElementNS(
+ Constants.NSURI_MOA_12_, Constants.NSPRE_MOA_12_ + ":TrustProfileID");
+ trustProfileIDElem.appendChild(slVerifyXMLSignatureRequest.createTextNode(trustProfileID));
+ verifyRequestElem.appendChild(trustProfileIDElem);
+
+ return slVerifyXMLSignatureRequest;
+ }
+}