diff options
Diffstat (limited to 'moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind')
10 files changed, 446 insertions, 482 deletions
diff --git a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/CreatePDFRequest.java b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/CreatePDFRequest.java index 110665c..5628e4b 100644 --- a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/CreatePDFRequest.java +++ b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/CreatePDFRequest.java @@ -4,18 +4,18 @@ import java.util.ArrayList; import java.util.List; public class CreatePDFRequest { - private String keyIdentifier; - private List<PDFSignatureInfo> signatureInfoList = new ArrayList<PDFSignatureInfo>(); - - public CreatePDFRequest(String keyIdentifier) { - this.keyIdentifier = keyIdentifier; - } + private final String keyIdentifier; + private final List<PDFSignatureInfo> signatureInfoList = new ArrayList<>(); - public synchronized String getKeyIdentifier() { - return keyIdentifier; - } + public CreatePDFRequest(String keyIdentifier) { + this.keyIdentifier = keyIdentifier; + } - public synchronized List<PDFSignatureInfo> getSignatureInfoList() { - return signatureInfoList; - } + public synchronized String getKeyIdentifier() { + return keyIdentifier; + } + + public synchronized List<PDFSignatureInfo> getSignatureInfoList() { + return signatureInfoList; + } } diff --git a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/CreatePDFRespone.java b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/CreatePDFRespone.java index ef7e832..8cabc78 100644 --- a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/CreatePDFRespone.java +++ b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/CreatePDFRespone.java @@ -4,12 +4,12 @@ import java.util.ArrayList; import java.util.List; public class CreatePDFRespone { - private List<SignedPDFInfo> signatureInfoList = new ArrayList<SignedPDFInfo>(); - - public CreatePDFRespone() { - } - - public synchronized List<SignedPDFInfo> getSignatureInfoList() { - return signatureInfoList; - } + private final List<SignedPDFInfo> signatureInfoList = new ArrayList<>(); + + public CreatePDFRespone() { + } + + public synchronized List<SignedPDFInfo> getSignatureInfoList() { + return signatureInfoList; + } } diff --git a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/CreatePDFSignatureRequestParser.java b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/CreatePDFSignatureRequestParser.java index c6b2126..e483db8 100644 --- a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/CreatePDFSignatureRequestParser.java +++ b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/CreatePDFSignatureRequestParser.java @@ -37,106 +37,99 @@ import at.gv.egovernment.moaspss.util.XPathUtils; /** * A parser to parse <code>CreateCMSSignatureRequest</code> DOM trees into * <code>CreateCMSSignatureRequest</code> API objects. - * + * * @author Patrick Peck * @version $Id$ */ public class CreatePDFSignatureRequestParser { - // - // XPath expresssions to select elements in the CreateCMSSignatureRequest - // - private static final String MOA = Constants.MOA_PREFIX + ":"; - private static final String KEY_IDENTIFIER_XPATH = "/" + MOA + "CreatePDFSignatureRequest/" + MOA + "KeyIdentifier"; - private static final String SINGLE_SIGNATURE_INFO_XPATH = "/" + MOA + "CreatePDFSignatureRequest/" + MOA - + "SingleSignatureInfo"; - private static final String SIGNATURE_PROFILE_XPATH = MOA + "SignatureProfile"; - private static final String SIGNATURE_POSITION_XPATH = MOA + "SignaturePosition"; - private static final String SIGNATURE_ID_XPATH = MOA + "SignatureID"; - - private static final String PDF_DOCUMENT_XPATH = MOA + "PDFDocument"; - - /** - * Create a new <code>CreateCMSSignatureRequestParser</code>. - */ - public CreatePDFSignatureRequestParser() { - } - - /** - * Parse a <code>CreateCMSSignatureRequest</code> DOM element, as defined by - * the MOA schema. - * - * @param requestElem - * The <code>CreateCMSSignatureRequest</code> to parse. The - * request must have been successfully parsed against the schema - * for this method to succeed. - * @return A <code>CreateCMSSignatureRequest</code> API object containing - * the data from the DOM element. - * @throws MOAApplicationException - * An error occurred parsing the request. - */ - public CreatePDFRequest parse(Element requestElem) throws MOAApplicationException { - - String keyIdentifier = XPathUtils.getElementValue(requestElem, KEY_IDENTIFIER_XPATH, null); - - CreatePDFRequest createPDFRequest = new CreatePDFRequest(keyIdentifier); - parseSingleSignatureInfos(requestElem, createPDFRequest); - - return createPDFRequest; - } - - /** - * Parse all <code>SingleSignatureInfo</code> elements of the - * <code>CreateCMSSignatureRequest</code>. - * - * @param requestElem - * The <code>CreateCMSSignatureRequest</code> to parse. - * @return A <code>List</code> of <code>SingleSignatureInfo</code> API - * objects. - * @throws MOAApplicationException - * An error occurred parsing on of the - * <code>SingleSignatureInfo</code> elements. - */ - private void parseSingleSignatureInfos(Element requestElem, CreatePDFRequest createPDFRequest) - throws MOAApplicationException { - - NodeIterator sigInfoElems = XPathUtils.selectNodeIterator(requestElem, SINGLE_SIGNATURE_INFO_XPATH); - Element sigInfoElem; - - while ((sigInfoElem = (Element) sigInfoElems.nextNode()) != null) { - createPDFRequest.getSignatureInfoList().add(parsePDFSignatureInfo(sigInfoElem)); - } - } - - /** - * Parse a <code>SingleSignatureInfo</code> DOM element. - * - * @param sigInfoElem - * The <code>SingleSignatureInfo</code> DOM element to parse. - * @return A <code>SingleSignatureInfo</code> API object containing the - * information of <code>sigInfoElem</code>. - * @throws MOAApplicationException - * An error occurred parsing the - * <code>SingleSignatureInfo</code>. - */ - private PDFSignatureInfo parsePDFSignatureInfo(Element sigInfoElem) throws MOAApplicationException { - - String signatureProfile = XPathUtils.getElementValue(sigInfoElem, SIGNATURE_PROFILE_XPATH, null); - String signaturePosition = XPathUtils.getElementValue(sigInfoElem, SIGNATURE_POSITION_XPATH, null); - String signatureID = XPathUtils.getElementValue(sigInfoElem, SIGNATURE_ID_XPATH, null); - - - Element base64ContentElem = (Element) XPathUtils.selectSingleNode(sigInfoElem, PDF_DOCUMENT_XPATH); - String base64Str = DOMUtils.getText(base64ContentElem); - try { - byte[] inputPDF = Base64Utils.decode(base64Str, true); - PDFSignatureInfo PDFSignatureInfo = new PDFSignatureInfo(inputPDF, - signatureProfile, signaturePosition, signatureID); - - return PDFSignatureInfo; - } catch (IOException e) { - throw new MOAApplicationException("2244", null, e); - } - - } + // + // XPath expresssions to select elements in the CreateCMSSignatureRequest + // + private static final String MOA = Constants.MOA_PREFIX + ":"; + private static final String KEY_IDENTIFIER_XPATH = "/" + MOA + "CreatePDFSignatureRequest/" + MOA + + "KeyIdentifier"; + private static final String SINGLE_SIGNATURE_INFO_XPATH = "/" + MOA + "CreatePDFSignatureRequest/" + MOA + + "SingleSignatureInfo"; + private static final String SIGNATURE_PROFILE_XPATH = MOA + "SignatureProfile"; + private static final String SIGNATURE_POSITION_XPATH = MOA + "SignaturePosition"; + private static final String SIGNATURE_ID_XPATH = MOA + "SignatureID"; + + private static final String PDF_DOCUMENT_XPATH = MOA + "PDFDocument"; + + /** + * Create a new <code>CreateCMSSignatureRequestParser</code>. + */ + public CreatePDFSignatureRequestParser() { + } + + /** + * Parse a <code>CreateCMSSignatureRequest</code> DOM element, as defined by the + * MOA schema. + * + * @param requestElem The <code>CreateCMSSignatureRequest</code> to parse. The + * request must have been successfully parsed against the + * schema for this method to succeed. + * @return A <code>CreateCMSSignatureRequest</code> API object containing the + * data from the DOM element. + * @throws MOAApplicationException An error occurred parsing the request. + */ + public CreatePDFRequest parse(Element requestElem) throws MOAApplicationException { + + final String keyIdentifier = XPathUtils.getElementValue(requestElem, KEY_IDENTIFIER_XPATH, null); + + final CreatePDFRequest createPDFRequest = new CreatePDFRequest(keyIdentifier); + parseSingleSignatureInfos(requestElem, createPDFRequest); + + return createPDFRequest; + } + + /** + * Parse all <code>SingleSignatureInfo</code> elements of the + * <code>CreateCMSSignatureRequest</code>. + * + * @param requestElem The <code>CreateCMSSignatureRequest</code> to parse. + * @return A <code>List</code> of <code>SingleSignatureInfo</code> API objects. + * @throws MOAApplicationException An error occurred parsing on of the + * <code>SingleSignatureInfo</code> elements. + */ + private void parseSingleSignatureInfos(Element requestElem, CreatePDFRequest createPDFRequest) + throws MOAApplicationException { + + final NodeIterator sigInfoElems = XPathUtils.selectNodeIterator(requestElem, SINGLE_SIGNATURE_INFO_XPATH); + Element sigInfoElem; + + while ((sigInfoElem = (Element) sigInfoElems.nextNode()) != null) { + createPDFRequest.getSignatureInfoList().add(parsePDFSignatureInfo(sigInfoElem)); + } + } + + /** + * Parse a <code>SingleSignatureInfo</code> DOM element. + * + * @param sigInfoElem The <code>SingleSignatureInfo</code> DOM element to parse. + * @return A <code>SingleSignatureInfo</code> API object containing the + * information of <code>sigInfoElem</code>. + * @throws MOAApplicationException An error occurred parsing the + * <code>SingleSignatureInfo</code>. + */ + private PDFSignatureInfo parsePDFSignatureInfo(Element sigInfoElem) throws MOAApplicationException { + + final String signatureProfile = XPathUtils.getElementValue(sigInfoElem, SIGNATURE_PROFILE_XPATH, null); + final String signaturePosition = XPathUtils.getElementValue(sigInfoElem, SIGNATURE_POSITION_XPATH, null); + final String signatureID = XPathUtils.getElementValue(sigInfoElem, SIGNATURE_ID_XPATH, null); + + final Element base64ContentElem = (Element) XPathUtils.selectSingleNode(sigInfoElem, PDF_DOCUMENT_XPATH); + final String base64Str = DOMUtils.getText(base64ContentElem); + try { + final byte[] inputPDF = Base64Utils.decode(base64Str, true); + final PDFSignatureInfo PDFSignatureInfo = new PDFSignatureInfo(inputPDF, + signatureProfile, signaturePosition, signatureID); + + return PDFSignatureInfo; + } catch (final IOException e) { + throw new MOAApplicationException("2244", null, e); + } + + } }
\ No newline at end of file diff --git a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/CreatePDFSignatureResponseBuilder.java b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/CreatePDFSignatureResponseBuilder.java index bdb9a71..6f9880f 100644 --- a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/CreatePDFSignatureResponseBuilder.java +++ b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/CreatePDFSignatureResponseBuilder.java @@ -39,117 +39,114 @@ import at.gv.egovernment.moaspss.util.Constants; /** * Convert a <code>CreateCMSSignatureResponse</code> API object into its XML * representation, according to the MOA XML schema. - * + * * @version $Id$ */ public class CreatePDFSignatureResponseBuilder { - private static final String MOA_NS_URI = Constants.MOA_NS_URI; - - private static final Logger logger = LoggerFactory.getLogger(CreatePDFSignatureResponseBuilder.class); - - /** The XML document containing the response element. */ - private Document responseDoc; - /** The response <code>CreateCMSSignatureResponse</code> DOM element. */ - private Element responseElem; - - /** - * Create a new <code>CreateCMSSignatureResponseBuilder</code>: - * - * @throws MOASystemException - * An error occurred setting up the resulting XML document. - */ - public CreatePDFSignatureResponseBuilder() throws MOASystemException { - responseDoc = ResponseBuilderUtils.createResponse("CreatePDFSignatureResponse"); - responseElem = responseDoc.getDocumentElement(); - } - - /** - * Build a document containing a <code>CreateCMSSignatureResponse</code> DOM - * element being the XML representation of the given - * <code>CreateCMSSignatureResponse</code> API object. - * - * @param response - * The <code>CreateCMSSignatureResponse</code> to convert to XML. - * @return A document containing the <code>CreateCMSSignatureResponse</code> - * DOM element. - */ - public Document build(CreatePDFRespone response) { - Iterator<SignedPDFInfo> iter = response.getSignatureInfoList().iterator(); - - while (iter.hasNext()) { - SignedPDFInfo signedPDFInfo = iter.next(); - addPDFSignature(signedPDFInfo); - } - - return responseDoc; - } - - /** - * Add a <code>CMSSignature</code> element to the response. - * - * @param cmsSignatureResponse - * The content to put under the <code>CMSSignature</code> - * element. - */ - private void addPDFSignature(SignedPDFInfo signedPDFInfo) { - Element pdfSignature = responseDoc.createElementNS(MOA_NS_URI, "PDFSignature"); - - if(signedPDFInfo.getSignatureID() != null) { - Element signatureID = responseDoc.createElementNS(MOA_NS_URI, "SignatureID"); - signatureID.setTextContent(signedPDFInfo.getSignatureID()); - pdfSignature.appendChild(signatureID); - } - - switch (signedPDFInfo.getResponseType()) { - case SignedPDFInfo.SUCCESS_SIGNATURE: - pdfSignature.appendChild(addSuccessSignature(signedPDFInfo)); - break; - - default: - pdfSignature.appendChild(addErrorResponse(signedPDFInfo)); - break; - } - - responseElem.appendChild(pdfSignature); - } - - private Element addSuccessSignature(SignedPDFInfo signedPDFInfo) { - try { - String base64Value = Base64Utils.encode(signedPDFInfo.getPdfDocument()); - Element cmsSignature = responseDoc.createElementNS(MOA_NS_URI, "PDFSignature"); - cmsSignature.setTextContent(base64Value); - - return cmsSignature; - } catch (IOException e) { - logger.error("Failed to encode pdf signature", e); - signedPDFInfo.setErrorCode(2300); - signedPDFInfo.setErrorInfo("Failed to encode the signed document"); - return addErrorResponse(signedPDFInfo); - } - - - } - - /** - * Add a <code>ErrorResponse</code> element to the response. - * - * @param errorResponse - * The API object containing the information to put into the - * <code>ErrorResponse</code> DOM element. - */ - private Element addErrorResponse(SignedPDFInfo signedPDFInfo) { - Element errorElem = responseDoc.createElementNS(MOA_NS_URI, "ErrorResponse"); - Element errorCodeElem = responseDoc.createElementNS(MOA_NS_URI, "ErrorCode"); - Element infoElem = responseDoc.createElementNS(MOA_NS_URI, "Info"); - String errorCodeStr = Integer.toString(signedPDFInfo.getErrorCode()); - - errorCodeElem.appendChild(responseDoc.createTextNode(errorCodeStr)); - errorElem.appendChild(errorCodeElem); - infoElem.appendChild(responseDoc.createTextNode(signedPDFInfo.getErrorInfo())); - errorElem.appendChild(errorCodeElem); - errorElem.appendChild(infoElem); - - return errorElem; - } + private static final String MOA_NS_URI = Constants.MOA_NS_URI; + + private static final Logger logger = LoggerFactory.getLogger(CreatePDFSignatureResponseBuilder.class); + + /** The XML document containing the response element. */ + private final Document responseDoc; + /** The response <code>CreateCMSSignatureResponse</code> DOM element. */ + private final Element responseElem; + + /** + * Create a new <code>CreateCMSSignatureResponseBuilder</code>: + * + * @throws MOASystemException An error occurred setting up the resulting XML + * document. + */ + public CreatePDFSignatureResponseBuilder() throws MOASystemException { + responseDoc = ResponseBuilderUtils.createResponse("CreatePDFSignatureResponse"); + responseElem = responseDoc.getDocumentElement(); + } + + /** + * Build a document containing a <code>CreateCMSSignatureResponse</code> DOM + * element being the XML representation of the given + * <code>CreateCMSSignatureResponse</code> API object. + * + * @param response The <code>CreateCMSSignatureResponse</code> to convert to + * XML. + * @return A document containing the <code>CreateCMSSignatureResponse</code> DOM + * element. + */ + public Document build(CreatePDFRespone response) { + final Iterator<SignedPDFInfo> iter = response.getSignatureInfoList().iterator(); + + while (iter.hasNext()) { + final SignedPDFInfo signedPDFInfo = iter.next(); + addPDFSignature(signedPDFInfo); + } + + return responseDoc; + } + + /** + * Add a <code>CMSSignature</code> element to the response. + * + * @param cmsSignatureResponse The content to put under the + * <code>CMSSignature</code> element. + */ + private void addPDFSignature(SignedPDFInfo signedPDFInfo) { + final Element pdfSignature = responseDoc.createElementNS(MOA_NS_URI, "PDFSignature"); + + if (signedPDFInfo.getSignatureID() != null) { + final Element signatureID = responseDoc.createElementNS(MOA_NS_URI, "SignatureID"); + signatureID.setTextContent(signedPDFInfo.getSignatureID()); + pdfSignature.appendChild(signatureID); + } + + switch (signedPDFInfo.getResponseType()) { + case SignedPDFInfo.SUCCESS_SIGNATURE: + pdfSignature.appendChild(addSuccessSignature(signedPDFInfo)); + break; + + default: + pdfSignature.appendChild(addErrorResponse(signedPDFInfo)); + break; + } + + responseElem.appendChild(pdfSignature); + } + + private Element addSuccessSignature(SignedPDFInfo signedPDFInfo) { + try { + final String base64Value = Base64Utils.encode(signedPDFInfo.getPdfDocument()); + final Element cmsSignature = responseDoc.createElementNS(MOA_NS_URI, "PDFSignature"); + cmsSignature.setTextContent(base64Value); + + return cmsSignature; + } catch (final IOException e) { + logger.error("Failed to encode pdf signature", e); + signedPDFInfo.setErrorCode(2300); + signedPDFInfo.setErrorInfo("Failed to encode the signed document"); + return addErrorResponse(signedPDFInfo); + } + + } + + /** + * Add a <code>ErrorResponse</code> element to the response. + * + * @param errorResponse The API object containing the information to put into + * the <code>ErrorResponse</code> DOM element. + */ + private Element addErrorResponse(SignedPDFInfo signedPDFInfo) { + final Element errorElem = responseDoc.createElementNS(MOA_NS_URI, "ErrorResponse"); + final Element errorCodeElem = responseDoc.createElementNS(MOA_NS_URI, "ErrorCode"); + final Element infoElem = responseDoc.createElementNS(MOA_NS_URI, "Info"); + final String errorCodeStr = Integer.toString(signedPDFInfo.getErrorCode()); + + errorCodeElem.appendChild(responseDoc.createTextNode(errorCodeStr)); + errorElem.appendChild(errorCodeElem); + infoElem.appendChild(responseDoc.createTextNode(signedPDFInfo.getErrorInfo())); + errorElem.appendChild(errorCodeElem); + errorElem.appendChild(infoElem); + + return errorElem; + } } diff --git a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/PDFSignatureInfo.java b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/PDFSignatureInfo.java index fd2be7c..3fe8e82 100644 --- a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/PDFSignatureInfo.java +++ b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/PDFSignatureInfo.java @@ -1,33 +1,33 @@ package at.gv.egovernment.moa.spss.server.xmlbind; public class PDFSignatureInfo { - private String signatureProfile = null; - private String signaturePosition = null; - private String signatureID = null; - private byte[] pdfDocument = null; - - public PDFSignatureInfo(byte[] pdfDocument, - String signatureProfile, String signaturePosition, - String signatureID) { - this.pdfDocument = pdfDocument; - this.signatureProfile = signatureProfile; - this.signaturePosition = signaturePosition; - this.signatureID = signatureID; - } + private String signatureProfile = null; + private String signaturePosition = null; + private String signatureID = null; + private byte[] pdfDocument = null; - public synchronized String getSignatureProfile() { - return signatureProfile; - } + public PDFSignatureInfo(byte[] pdfDocument, + String signatureProfile, String signaturePosition, + String signatureID) { + this.pdfDocument = pdfDocument; + this.signatureProfile = signatureProfile; + this.signaturePosition = signaturePosition; + this.signatureID = signatureID; + } - public synchronized String getSignaturePosition() { - return signaturePosition; - } + public synchronized String getSignatureProfile() { + return signatureProfile; + } - public synchronized String getSignatureID() { - return signatureID; - } + public synchronized String getSignaturePosition() { + return signaturePosition; + } - public synchronized byte[] getPdfDocument() { - return pdfDocument; - } + public synchronized String getSignatureID() { + return signatureID; + } + + public synchronized byte[] getPdfDocument() { + return pdfDocument; + } } diff --git a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/SignedPDFInfo.java b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/SignedPDFInfo.java index a950006..b6409f1 100644 --- a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/SignedPDFInfo.java +++ b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/SignedPDFInfo.java @@ -1,53 +1,53 @@ package at.gv.egovernment.moa.spss.server.xmlbind; public class SignedPDFInfo { - - public static final int SUCCESS_SIGNATURE = 0; - public static final int ERROR_RESPONSE = 1; - - private String signatureID = null; - private byte[] pdfDocument = null; - private int responseType = ERROR_RESPONSE; - private int errorCode = 0; - private String errorInfo = null; - - public SignedPDFInfo(String signatureID) { - this.signatureID = signatureID; - } - - public synchronized void setPdfDocument(byte[] pdfDocument) { - this.pdfDocument = pdfDocument; - } - - public synchronized String getSignatureID() { - return signatureID; - } - - public synchronized byte[] getPdfDocument() { - return pdfDocument; - } - - public synchronized void setResponseType(int responseType) { - this.responseType = responseType; - } - - public int getResponseType() { - return this.responseType; - } - - public synchronized int getErrorCode() { - return errorCode; - } - - public synchronized void setErrorCode(int errorCode) { - this.errorCode = errorCode; - } - - public synchronized String getErrorInfo() { - return errorInfo; - } - - public synchronized void setErrorInfo(String errorInfo) { - this.errorInfo = errorInfo; - } + + public static final int SUCCESS_SIGNATURE = 0; + public static final int ERROR_RESPONSE = 1; + + private String signatureID = null; + private byte[] pdfDocument = null; + private int responseType = ERROR_RESPONSE; + private int errorCode = 0; + private String errorInfo = null; + + public SignedPDFInfo(String signatureID) { + this.signatureID = signatureID; + } + + public synchronized void setPdfDocument(byte[] pdfDocument) { + this.pdfDocument = pdfDocument; + } + + public synchronized String getSignatureID() { + return signatureID; + } + + public synchronized byte[] getPdfDocument() { + return pdfDocument; + } + + public synchronized void setResponseType(int responseType) { + this.responseType = responseType; + } + + public int getResponseType() { + return this.responseType; + } + + public synchronized int getErrorCode() { + return errorCode; + } + + public synchronized void setErrorCode(int errorCode) { + this.errorCode = errorCode; + } + + public synchronized String getErrorInfo() { + return errorInfo; + } + + public synchronized void setErrorInfo(String errorInfo) { + this.errorInfo = errorInfo; + } } diff --git a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/VerifyPDFRequest.java b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/VerifyPDFRequest.java index c9ca89d..59c8c94 100644 --- a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/VerifyPDFRequest.java +++ b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/VerifyPDFRequest.java @@ -3,34 +3,34 @@ package at.gv.egovernment.moa.spss.server.xmlbind; import java.util.Date; public class VerifyPDFRequest { - private Date dateTime; - private byte[] signedPDF; - private String trustProfileID; - - public VerifyPDFRequest() { - } - - public synchronized Date getDateTime() { - return dateTime; - } - - public synchronized void setDateTime(Date dateTime) { - this.dateTime = dateTime; - } - - public synchronized byte[] getSignedPDF() { - return signedPDF; - } - - public synchronized void setSignedPDF(byte[] signedPDF) { - this.signedPDF = signedPDF; - } - - public synchronized String getTrustProfileID() { - return trustProfileID; - } - - public synchronized void setTrustProfileID(String trustProfileID) { - this.trustProfileID = trustProfileID; - } + private Date dateTime; + private byte[] signedPDF; + private String trustProfileID; + + public VerifyPDFRequest() { + } + + public synchronized Date getDateTime() { + return dateTime; + } + + public synchronized void setDateTime(Date dateTime) { + this.dateTime = dateTime; + } + + public synchronized byte[] getSignedPDF() { + return signedPDF; + } + + public synchronized void setSignedPDF(byte[] signedPDF) { + this.signedPDF = signedPDF; + } + + public synchronized String getTrustProfileID() { + return trustProfileID; + } + + public synchronized void setTrustProfileID(String trustProfileID) { + this.trustProfileID = trustProfileID; + } } diff --git a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/VerifyPDFRequestParser.java b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/VerifyPDFRequestParser.java index 66761e4..0581595 100644 --- a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/VerifyPDFRequestParser.java +++ b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/VerifyPDFRequestParser.java @@ -14,47 +14,47 @@ import at.gv.egovernment.moaspss.util.XPathUtils; public class VerifyPDFRequestParser { - // - // XPath expressions for selecting parts of the DOM message - // - private static final String MOA = Constants.MOA_PREFIX + ":"; - private static final String DATE_TIME_XPATH = MOA + "DateTime"; - private static final String PDF_SIGNATURE_XPATH = MOA + "PDFSignature"; - private static final String TRUST_PROFILE_ID_XPATH = MOA + "TrustProfileID"; - - public VerifyPDFRequest parse(Element requestElem) throws MOAApplicationException { - - VerifyPDFRequest verifyPDFRequest = new VerifyPDFRequest(); - - Date dateTime = RequestParserUtils.parseDateTime(requestElem, DATE_TIME_XPATH); - byte[] signedPDF = null; - try { - signedPDF = parsePDF(requestElem); - } catch (IOException e) { - throw new MOAApplicationException("Failed to extract signed pdf data", null, e); - } - String trustProfileID = XPathUtils.getElementValue(requestElem, TRUST_PROFILE_ID_XPATH, null); - verifyPDFRequest.setDateTime(dateTime); - verifyPDFRequest.setSignedPDF(signedPDF); - verifyPDFRequest.setTrustProfileID(trustProfileID); - - return verifyPDFRequest; - } - - /** - * Parse the content contained in a <code>CMSContentBaseType</code> kind of - * DOM element. - * - * @param contentElem - * The <code>CMSContentBaseType</code> kind of element to parse. - * @return A <code>CMSDataObject</code> API object containing the data from - * the given DOM element. - * @throws IOException - */ - private byte[] parsePDF(Element contentElem) throws IOException { - Element base64ContentElem = (Element) XPathUtils.selectSingleNode(contentElem, PDF_SIGNATURE_XPATH); - - String base64Str = DOMUtils.getText(base64ContentElem); - return Base64Utils.decode(base64Str, true); - } + // + // XPath expressions for selecting parts of the DOM message + // + private static final String MOA = Constants.MOA_PREFIX + ":"; + private static final String DATE_TIME_XPATH = MOA + "DateTime"; + private static final String PDF_SIGNATURE_XPATH = MOA + "PDFSignature"; + private static final String TRUST_PROFILE_ID_XPATH = MOA + "TrustProfileID"; + + public VerifyPDFRequest parse(Element requestElem) throws MOAApplicationException { + + final VerifyPDFRequest verifyPDFRequest = new VerifyPDFRequest(); + + final Date dateTime = RequestParserUtils.parseDateTime(requestElem, DATE_TIME_XPATH); + byte[] signedPDF = null; + try { + signedPDF = parsePDF(requestElem); + } catch (final IOException e) { + throw new MOAApplicationException("Failed to extract signed pdf data", null, e); + } + final String trustProfileID = XPathUtils.getElementValue(requestElem, TRUST_PROFILE_ID_XPATH, null); + verifyPDFRequest.setDateTime(dateTime); + verifyPDFRequest.setSignedPDF(signedPDF); + verifyPDFRequest.setTrustProfileID(trustProfileID); + + return verifyPDFRequest; + } + + /** + * Parse the content contained in a <code>CMSContentBaseType</code> kind of DOM + * element. + * + * @param contentElem The <code>CMSContentBaseType</code> kind of element to + * parse. + * @return A <code>CMSDataObject</code> API object containing the data from the + * given DOM element. + * @throws IOException + */ + private byte[] parsePDF(Element contentElem) throws IOException { + final Element base64ContentElem = (Element) XPathUtils.selectSingleNode(contentElem, PDF_SIGNATURE_XPATH); + + final String base64Str = DOMUtils.getText(base64ContentElem); + return Base64Utils.decode(base64Str, true); + } } diff --git a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/VerifyPDFResponse.java b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/VerifyPDFResponse.java index c162529..61304b0 100644 --- a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/VerifyPDFResponse.java +++ b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/VerifyPDFResponse.java @@ -1,20 +1,17 @@ package at.gv.egovernment.moa.spss.server.xmlbind; -import java.util.List; - //import at.gv.egiz.pdfas.lib.api.verify.VerifyResult; public class VerifyPDFResponse { - /*private List<VerifyResult> verificationResults = null; - - public VerifyPDFResponse() { - } - - public synchronized List<VerifyResult> getVerificationResults() { - return verificationResults; - } - - public synchronized void setVerificationResults(List<VerifyResult> verificationResults) { - this.verificationResults = verificationResults; - }*/ + /* + * private List<VerifyResult> verificationResults = null; + * + * public VerifyPDFResponse() { } + * + * public synchronized List<VerifyResult> getVerificationResults() { return + * verificationResults; } + * + * public synchronized void setVerificationResults(List<VerifyResult> + * verificationResults) { this.verificationResults = verificationResults; } + */ } diff --git a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/VerifyPDFResponseBuilder.java b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/VerifyPDFResponseBuilder.java index cb3c66b..b9117e9 100644 --- a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/VerifyPDFResponseBuilder.java +++ b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/xmlbind/VerifyPDFResponseBuilder.java @@ -1,110 +1,87 @@ package at.gv.egovernment.moa.spss.server.xmlbind; -import java.util.Iterator; - import org.w3c.dom.Document; import org.w3c.dom.Element; -//import at.gv.egiz.pdfas.lib.api.verify.VerifyResult; -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.xmlbind.ResponseBuilderUtils; -import at.gv.egovernment.moa.spss.server.pdfas.ExtendedVerifyResult; import at.gv.egovernment.moaspss.util.Constants; public class VerifyPDFResponseBuilder { - private static final String MOA_NS_URI = Constants.MOA_NS_URI; - - //private static final Logger logger = LoggerFactory.getLogger(VerifyPDFResponseBuilder.class); - - /** The XML document containing the response element. */ - private Document responseDoc; - /** The response <code>CreateCMSSignatureResponse</code> DOM element. */ - private Element responseElem; - - /** - * Create a new <code>CreateCMSSignatureResponseBuilder</code>: - * - * @throws MOASystemException - * An error occurred setting up the resulting XML document. - */ - public VerifyPDFResponseBuilder() throws MOASystemException { - responseDoc = ResponseBuilderUtils.createResponse("VerifyPDFSignatureResponse"); - responseElem = responseDoc.getDocumentElement(); - } - - /** - * Build a document containing a <code>CreateCMSSignatureResponse</code> DOM - * element being the XML representation of the given - * <code>CreateCMSSignatureResponse</code> API object. - * - * @param response - * The <code>CreateCMSSignatureResponse</code> to convert to XML. - * @return A document containing the <code>CreateCMSSignatureResponse</code> - * DOM element. - */ - /*public Document build(VerifyPDFResponse response) throws MOAException { - if(response.getVerificationResults() == null) { - throw new MOAApplicationException("No verification results available", null); - } - Iterator<VerifyResult> iter = response.getVerificationResults().iterator(); + private static final String MOA_NS_URI = Constants.MOA_NS_URI; - while (iter.hasNext()) { - VerifyResult verifyResult = iter.next(); - addVerifyResult(verifyResult); - } + // private static final Logger logger = + // LoggerFactory.getLogger(VerifyPDFResponseBuilder.class); - return responseDoc; - } - - private void addVerifyResult(VerifyResult verifyResult) throws MOAApplicationException { - Element pdfSignature = responseDoc.createElementNS(MOA_NS_URI, "SignatureResult"); - - - String qcSource = null; - String publicAuthorityID = null; - String sscdSource = null; - boolean isPublicAuthority = false; - boolean isSSCD = false; - String issureCountryCode = null; - - if(verifyResult instanceof ExtendedVerifyResult) { - ExtendedVerifyResult extendedVerifyResult = (ExtendedVerifyResult)verifyResult; - - qcSource = extendedVerifyResult.getQcSource(); - publicAuthorityID = extendedVerifyResult.getPublicAuthorityID(); - sscdSource = extendedVerifyResult.getQcSource(); - issureCountryCode = extendedVerifyResult.getIssureCountryCode(); - - isPublicAuthority = extendedVerifyResult.isPublicAuthority(); - isSSCD = extendedVerifyResult.isSSCD(); - } - - ResponseBuilderUtils.addSignerInfo(responseDoc, pdfSignature, - verifyResult.getSignerCertificate(), - verifyResult.isQualifiedCertificate(), - qcSource, - isPublicAuthority, - publicAuthorityID, - isSSCD, - sscdSource, - issureCountryCode); - - ResponseBuilderUtils.addCodeInfoElement( - responseDoc, - pdfSignature, - "SignatureCheck", - verifyResult.getValueCheckCode().getCode(), - (String)null); + /** The XML document containing the response element. */ + private final Document responseDoc; + /** The response <code>CreateCMSSignatureResponse</code> DOM element. */ + private final Element responseElem; - ResponseBuilderUtils.addCodeInfoElement( - responseDoc, - pdfSignature, - "CertificateCheck", - verifyResult.getCertificateCheck().getCode(), - (String)null); + /** + * Create a new <code>CreateCMSSignatureResponseBuilder</code>: + * + * @throws MOASystemException An error occurred setting up the resulting XML + * document. + */ + public VerifyPDFResponseBuilder() throws MOASystemException { + responseDoc = ResponseBuilderUtils.createResponse("VerifyPDFSignatureResponse"); + responseElem = responseDoc.getDocumentElement(); + } - responseElem.appendChild(pdfSignature); - }*/ + /** + * Build a document containing a <code>CreateCMSSignatureResponse</code> DOM + * element being the XML representation of the given + * <code>CreateCMSSignatureResponse</code> API object. + * + * @param response The <code>CreateCMSSignatureResponse</code> to convert to + * XML. + * @return A document containing the <code>CreateCMSSignatureResponse</code> DOM + * element. + */ + /* + * public Document build(VerifyPDFResponse response) throws MOAException { + * if(response.getVerificationResults() == null) { throw new + * MOAApplicationException("No verification results available", null); } + * Iterator<VerifyResult> iter = response.getVerificationResults().iterator(); + * + * while (iter.hasNext()) { VerifyResult verifyResult = iter.next(); + * addVerifyResult(verifyResult); } + * + * return responseDoc; } + * + * private void addVerifyResult(VerifyResult verifyResult) throws + * MOAApplicationException { Element pdfSignature = + * responseDoc.createElementNS(MOA_NS_URI, "SignatureResult"); + * + * + * String qcSource = null; String publicAuthorityID = null; String sscdSource = + * null; boolean isPublicAuthority = false; boolean isSSCD = false; String + * issureCountryCode = null; + * + * if(verifyResult instanceof ExtendedVerifyResult) { ExtendedVerifyResult + * extendedVerifyResult = (ExtendedVerifyResult)verifyResult; + * + * qcSource = extendedVerifyResult.getQcSource(); publicAuthorityID = + * extendedVerifyResult.getPublicAuthorityID(); sscdSource = + * extendedVerifyResult.getQcSource(); issureCountryCode = + * extendedVerifyResult.getIssureCountryCode(); + * + * isPublicAuthority = extendedVerifyResult.isPublicAuthority(); isSSCD = + * extendedVerifyResult.isSSCD(); } + * + * ResponseBuilderUtils.addSignerInfo(responseDoc, pdfSignature, + * verifyResult.getSignerCertificate(), verifyResult.isQualifiedCertificate(), + * qcSource, isPublicAuthority, publicAuthorityID, isSSCD, sscdSource, + * issureCountryCode); + * + * ResponseBuilderUtils.addCodeInfoElement( responseDoc, pdfSignature, + * "SignatureCheck", verifyResult.getValueCheckCode().getCode(), (String)null); + * + * ResponseBuilderUtils.addCodeInfoElement( responseDoc, pdfSignature, + * "CertificateCheck", verifyResult.getCertificateCheck().getCode(), + * (String)null); + * + * responseElem.appendChild(pdfSignature); } + */ } |