diff options
Diffstat (limited to 'pdf-as-web/src/main/java/at/gv/egiz/pdfas')
4 files changed, 70 insertions, 51 deletions
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java index a5232acf..6b63255f 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java @@ -837,6 +837,7 @@ public class PdfAsHelper { public static void setErrorURL(HttpServletRequest request, HttpServletResponse response, String url) { HttpSession session = request.getSession(); + logger.debug("[" + session.getId() + "]: Setting Error URL to: " + url); session.setAttribute(PDF_ERR_URL, url); } @@ -850,8 +851,8 @@ public class PdfAsHelper { public static void setInvokeURL(HttpServletRequest request, HttpServletResponse response, String url) { HttpSession session = request.getSession(); + logger.debug("[" + session.getId() + "]: Setting Invoke URL to: " + url); session.setAttribute(PDF_INVOKE_URL, url); - logger.debug("External Invoke URL: " + url); } public static String getInvokeURL(HttpServletRequest request, diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/RemotePDFFetcher.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/RemotePDFFetcher.java index e48a4eee..f3c1c946 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/RemotePDFFetcher.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/RemotePDFFetcher.java @@ -27,17 +27,24 @@ import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import at.gv.egiz.pdfas.common.utils.StreamUtils; import at.gv.egiz.pdfas.web.config.WebConfiguration; import at.gv.egiz.pdfas.web.exception.PdfAsWebException; public class RemotePDFFetcher { + private static final Logger logger = LoggerFactory + .getLogger(RemotePDFFetcher.class); + public static byte[] fetchPdfFile(String pdfURL) throws PdfAsWebException { URL url; try { url = new URL(pdfURL); } catch (MalformedURLException e) { + logger.error("Not a valid URL!", e); throw new PdfAsWebException("Not a valid URL!", e); } if (WebConfiguration.isProvidePdfURLinWhitelist(url.toExternalForm())) { @@ -48,6 +55,7 @@ public class RemotePDFFetcher { InputStream is = url.openStream(); return StreamUtils.inputStreamToByteArray(is); } catch (Exception e) { + logger.error("Failed to fetch pdf document!", e); throw new PdfAsWebException( "Failed to fetch pdf document!", e); } diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java index 39078529..121fbc88 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java @@ -89,6 +89,7 @@ public class ExternSignServlet extends HttpServlet { String errorUrl = PdfAsParameterExtractor.getInvokeErrorURL(request); PdfAsHelper.setErrorURL(request, response, errorUrl); + try { // Mandatory Parameters on Get Request: String invokeUrl = PdfAsParameterExtractor.getInvokeURL(request); @@ -296,6 +297,7 @@ public class ExternSignServlet extends HttpServlet { PdfAsHelper.startSignature(request, response, getServletContext(), pdfData, connector, PdfAsHelper.buildPosString(request, response), transactionId, PdfAsParameterExtractor .getSigType(request)); + return; } else if (connector.equals("jks") || connector.equals("moa")) { // start synchronous siganture creation diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/UIEntryPointServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/UIEntryPointServlet.java index 85ee1897..544f6c83 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/UIEntryPointServlet.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/UIEntryPointServlet.java @@ -30,12 +30,11 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.apache.http.HttpStatus; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import at.gv.egiz.pdfas.api.ws.PDFASSignRequest; import at.gv.egiz.pdfas.api.ws.PDFASSignParameters.Connector; +import at.gv.egiz.pdfas.api.ws.PDFASSignRequest; import at.gv.egiz.pdfas.common.exceptions.PdfAsException; import at.gv.egiz.pdfas.lib.api.verify.VerifyParameter.SignatureVerificationLevel; import at.gv.egiz.pdfas.web.config.WebConfiguration; @@ -43,7 +42,6 @@ import at.gv.egiz.pdfas.web.exception.PdfAsStoreException; import at.gv.egiz.pdfas.web.exception.PdfAsWebException; import at.gv.egiz.pdfas.web.helper.DigestHelper; import at.gv.egiz.pdfas.web.helper.PdfAsHelper; -import at.gv.egiz.pdfas.web.helper.PdfAsParameterExtractor; import at.gv.egiz.pdfas.web.store.RequestStore; public class UIEntryPointServlet extends HttpServlet { @@ -77,80 +75,90 @@ public class UIEntryPointServlet extends HttpServlet { if (storeId == null) { throw new PdfAsStoreException("Wrong Parameters"); } - + PDFASSignRequest pdfAsRequest = RequestStore.getInstance() .fetchStoreEntry(storeId); - - if(pdfAsRequest == null) { - throw new PdfAsStoreException("Invalid " + REQUEST_ID_PARAM + " value"); + + if (pdfAsRequest == null) { + throw new PdfAsStoreException("Invalid " + REQUEST_ID_PARAM + + " value"); } - + Connector connector = pdfAsRequest.getParameters().getConnector(); - + String invokeUrl = pdfAsRequest.getParameters().getInvokeURL(); PdfAsHelper.setInvokeURL(req, resp, invokeUrl); - - String invokeTarget = pdfAsRequest.getParameters().getInvokeTarget(); + + String invokeTarget = pdfAsRequest.getParameters() + .getInvokeTarget(); PdfAsHelper.setInvokeTarget(req, resp, invokeTarget); - + String errorUrl = pdfAsRequest.getParameters().getInvokeErrorURL(); PdfAsHelper.setErrorURL(req, resp, errorUrl); - + SignatureVerificationLevel lvl = SignatureVerificationLevel.INTEGRITY_ONLY_VERIFICATION; - if(pdfAsRequest.getVerificationLevel() != null) { - switch (pdfAsRequest.getVerificationLevel()) { - case INTEGRITY_ONLY: - lvl = SignatureVerificationLevel.INTEGRITY_ONLY_VERIFICATION; - break; - default: - lvl = SignatureVerificationLevel.FULL_VERIFICATION; - break; - } + if (pdfAsRequest.getVerificationLevel() != null) { + switch (pdfAsRequest.getVerificationLevel()) { + case INTEGRITY_ONLY: + lvl = SignatureVerificationLevel.INTEGRITY_ONLY_VERIFICATION; + break; + default: + lvl = SignatureVerificationLevel.FULL_VERIFICATION; + break; + } } PdfAsHelper.setVerificationLevel(req, lvl); - - if(pdfAsRequest.getInputData() == null) { + + if (pdfAsRequest.getInputData() == null) { throw new PdfAsException("No Signature data available"); } - - String pdfDataHash = DigestHelper.getHexEncodedHash(pdfAsRequest.getInputData()); - + + String pdfDataHash = DigestHelper.getHexEncodedHash(pdfAsRequest + .getInputData()); + PdfAsHelper.setSignatureDataHash(req, pdfDataHash); logger.debug("Storing signatures data hash: " + pdfDataHash); - + logger.debug("Starting signature creation with: " + connector); - - //IPlainSigner signer; - if (connector.equals(Connector.BKU) || connector.equals(Connector.ONLINEBKU) || connector.equals(Connector.MOBILEBKU)) { + + // IPlainSigner signer; + if (connector.equals(Connector.BKU) + || connector.equals(Connector.ONLINEBKU) + || connector.equals(Connector.MOBILEBKU)) { // start asynchronous signature creation - - if(connector.equals(Connector.BKU)) { - if(WebConfiguration.getLocalBKUURL() == null) { - throw new PdfAsWebException("Invalid connector bku is not supported"); + + if (connector.equals(Connector.BKU)) { + if (WebConfiguration.getLocalBKUURL() == null) { + throw new PdfAsWebException( + "Invalid connector bku is not supported"); } } - - if(connector.equals(Connector.ONLINEBKU)) { - if(WebConfiguration.getLocalBKUURL() == null) { - throw new PdfAsWebException("Invalid connector onlinebku is not supported"); + + if (connector.equals(Connector.ONLINEBKU)) { + if (WebConfiguration.getLocalBKUURL() == null) { + throw new PdfAsWebException( + "Invalid connector onlinebku is not supported"); } } - - if(connector.equals(Connector.MOBILEBKU)) { - if(WebConfiguration.getLocalBKUURL() == null) { - throw new PdfAsWebException("Invalid connector mobilebku is not supported"); + + if (connector.equals(Connector.MOBILEBKU)) { + if (WebConfiguration.getLocalBKUURL() == null) { + throw new PdfAsWebException( + "Invalid connector mobilebku is not supported"); } } - - PdfAsHelper.startSignature(req, resp, getServletContext(), pdfAsRequest.getInputData(), - connector.toString(), pdfAsRequest.getParameters().getPosition(), - pdfAsRequest.getParameters().getTransactionId(), + + PdfAsHelper.startSignature(req, resp, getServletContext(), + pdfAsRequest.getInputData(), connector.toString(), + pdfAsRequest.getParameters().getPosition(), + pdfAsRequest.getParameters().getTransactionId(), pdfAsRequest.getParameters().getProfile()); } else { - throw new PdfAsWebException("Invalid connector (" + Connector.BKU + " | " + Connector.ONLINEBKU + " | " + Connector.MOBILEBKU + ")"); + throw new PdfAsWebException("Invalid connector (" + + Connector.BKU + " | " + Connector.ONLINEBKU + " | " + + Connector.MOBILEBKU + ")"); } - - + } catch (Throwable e) { logger.error("Failed to process Request: ", e); PdfAsHelper.setSessionException(req, resp, e.getMessage(), e); |