diff options
Diffstat (limited to 'moaSig/moa-asic/src/main/java/at/gv/egiz/asic/xmlbind/VerifyASICSignatureResponseBuilder.java')
-rw-r--r-- | moaSig/moa-asic/src/main/java/at/gv/egiz/asic/xmlbind/VerifyASICSignatureResponseBuilder.java | 206 |
1 files changed, 105 insertions, 101 deletions
diff --git a/moaSig/moa-asic/src/main/java/at/gv/egiz/asic/xmlbind/VerifyASICSignatureResponseBuilder.java b/moaSig/moa-asic/src/main/java/at/gv/egiz/asic/xmlbind/VerifyASICSignatureResponseBuilder.java index 67d8b05..34744ef 100644 --- a/moaSig/moa-asic/src/main/java/at/gv/egiz/asic/xmlbind/VerifyASICSignatureResponseBuilder.java +++ b/moaSig/moa-asic/src/main/java/at/gv/egiz/asic/xmlbind/VerifyASICSignatureResponseBuilder.java @@ -21,168 +21,172 @@ * that you distribute must include a readable copy of the "NOTICE" text file. */ - package at.gv.egiz.asic.xmlbind; +import java.util.Iterator; +import java.util.List; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + import at.gv.egiz.asic.api.ASiCVerificationResult; import at.gv.egiz.asic.impl.AsicSignedFilesContainer; 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.cmsverify.VerifyCMSSignatureResponse; import at.gv.egovernment.moa.spss.api.cmsverify.VerifyCMSSignatureResponseElement; import at.gv.egovernment.moa.spss.api.common.CheckResult; import at.gv.egovernment.moa.spss.api.common.SignerInfo; import at.gv.egovernment.moa.spss.api.xmlbind.ResponseBuilderUtils; +import at.gv.egovernment.moa.spss.api.xmlbind.VerifyCMSSignatureResponseBuilder; import at.gv.egovernment.moa.spss.api.xmlbind.VerifyXMLSignatureResponseBuilder; import at.gv.egovernment.moa.spss.api.xmlverify.AdESFormResults; -import at.gv.egovernment.moa.spss.api.xmlbind.VerifyCMSSignatureResponseBuilder; import at.gv.egovernment.moaspss.util.Constants; import at.gv.egovernment.moaspss.util.MiscUtil; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -import java.util.Iterator; -import java.util.List; - /** - * Convert a <code>VerifyCMSSignatureResponse</code> API object into its - * XML representation, according to the MOA XML schema. - * + * Convert a <code>VerifyCMSSignatureResponse</code> API object into its XML + * representation, according to the MOA XML schema. + * * @author Patrick Peck * @version $Id$ */ public class VerifyASICSignatureResponseBuilder { /** The XML document containing the response element. */ - private Document responseDoc; + private final Document responseDoc; /** The response <code>VerifyCMSSignatureResponse</code> DOM element. */ - private Element responseElem; + private final Element responseElem; /** * Create a new <code>VerifyCMSSignatureResponseBuilder</code>: * - * @throws MOASystemException An error occurred setting up the resulting - * XML document. + * @throws MOASystemException An error occurred setting up the resulting XML + * document. */ public VerifyASICSignatureResponseBuilder() throws MOASystemException { responseDoc = - ResponseBuilderUtils.createResponse("VerifyASICSignatureResponse"); + ResponseBuilderUtils.createResponse("VerifyASICSignatureResponse"); responseElem = responseDoc.getDocumentElement(); } - + /** - * Build a document containing a <code>VerifyCMSSignatureResponse</code> - * DOM element being the XML representation of the given + * Build a document containing a <code>VerifyCMSSignatureResponse</code> DOM + * element being the XML representation of the given * <code>VerifyCMSSignatureResponse</code> API object. - * - * @param response The <code>VerifyCMSSignatureResponse</code> to convert - * to XML. - * @return A document containing the <code>VerifyCMSSignatureResponse</code> - * DOM element. + * + * @param response The <code>VerifyCMSSignatureResponse</code> to convert to + * XML. + * @return A document containing the <code>VerifyCMSSignatureResponse</code> DOM + * element. * @throws MOAApplicationException An error occurred building the response. */ public Document build(List<ASiCVerificationResult> results) - throws MOAException { + throws MOAException { - Iterator<ASiCVerificationResult> iter = results.iterator(); + final Iterator<ASiCVerificationResult> iter = results.iterator(); - while(iter.hasNext()) { - ASiCVerificationResult aSiCVerificationResult = iter.next(); - addASiCResultElement(aSiCVerificationResult); + while (iter.hasNext()) { + final ASiCVerificationResult aSiCVerificationResult = iter.next(); + addASiCResultElement(aSiCVerificationResult); } - + return responseDoc; } - private void addASiCResultElement(ASiCVerificationResult aSiCVerificationResult) - throws MOAException { - Element asiCSignatureResultElem = responseDoc.createElementNS(Constants.MOA_NS_URI, "ASiCSignatureResult"); - - Iterator<AsicSignedFilesContainer> signedFiles = aSiCVerificationResult.getSignedFiles().iterator(); - while (signedFiles.hasNext()) { - AsicSignedFilesContainer signedFile = signedFiles.next(); - Element signedFilesElem = responseDoc.createElementNS(Constants.MOA_NS_URI, "signedFiles"); - signedFilesElem.setTextContent(signedFile.getUri()); - if (MiscUtil.isNotEmpty(signedFile.getHashAlg())) - signedFilesElem.setAttribute("hashAlgorithm", signedFile.getHashAlg()); - - asiCSignatureResultElem.appendChild(signedFilesElem); - } - - if(aSiCVerificationResult.getXmlResult() != null) { - VerifyXMLSignatureResponseBuilder verifyXMLSignatureResponseBuilder = new VerifyXMLSignatureResponseBuilder(this.responseDoc, "XMLSignatureResult", true); - asiCSignatureResultElem.appendChild(verifyXMLSignatureResponseBuilder.buildElement(aSiCVerificationResult.getXmlResult())); - } else if(aSiCVerificationResult.getCmsResult() != null) { - VerifyCMSSignatureResponseBuilder verifyCMSSignatureResponseBuilder = new VerifyCMSSignatureResponseBuilder(this.responseDoc, "CMSSignatureResult", true); - asiCSignatureResultElem.appendChild(verifyCMSSignatureResponseBuilder.buildElement(aSiCVerificationResult.getCmsResult())); - } - - responseElem.appendChild(asiCSignatureResultElem); + private void addASiCResultElement(ASiCVerificationResult aSiCVerificationResult) + throws MOAException { + final Element asiCSignatureResultElem = responseDoc.createElementNS(Constants.MOA_NS_URI, + "ASiCSignatureResult"); + + final Iterator<AsicSignedFilesContainer> signedFiles = aSiCVerificationResult.getSignedFiles().iterator(); + while (signedFiles.hasNext()) { + final AsicSignedFilesContainer signedFile = signedFiles.next(); + final Element signedFilesElem = responseDoc.createElementNS(Constants.MOA_NS_URI, "signedFiles"); + signedFilesElem.setTextContent(signedFile.getUri()); + if (MiscUtil.isNotEmpty(signedFile.getHashAlg())) { + signedFilesElem.setAttribute("hashAlgorithm", signedFile.getHashAlg()); + } + + asiCSignatureResultElem.appendChild(signedFilesElem); + } + + if (aSiCVerificationResult.getXmlResult() != null) { + final VerifyXMLSignatureResponseBuilder verifyXMLSignatureResponseBuilder = + new VerifyXMLSignatureResponseBuilder(this.responseDoc, "XMLSignatureResult", true); + asiCSignatureResultElem.appendChild(verifyXMLSignatureResponseBuilder.buildElement( + aSiCVerificationResult.getXmlResult())); + } else if (aSiCVerificationResult.getCmsResult() != null) { + final VerifyCMSSignatureResponseBuilder verifyCMSSignatureResponseBuilder = + new VerifyCMSSignatureResponseBuilder(this.responseDoc, "CMSSignatureResult", true); + asiCSignatureResultElem.appendChild(verifyCMSSignatureResponseBuilder.buildElement( + aSiCVerificationResult.getCmsResult())); } + responseElem.appendChild(asiCSignatureResultElem); + } + /** * Add an element to the response. - * + * * @param responseElement The element to add to the response. * @throws MOAApplicationException An error occurred adding the element. */ private void addResponseElement(VerifyCMSSignatureResponseElement responseElement) - throws MOAApplicationException { + throws MOAApplicationException { + + final SignerInfo signerInfo = responseElement.getSignerInfo(); + final CheckResult signatureCheck = responseElement.getSignatureCheck(); + final CheckResult certCheck = responseElement.getCertificateCheck(); - SignerInfo signerInfo = responseElement.getSignerInfo(); - CheckResult signatureCheck = responseElement.getSignatureCheck(); - CheckResult certCheck = responseElement.getCertificateCheck(); - ResponseBuilderUtils.addSignerInfo( - responseDoc, - responseElem, - signerInfo.getSignerCertificate(), - signerInfo.isQualifiedCertificate(), - signerInfo.getQCSource(), - signerInfo.isPublicAuthority(), - signerInfo.getPublicAuhtorityID(), - signerInfo.isSSCD(), - signerInfo.getSSCDSource(), - signerInfo.getIssuerCountryCode(), - signerInfo.getTslInfos()); + responseDoc, + responseElem, + signerInfo.getSignerCertificate(), + signerInfo.isQualifiedCertificate(), + signerInfo.getQCSource(), + signerInfo.isPublicAuthority(), + signerInfo.getPublicAuhtorityID(), + signerInfo.isSSCD(), + signerInfo.getSSCDSource(), + signerInfo.getIssuerCountryCode(), + signerInfo.getTslInfos()); ResponseBuilderUtils.addSignatureAlgorithm(responseDoc, - responseElem, - responseElement.getSignatureAlgorithm()); - + responseElem, + responseElement.getSignatureAlgorithm()); + ResponseBuilderUtils.addCodeInfoElement( - responseDoc, - responseElem, - "SignatureCheck", - signatureCheck.getCode(), - signatureCheck.getInfo()); + responseDoc, + responseElem, + "SignatureCheck", + signatureCheck.getCode(), + signatureCheck.getInfo()); ResponseBuilderUtils.addCodeInfoElement( - responseDoc, - responseElem, - "CertificateCheck", - certCheck.getCode(), - certCheck.getInfo()); - + responseDoc, + responseElem, + "CertificateCheck", + certCheck.getCode(), + certCheck.getInfo()); if (responseElement.getAdESFormResults() != null) { - Iterator formIterator = responseElement.getAdESFormResults().iterator(); - - while (formIterator.hasNext()) { - AdESFormResults adESFormResult = (AdESFormResults) formIterator.next(); - // add the CertificateCheck - ResponseBuilderUtils.addFormCheckElement(responseDoc, responseElem, "FormCheckResult", - adESFormResult.getCode().intValue(), adESFormResult.getName()); - - } - } - - if(responseElement.getExtendedCertificateCheck() != null) { - ResponseBuilderUtils.addExtendendResult(responseDoc, responseElem, responseElement.getExtendedCertificateCheck()); - } - + final Iterator formIterator = responseElement.getAdESFormResults().iterator(); + + while (formIterator.hasNext()) { + final AdESFormResults adESFormResult = (AdESFormResults) formIterator.next(); + // add the CertificateCheck + ResponseBuilderUtils.addFormCheckElement(responseDoc, responseElem, "FormCheckResult", + adESFormResult.getCode().intValue(), adESFormResult.getName()); + + } + } + + if (responseElement.getExtendedCertificateCheck() != null) { + ResponseBuilderUtils.addExtendendResult(responseDoc, responseElem, responseElement + .getExtendedCertificateCheck()); + } + } } |