From 6ea2c1db26260c1f36e01c58fc6f8ef0220e577e Mon Sep 17 00:00:00 2001 From: Andreas Fitzek Date: Thu, 5 Jun 2014 10:46:34 +0200 Subject: SOAP Service for backend upload + transaction ID fixes --- .../at/gv/egiz/pdfas/web/ws/PDFASSigningImpl.java | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/ws') diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/ws/PDFASSigningImpl.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/ws/PDFASSigningImpl.java index 07ffd7c4..5304f918 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/ws/PDFASSigningImpl.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/ws/PDFASSigningImpl.java @@ -16,8 +16,10 @@ import at.gv.egiz.pdfas.api.ws.PDFASSignParameters; import at.gv.egiz.pdfas.api.ws.PDFASSignRequest; import at.gv.egiz.pdfas.api.ws.PDFASSignResponse; import at.gv.egiz.pdfas.api.ws.PDFASSigning; +import at.gv.egiz.pdfas.api.ws.PDFASSignParameters.Connector; import at.gv.egiz.pdfas.web.config.WebConfiguration; import at.gv.egiz.pdfas.web.helper.PdfAsHelper; +import at.gv.egiz.pdfas.web.store.RequestStore; @MTOM @WebService(endpointInterface = "at.gv.egiz.pdfas.api.ws.PDFASSigning") @@ -25,7 +27,7 @@ public class PDFASSigningImpl implements PDFASSigning { private static final Logger logger = LoggerFactory .getLogger(PDFASSigningImpl.class); - + public byte[] signPDFDokument(byte[] inputDocument, PDFASSignParameters parameters) { checkSoapSignEnabled(); @@ -50,8 +52,24 @@ public class PDFASSigningImpl implements PDFASSigning { } PDFASSignResponse response = new PDFASSignResponse(); try { - response.setSignedPDF(signPDFDokument(request.getInputData(), + if(request.getParameters().getConnector().equals(Connector.MOA) || + request.getParameters().getConnector().equals(Connector.JKS)) { + // Plain server based signatures!! + response.setSignedPDF(signPDFDokument(request.getInputData(), request.getParameters())); + } else { + // Signatures with user interaction!! + String id = RequestStore.getInstance().createNewStoreEntry(request); + String userEntryURL = PdfAsHelper.generateUserEntryURL(id); + logger.debug("Generated request store: " + id); + logger.debug("Generated UI URL: " + userEntryURL); + + if(userEntryURL == null) { + throw new WebServiceException("Failed to generate User Entry URL"); + } + + response.setRedirectUrl(userEntryURL); + } } catch (Throwable e) { if (e.getCause() != null) { response.setError(e.getCause().getMessage()); -- cgit v1.2.3