diff options
Diffstat (limited to 'id/server/idserverlib')
| -rw-r--r-- | id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/VerifyXMLSignatureResponseParser.java | 61 | 
1 files changed, 34 insertions, 27 deletions
| diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/VerifyXMLSignatureResponseParser.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/VerifyXMLSignatureResponseParser.java index 4c49afb76..995c9aba5 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/VerifyXMLSignatureResponseParser.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/VerifyXMLSignatureResponseParser.java @@ -11,6 +11,7 @@ import at.gv.egovernment.moa.id.*;  import at.gv.egovernment.moa.id.auth.data.VerifyXMLSignatureResponse;  import at.gv.egovernment.moa.util.Constants;  import at.gv.egovernment.moa.util.DOMUtils; +import at.gv.egovernment.moa.util.OutputXML2File;  import at.gv.egovernment.moa.util.XPathUtils;  /** @@ -60,6 +61,9 @@ public class VerifyXMLSignatureResponseParser {    /** Xpath expression to the XMLDSIGManifestCheckCode element */        private static final String XMLDSIG_MANIFEST_CHECK_CODE_XPATH =      ROOT + MOA + "XMLDSIGManifestCheck/" + MOA + "Code"; +  /** Xpath expression to the SignatureManifestCheckCode element */     +  private static final String SIGNATURE_MANIFEST_CHECK_CODE_XPATH =  +   ROOT + MOA + "SignatureManifestCheck/" + MOA + "Code";    /** Xpath expression to the CertificateCheckCode element */          private static final String CERTIFICATE_CHECK_CODE_XPATH =      ROOT + MOA + "CertificateCheck/" + MOA + "Code"; @@ -119,34 +123,37 @@ public class VerifyXMLSignatureResponseParser {     */    public VerifyXMLSignatureResponse parseData() throws ParseException { -     -     VerifyXMLSignatureResponse respData=new VerifyXMLSignatureResponse(); -     + +    VerifyXMLSignatureResponse respData=new VerifyXMLSignatureResponse(); +      try { -       respData.setXmlDsigSubjectName(XPathUtils.getElementValue(verifyXMLSignatureResponse,DSIG_SUBJECT_NAME_XPATH,"")); -       Element e = (Element)XPathUtils.selectSingleNode(verifyXMLSignatureResponse,QUALIFIED_CERTIFICATE_XPATH); -       respData.setQualifiedCertificate(e!=null); -        -       Base64InputStream in = new Base64InputStream(new ByteArrayInputStream(XPathUtils.getElementValue( -         verifyXMLSignatureResponse,DSIG_X509_CERTIFICATE_XPATH,"").getBytes("UTF-8")),true); -         -       respData.setX509certificate(new X509Certificate(in)); -			 Element publicAuthority = (Element)XPathUtils.selectSingleNode(verifyXMLSignatureResponse,PUBLIC_AUTHORITY_XPATH); -			 respData.setPublicAuthority(publicAuthority != null); -			 respData.setPublicAuthorityCode(XPathUtils.getElementValue(verifyXMLSignatureResponse,PUBLIC_AUTHORITY_CODE_XPATH,"")); -       respData.setSignatureCheckCode(new Integer(XPathUtils.getElementValue(verifyXMLSignatureResponse,SIGNATURE_CHECK_CODE_XPATH,"")).intValue()); -  -       String xmlDsigCheckCode = XPathUtils.getElementValue(verifyXMLSignatureResponse,XMLDSIG_MANIFEST_CHECK_CODE_XPATH,null); -     if (xmlDsigCheckCode!=null) -     {  -       respData.setXmlDSIGManigest(true); -       respData.setXmlDSIGManifestCheckCode(new Integer(xmlDsigCheckCode).intValue()); -     } -      else -       respData.setXmlDSIGManigest(false); -       respData.setCertificateCheckCode(new Integer(XPathUtils.getElementValue(verifyXMLSignatureResponse,CERTIFICATE_CHECK_CODE_XPATH,"")).intValue());              -   } -     catch (Throwable t) { +      respData.setXmlDsigSubjectName(XPathUtils.getElementValue(verifyXMLSignatureResponse,DSIG_SUBJECT_NAME_XPATH,"")); +      Element e = (Element)XPathUtils.selectSingleNode(verifyXMLSignatureResponse,QUALIFIED_CERTIFICATE_XPATH); +      respData.setQualifiedCertificate(e!=null); + +      Base64InputStream in = new Base64InputStream(new ByteArrayInputStream(XPathUtils.getElementValue( +        verifyXMLSignatureResponse,DSIG_X509_CERTIFICATE_XPATH,"").getBytes("UTF-8")),true); + +      respData.setX509certificate(new X509Certificate(in)); +      Element publicAuthority = (Element)XPathUtils.selectSingleNode(verifyXMLSignatureResponse,PUBLIC_AUTHORITY_XPATH); +      respData.setPublicAuthority(publicAuthority != null); +      respData.setPublicAuthorityCode(XPathUtils.getElementValue(verifyXMLSignatureResponse,PUBLIC_AUTHORITY_CODE_XPATH,"")); +      respData.setSignatureCheckCode(new Integer(XPathUtils.getElementValue(verifyXMLSignatureResponse,SIGNATURE_CHECK_CODE_XPATH,"")).intValue()); + +      String xmlDsigCheckCode = XPathUtils.getElementValue(verifyXMLSignatureResponse,XMLDSIG_MANIFEST_CHECK_CODE_XPATH,null); +      if (xmlDsigCheckCode!=null) {  +        respData.setXmlDSIGManigest(true); +        respData.setXmlDSIGManifestCheckCode(new Integer(xmlDsigCheckCode).intValue()); +      } else { +        respData.setXmlDSIGManigest(false); +      } +      String signatureManifestCheckCode = XPathUtils.getElementValue(verifyXMLSignatureResponse,SIGNATURE_MANIFEST_CHECK_CODE_XPATH,null); +      if (signatureManifestCheckCode != null) { +        respData.setSignatureManifestCheckCode(new Integer(signatureManifestCheckCode).intValue()); +      } +      respData.setCertificateCheckCode(new Integer(XPathUtils.getElementValue(verifyXMLSignatureResponse,CERTIFICATE_CHECK_CODE_XPATH,"")).intValue());              +    } +    catch (Throwable t) {        throw new ParseException("parser.01", null, t);      }              return respData; | 
