/* * 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 slVerifyXMLSignatureRequest 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; } }