diff options
Diffstat (limited to 'moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/invoke')
-rw-r--r-- | moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/invoke/PDFASInvoker.java | 192 |
1 files changed, 78 insertions, 114 deletions
diff --git a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/invoke/PDFASInvoker.java b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/invoke/PDFASInvoker.java index 1f7522b..94c2239 100644 --- a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/invoke/PDFASInvoker.java +++ b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/invoke/PDFASInvoker.java @@ -1,118 +1,82 @@ package at.gv.egovernment.moa.spss.server.invoke; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.util.Iterator; -import java.util.List; - -import org.apache.commons.io.IOUtils; - -import at.gv.egovernment.moa.spss.MOAApplicationException; -import at.gv.egovernment.moa.spss.MOAException; -import at.gv.egovernment.moa.spss.server.logging.TransactionId; -import at.gv.egovernment.moa.spss.server.pdfas.InternalMoaConnector; -import at.gv.egovernment.moa.spss.server.pdfas.InternalMoaVerifier; -import at.gv.egovernment.moa.spss.server.xmlbind.CreatePDFRequest; -import at.gv.egovernment.moa.spss.server.xmlbind.CreatePDFRespone; -import at.gv.egovernment.moa.spss.server.xmlbind.PDFSignatureInfo; -import at.gv.egovernment.moa.spss.server.xmlbind.SignedPDFInfo; -import at.gv.egovernment.moa.spss.server.xmlbind.VerifyPDFRequest; -import at.gv.egovernment.moa.spss.server.xmlbind.VerifyPDFResponse; -import at.gv.egovernment.moaspss.logging.Logger; - public class PDFASInvoker { - /* - private static PDFASInvoker instance = null; - - private PdfAs pdfAS; - - private PDFASInvoker(File configuration) { - pdfAS = PdfAsFactory.createPdfAs(configuration); - } - - public synchronized static void init(String pdfAsConfiguration) { - instance = new PDFASInvoker(new File(pdfAsConfiguration)); - } - - public synchronized static PDFASInvoker getInstance() { - if (instance == null) { - throw new RuntimeException("PDF PDFASInvoker not initialized"); - } - return instance; - } - - public VerifyPDFResponse verifyPDFSignature(VerifyPDFRequest verifyPDFRequest) throws MOAException { - Configuration pdfConfiguration = this.pdfAS.getConfiguration(); - - VerifyPDFResponse verifyPDFResponse = new VerifyPDFResponse(); - - VerifyParameter verifyParameter = PdfAsFactory.createVerifyParameter(pdfConfiguration, new ByteArrayDataSource( - verifyPDFRequest.getSignedPDF())); - - pdfConfiguration.setValue(InternalMoaVerifier.MOA_TRUSTPROFILE, verifyPDFRequest.getTrustProfileID()); - - try { - List<VerifyResult> verifyResults = this.pdfAS.verify(verifyParameter); - verifyPDFResponse.setVerificationResults(verifyResults); - } catch (Throwable e) { - Logger.warn("Failed to generate signed PDF document", e); - throw new MOAApplicationException("Failed to generate signed PDF document", null, e); - } - - return verifyPDFResponse; - } - - public CreatePDFRespone createPDFSignature(CreatePDFRequest createPDFRequest, String transactionId) { - Configuration pdfConfiguration = this.pdfAS.getConfiguration(); - - String keyIdentifier = createPDFRequest.getKeyIdentifier(); - - Iterator<PDFSignatureInfo> signatureInfoIterator = createPDFRequest.getSignatureInfoList().iterator(); - - CreatePDFRespone createPDFRespone = new CreatePDFRespone(); - - while (signatureInfoIterator.hasNext()) { - PDFSignatureInfo pdfSignatureInfo = signatureInfoIterator.next(); - SignedPDFInfo signedPDFInfo = new SignedPDFInfo(pdfSignatureInfo.getSignatureID()); - try { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - SignParameter signParameter = PdfAsFactory.createSignParameter(pdfConfiguration, - new ByteArrayDataSource(pdfSignatureInfo.getPdfDocument()), baos); - - signParameter.setSignaturePosition(pdfSignatureInfo.getSignaturePosition()); - signParameter.setSignatureProfileId(pdfSignatureInfo.getSignatureProfile()); - - IPlainSigner signer = new PAdESSigner( - new InternalMoaConnector(keyIdentifier, new TransactionId(transactionId), null)); - - signParameter.setPlainSigner(signer); - - try { - this.pdfAS.sign(signParameter); - signedPDFInfo.setPdfDocument(baos.toByteArray()); - signedPDFInfo.setResponseType(SignedPDFInfo.SUCCESS_SIGNATURE); - } catch (Throwable e) { - signedPDFInfo.setResponseType(SignedPDFInfo.ERROR_RESPONSE); - - if (e instanceof PDFASError) { - PDFASError pdfAsError = (PDFASError) e; - Logger.warn("Failed to generate signed PDF document", e); - signedPDFInfo.setErrorCode((int) pdfAsError.getCode()); - signedPDFInfo.setErrorInfo(pdfAsError.getInfo()); - } else { - Logger.error("Unknown exception!: ", e); - signedPDFInfo.setErrorCode(9999); - signedPDFInfo.setErrorInfo("Nicht klassifizierter Fehler"); - } - } finally { - IOUtils.closeQuietly(baos); - } - - } finally { - createPDFRespone.getSignatureInfoList().add(signedPDFInfo); - } - - } - return createPDFRespone; - }*/ + /* + * private static PDFASInvoker instance = null; + * + * private PdfAs pdfAS; + * + * private PDFASInvoker(File configuration) { pdfAS = + * PdfAsFactory.createPdfAs(configuration); } + * + * public synchronized static void init(String pdfAsConfiguration) { instance = + * new PDFASInvoker(new File(pdfAsConfiguration)); } + * + * public synchronized static PDFASInvoker getInstance() { if (instance == null) + * { throw new RuntimeException("PDF PDFASInvoker not initialized"); } return + * instance; } + * + * public VerifyPDFResponse verifyPDFSignature(VerifyPDFRequest + * verifyPDFRequest) throws MOAException { Configuration pdfConfiguration = + * this.pdfAS.getConfiguration(); + * + * VerifyPDFResponse verifyPDFResponse = new VerifyPDFResponse(); + * + * VerifyParameter verifyParameter = + * PdfAsFactory.createVerifyParameter(pdfConfiguration, new ByteArrayDataSource( + * verifyPDFRequest.getSignedPDF())); + * + * pdfConfiguration.setValue(InternalMoaVerifier.MOA_TRUSTPROFILE, + * verifyPDFRequest.getTrustProfileID()); + * + * try { List<VerifyResult> verifyResults = this.pdfAS.verify(verifyParameter); + * verifyPDFResponse.setVerificationResults(verifyResults); } catch (Throwable + * e) { Logger.warn("Failed to generate signed PDF document", e); throw new + * MOAApplicationException("Failed to generate signed PDF document", null, e); } + * + * return verifyPDFResponse; } + * + * public CreatePDFRespone createPDFSignature(CreatePDFRequest createPDFRequest, + * String transactionId) { Configuration pdfConfiguration = + * this.pdfAS.getConfiguration(); + * + * String keyIdentifier = createPDFRequest.getKeyIdentifier(); + * + * Iterator<PDFSignatureInfo> signatureInfoIterator = + * createPDFRequest.getSignatureInfoList().iterator(); + * + * CreatePDFRespone createPDFRespone = new CreatePDFRespone(); + * + * while (signatureInfoIterator.hasNext()) { PDFSignatureInfo pdfSignatureInfo = + * signatureInfoIterator.next(); SignedPDFInfo signedPDFInfo = new + * SignedPDFInfo(pdfSignatureInfo.getSignatureID()); try { ByteArrayOutputStream + * baos = new ByteArrayOutputStream(); SignParameter signParameter = + * PdfAsFactory.createSignParameter(pdfConfiguration, new + * ByteArrayDataSource(pdfSignatureInfo.getPdfDocument()), baos); + * + * signParameter.setSignaturePosition(pdfSignatureInfo.getSignaturePosition()); + * signParameter.setSignatureProfileId(pdfSignatureInfo.getSignatureProfile()); + * + * IPlainSigner signer = new PAdESSigner( new + * InternalMoaConnector(keyIdentifier, new TransactionId(transactionId), null)); + * + * signParameter.setPlainSigner(signer); + * + * try { this.pdfAS.sign(signParameter); + * signedPDFInfo.setPdfDocument(baos.toByteArray()); + * signedPDFInfo.setResponseType(SignedPDFInfo.SUCCESS_SIGNATURE); } catch + * (Throwable e) { signedPDFInfo.setResponseType(SignedPDFInfo.ERROR_RESPONSE); + * + * if (e instanceof PDFASError) { PDFASError pdfAsError = (PDFASError) e; + * Logger.warn("Failed to generate signed PDF document", e); + * signedPDFInfo.setErrorCode((int) pdfAsError.getCode()); + * signedPDFInfo.setErrorInfo(pdfAsError.getInfo()); } else { + * Logger.error("Unknown exception!: ", e); signedPDFInfo.setErrorCode(9999); + * signedPDFInfo.setErrorInfo("Nicht klassifizierter Fehler"); } } finally { + * IOUtils.closeQuietly(baos); } + * + * } finally { createPDFRespone.getSignatureInfoList().add(signedPDFInfo); } + * + * } return createPDFRespone; } + */ } |