From c0f97e7b1ad5b6256eb935aeab06d159d68d1966 Mon Sep 17 00:00:00 2001 From: Alexander Marsalek Date: Mon, 12 Apr 2021 15:58:14 +0200 Subject: pdf-as-web signature block parameter handling --- .../gv/egiz/pdfas/web/client/test/SimpleTest1.java | 174 +++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 pdf-as-web-client/src/test/java/at/gv/egiz/pdfas/web/client/test/SimpleTest1.java (limited to 'pdf-as-web-client/src/test') diff --git a/pdf-as-web-client/src/test/java/at/gv/egiz/pdfas/web/client/test/SimpleTest1.java b/pdf-as-web-client/src/test/java/at/gv/egiz/pdfas/web/client/test/SimpleTest1.java new file mode 100644 index 00000000..4ff9be0c --- /dev/null +++ b/pdf-as-web-client/src/test/java/at/gv/egiz/pdfas/web/client/test/SimpleTest1.java @@ -0,0 +1,174 @@ +/******************************************************************************* + * Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria + * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a + * joint initiative of the Federal Chancellery Austria and Graz University of + * Technology. + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://www.osor.eu/eupl/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + ******************************************************************************/ +package at.gv.egiz.pdfas.web.client.test; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.net.URL; +import java.util.List; + +import org.apache.commons.io.IOUtils; + +import at.gv.egiz.pdfas.api.ws.PDFASSignParameters; +import at.gv.egiz.pdfas.api.ws.PDFASSignParameters.Connector; +import at.gv.egiz.pdfas.api.ws.PDFASSignRequest; +import at.gv.egiz.pdfas.api.ws.PDFASSignResponse; +import at.gv.egiz.pdfas.api.ws.PDFASVerifyRequest; +import at.gv.egiz.pdfas.api.ws.PDFASVerifyResponse; +import at.gv.egiz.pdfas.api.ws.PDFASVerifyResult; +import at.gv.egiz.pdfas.api.ws.VerificationLevel; +import at.gv.egiz.pdfas.web.client.RemotePDFSigner; +import at.gv.egiz.pdfas.web.client.RemotePDFVerifier; + +public class SimpleTest1 { + + public static void main(String[] args) { + try { + String file = "/Users/amarsalek/Documents/pdf-as-4/unsigned.pdf"; + FileInputStream fis = new FileInputStream(file); + byte[] inputData = IOUtils.toByteArray(fis); + + PDFASSignParameters signParameters = new PDFASSignParameters(); +// signParameters.setConnector(Connector.JKS); + signParameters.setConnector(Connector.BKU); + signParameters.setPosition(null); + signParameters.setProfile("SIGNATURBLOCK_SMALL_DE1"); + signParameters.setQRCodeContent("TEST CONTENT"); + //signParameters.setKeyIdentifier("test"); + + PDFASSignRequest request = new PDFASSignRequest(); + request.setInputData(inputData); + request.setParameters(signParameters); + request.setRequestID("SOME TEST ID"); + request.getSignatureBlockParameters().put("abc","SOAP Test"); + //URL endpoint = new + //URL("http://demo.egiz.gv.at/demoportal-pdf_as/wssign?wsdl"); + //URL endpoint = new + // URL("http://www.buergerkarte.at/pdf-as-extern-4/wssign?wsdl"); +// String baseUrl = "http://demo.egiz.gv.at/demoportal-pdf_as/services/"; + String baseUrl = "http://localhost:8080/pdf-as-web/services/"; + //URL endpoint = new URL( + // "http://192.168.56.10/pdf-as-web/wssign?wsdl"); + + URL signEndpoint = new URL(baseUrl + "wssign?wsdl"); + URL verifyEndpoint = new URL(baseUrl + "wsverify?wsdl"); + + RemotePDFSigner signer = new RemotePDFSigner(signEndpoint, true); +// RemotePDFVerifier verifier = new RemotePDFVerifier(verifyEndpoint, true); + + PDFASSignRequest signrequest = new PDFASSignRequest(); + signrequest.setInputData(inputData); + signrequest.setParameters(signParameters); + signParameters.setTransactionId("MYID ...."); + signrequest.getSignatureBlockParameters().put("abc","SOAP Test 5555"); + System.out.println("Simple Request:"); + PDFASSignResponse response = signer.signPDFDokument(signrequest); + + System.out.println("Sign Error: " + response.getError()); + System.out.println("redirect url: " + response.getRedirectUrl()); + File outputFile = new File(file+"_signedSOAP.pdf"); + try (FileOutputStream outputStream = new FileOutputStream(outputFile)) { + outputStream.write(response.getSignedPDF()); + } + + PDFASVerifyRequest verifyRequest = new PDFASVerifyRequest(); + verifyRequest.setInputData(response.getSignedPDF()); + verifyRequest.setVerificationLevel(VerificationLevel.INTEGRITY_ONLY); + +// PDFASVerifyResponse verifyResponse = verifier.verifyPDFDokument(verifyRequest); + +// List results = verifyResponse.getVerifyResults(); +// +// for(int i = 0; i < results.size(); i++) { +// PDFASVerifyResult result = results.get(i); +// printVerifyResult(result); +// } + + /* + * System.out.println("Simple Request:"); byte[] outputFile = + * signer.signPDFDokument(inputData, signParameters); + * + * FileOutputStream fos = new FileOutputStream( + * "/home/afitzek/simple_request_signed.pdf"); + * fos.write(outputFile); fos.close(); + * + * System.out.println("Simple Request Obj:"); PDFASSignResponse + * response = signer.signPDFDokument(request); + * + * if (response.getSignedPDF() != null) { FileOutputStream fos2 = + * new FileOutputStream( + * "/home/afitzek/simple_request_obj_signed.pdf"); + * fos2.write(response.getSignedPDF()); fos2.close(); } + * + * if(response.getError() != null) { System.out.println("ERROR: " + + * response.getError()); } + */ + + /* + List bulk = new ArrayList(); + for (int i = 0; i < 10; i++) { + bulk.add(request); + } + + PDFASBulkSignRequest bulkRequest = new PDFASBulkSignRequest(); + bulkRequest.setSignRequests(bulk); + + for (int j = 0; j < 10; j++) { + System.out.println("Bulk Request:"); + PDFASBulkSignResponse responses = signer + .signPDFDokument(bulkRequest); + + for (int i = 0; i < responses.getSignResponses().size(); i++) { + PDFASSignResponse bulkresponse = responses + .getSignResponses().get(i); + System.out.println("ID: " + bulkresponse.getRequestID()); + + if (bulkresponse.getError() != null) { + System.out.println("ERROR: " + bulkresponse.getError()); + } else { + System.out.println("OK"); + } + } + } + */ + System.out.println("Done!"); + } catch (Throwable e) { + e.printStackTrace(); + } + } + + private static void printVerifyResult(PDFASVerifyResult result) { + System.out.println(result.getSignatureIndex()); + System.out.println(" Certificate: " + result.getCertificate()); + System.out.println(" Cert Messag: " + result.getCertificateMessage()); + System.out.println(" Cert Code : " + result.getCertificateCode()); + System.out.println(" Value Code : " + result.getValueCode()); + System.out.println(" Value Messg: " + result.getValueMessage()); + System.out.println(" SignedBy : " + result.getSignedBy()); + System.out.println(" Processed : " + result.getProcessed()); + System.out.println(" Signed Data: " + result.getSignedData()); + } + +} -- cgit v1.2.3