package at.gv.egovernment.moa.spss.server.invoke; 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 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 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; } */ }