/* * Created on 27.11.2003 * * (c) Stabsstelle IKT-Strategie des Bundes */ package at.gv.egovernment.moa.spss.slinterface.beans; import java.util.List; import org.w3c.dom.Document; import org.w3c.dom.Element; import at.gv.egovernment.moa.spss.slinterface.Constants; import at.gv.egovernment.moa.spss.slinterface.DOMUtils; /** * @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at) */ public class ChecksInfoBean { private static final String SIG_CHECK_ELEM_ = "SignatureCheck"; private static final String SIGMF_CHECK_ELEM_ = "SignatureManifestCheck"; private static final String XMLDSIGMF_CHECK_ELEM_ = "XMLDSIGManifestCheck"; private static final String CERT_CHECK_ELEM_ = "CertificateCheck"; private static final String CODE_ELEM_ = "Code"; private static final String INFO_ELEM_ = "Info"; private static final String FAILEDREF_ELEM_ = "FailedReference"; private static final String REFSIGREF_ELEM_ = "ReferringSigReference"; private Element sigCheckElem_; private int sigCheckFaildRefCount_; private Element sigMFCheckElem_; private int sigMFCheckFaildRefCount_; private List xmldsigMFCheckElems_; private int xmldsigMFCheckCount_; private int xmldsigMFCheckFaildRefCount_; private Element certCheckElem_; /** * Creates a bean with information about the checks executed for the verified xml signature. * * @pre slResponseDoc has been validated. */ public ChecksInfoBean(Document slResponseDoc) { Element verifyXMLResponseElem = slResponseDoc.getDocumentElement(); sigCheckElem_ = DOMUtils.getChildElem( verifyXMLResponseElem, Constants.NSURI_SL_11_, SIG_CHECK_ELEM_); sigMFCheckElem_ = DOMUtils.getChildElem( verifyXMLResponseElem, Constants.NSURI_SL_11_, SIGMF_CHECK_ELEM_); xmldsigMFCheckElems_ = DOMUtils.getChildElems( verifyXMLResponseElem, Constants.NSURI_SL_11_, XMLDSIGMF_CHECK_ELEM_, false); certCheckElem_ = DOMUtils.getChildElem( verifyXMLResponseElem, Constants.NSURI_SL_11_, CERT_CHECK_ELEM_); sigCheckFaildRefCount_ = 0; sigMFCheckFaildRefCount_ = 0; xmldsigMFCheckFaildRefCount_ = 0; xmldsigMFCheckCount_ = 0; } /* ---------------------------------------------------------------------------------------------------- */ public String getSigCheckCode() { return DOMUtils.getChildText(sigCheckElem_, Constants.NSURI_SL_11_, CODE_ELEM_); } /* ---------------------------------------------------------------------------------------------------- */ public void setSigCheckFailedRefCount(int count) { sigCheckFaildRefCount_ = count; } /* ---------------------------------------------------------------------------------------------------- */ public String getSigCheckFailedRef() { Element info = DOMUtils.getChildElem(sigCheckElem_, Constants.NSURI_SL_11_, INFO_ELEM_); if (info == null) return null; List failedRefElems = DOMUtils.getChildElems(info, Constants.NSURI_SL_11_, FAILEDREF_ELEM_, false); if (failedRefElems == null || failedRefElems.size() <= sigCheckFaildRefCount_) return null; return DOMUtils.getText((Element)failedRefElems.get(sigCheckFaildRefCount_)); } /* ---------------------------------------------------------------------------------------------------- */ public String getSigMFCheckCode() { return DOMUtils.getChildText(sigMFCheckElem_, Constants.NSURI_SL_11_, CODE_ELEM_); } /* ---------------------------------------------------------------------------------------------------- */ public void setSigMFCheckFailedRefCount(int count) { sigMFCheckFaildRefCount_ = count; } /* ---------------------------------------------------------------------------------------------------- */ public String getSigMFCheckFailedRef() { Element info = DOMUtils.getChildElem(sigMFCheckElem_, Constants.NSURI_SL_11_, INFO_ELEM_); if (info == null) return null; List failedRefElems = DOMUtils.getChildElems(info, Constants.NSURI_SL_11_, FAILEDREF_ELEM_, false); if (failedRefElems == null || failedRefElems.size() <= sigMFCheckFaildRefCount_) return null; return DOMUtils.getText((Element)failedRefElems.get(sigMFCheckFaildRefCount_)); } /* ---------------------------------------------------------------------------------------------------- */ public void setXmldsigMFCheckCount(int count) { xmldsigMFCheckCount_ = count; } /* ---------------------------------------------------------------------------------------------------- */ public void setXmldsigMFCheckFailedRefCount(int count) { xmldsigMFCheckFaildRefCount_ = count; } /* ---------------------------------------------------------------------------------------------------- */ public String getXmldsigMFCheckCode() { Element xmldsigMFCheckElem = (Element)xmldsigMFCheckElems_.get(xmldsigMFCheckCount_); return DOMUtils.getChildText(xmldsigMFCheckElem, Constants.NSURI_SL_11_, CODE_ELEM_); } /* ---------------------------------------------------------------------------------------------------- */ public String getXmldsigMFCheckFailedRef() { Element xmldsigMFCheckElem = (Element)xmldsigMFCheckElems_.get(xmldsigMFCheckCount_); Element info = DOMUtils.getChildElem(xmldsigMFCheckElem, Constants.NSURI_SL_11_, INFO_ELEM_); if (info == null) return null; List failedRefElems = DOMUtils.getChildElems(info, Constants.NSURI_SL_11_, FAILEDREF_ELEM_, false); if (failedRefElems == null || failedRefElems.size() <= xmldsigMFCheckFaildRefCount_) return null; return DOMUtils.getText((Element)failedRefElems.get(xmldsigMFCheckFaildRefCount_)); } /* ---------------------------------------------------------------------------------------------------- */ public String getXmldsigMFCheckReferringSigRef() { Element xmldsigMFCheckElem = (Element)xmldsigMFCheckElems_.get(xmldsigMFCheckCount_); Element info = DOMUtils.getChildElem(xmldsigMFCheckElem, Constants.NSURI_SL_11_, INFO_ELEM_); if (info == null) return null; return DOMUtils.getChildText(info, Constants.NSURI_SL_11_, REFSIGREF_ELEM_); } /* ---------------------------------------------------------------------------------------------------- */ public String getCertCheckCode() { return DOMUtils.getChildText(certCheckElem_, Constants.NSURI_SL_10_, CODE_ELEM_); } }