From 7b6860087f50b7576c31f7aa50714d3fa7a9b228 Mon Sep 17 00:00:00 2001 From: Tobias Kellner Date: Mon, 23 Feb 2015 15:29:35 +0100 Subject: BASE64 request handling --- .../asit/pdfover/signer/pdfas/PDFASSLRequest.java | 2 +- .../pdfover/signer/pdfas/PDFASSigningState.java | 8 ++++++ .../signer/pdfas/PdfAsSignatureParameter.java | 9 ------ .../pdfover/signer/pdfas/PdfAs4BKUSLConnector.java | 8 +++++- .../asit/pdfover/signer/pdfas/PdfAs4SLRequest.java | 9 ------ .../at/asit/pdfover/signer/pdfas/PdfAs4Signer.java | 10 ++++++- .../pdfover/signer/pdfas/PdfAs4SigningState.java | 32 +++++++++++++++++----- 7 files changed, 50 insertions(+), 28 deletions(-) (limited to 'pdf-over-signer') diff --git a/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSLRequest.java b/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSLRequest.java index f274068a..221fdb28 100644 --- a/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSLRequest.java +++ b/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSLRequest.java @@ -47,7 +47,7 @@ public class PDFASSLRequest extends SLRequest { } // Modifing SL Request ... - setRequest(slRequest.replace(PDFASSigner.LOC_REF, SLRequest.DATAOBJECT_STRING)); + setRequest(slRequest.replace(PDFASSigner.LOC_REF, /*SLRequest.DATAOBJECT_STRING*/"")); setSignatureData(new ByteArrayDocumentSource(signData)); } diff --git a/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSigningState.java b/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSigningState.java index 247b1afc..e61465cf 100644 --- a/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSigningState.java +++ b/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PDFASSigningState.java @@ -170,4 +170,12 @@ public class PDFASSigningState implements SigningState { public void setBKUConnector(BkuSlConnector connector) { // Nothing to do here } + + /* (non-Javadoc) + * @see at.asit.pdfover.signator.SigningState#setUseBase64Request(boolean) + */ + @Override + public void setUseBase64Request(boolean useBase64Request) { + // Nothing to do here + } } diff --git a/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PdfAsSignatureParameter.java b/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PdfAsSignatureParameter.java index 1ceb6493..407773de 100644 --- a/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PdfAsSignatureParameter.java +++ b/pdf-over-signer/pdf-over-sigpdfas3/src/main/java/at/asit/pdfover/signer/pdfas/PdfAsSignatureParameter.java @@ -114,15 +114,6 @@ public class PdfAsSignatureParameter extends SignatureParameter { return this.genericProperties.get(key); } - /* (non-Javadoc) - * @see at.asit.pdfover.signator.SignatureParameter#setSignatureLanguage(java.lang.String) - */ - @Override - public void setSignatureLanguage(String signatureLanguage) { - super.setSignatureLanguage(signatureLanguage); -// this.height = -1; - } - @Override public SignatureDimension getPlaceholderDimension() { // return new SignatureDimension(487, 206); diff --git a/pdf-over-signer/pdf-over-sigpdfas4/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4BKUSLConnector.java b/pdf-over-signer/pdf-over-sigpdfas4/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4BKUSLConnector.java index ff2bef77..436db5f0 100644 --- a/pdf-over-signer/pdf-over-sigpdfas4/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4BKUSLConnector.java +++ b/pdf-over-signer/pdf-over-sigpdfas4/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4BKUSLConnector.java @@ -28,6 +28,8 @@ import at.asit.pdfover.signer.pdfas.exceptions.PdfAs4SLRequestException; import at.gv.egiz.pdfas.common.exceptions.PDFIOException; import at.gv.egiz.pdfas.common.exceptions.PdfAsException; import at.gv.egiz.pdfas.common.exceptions.SLPdfAsException; +import at.gv.egiz.pdfas.common.utils.PDFUtils; +import at.gv.egiz.pdfas.lib.api.IConfigurationConstants; import at.gv.egiz.pdfas.lib.api.sign.SignParameter; import at.gv.egiz.sl.schema.CreateCMSSignatureResponseType; import at.gv.egiz.sl.schema.ErrorResponseType; @@ -111,7 +113,11 @@ public class PdfAs4BKUSLConnector extends BaseSLConnector { String slRequestString = SLMarschaller.marshalToString(this.of.createCreateCMSSignatureRequest(pack.getRequestType())); //log.trace(slRequestString); - PdfAs4SLRequest slRequest = new PdfAs4SLRequest(slRequestString, pack.getSignatureData()); + byte[] signatureData = pack.getSignatureData(); + if (IConfigurationConstants.SL_REQUEST_TYPE_UPLOAD.equals(parameter.getConfiguration().getValue(IConfigurationConstants.SL_REQUEST_TYPE))) + signatureData = PDFUtils.blackOutSignature(signatureData, pack.getByteRange()); + + PdfAs4SLRequest slRequest = new PdfAs4SLRequest(slRequestString, signatureData); String slResponse = this.connector.handleSLRequest(slRequest).getSLRespone(); element = (JAXBElement) SLMarschaller diff --git a/pdf-over-signer/pdf-over-sigpdfas4/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SLRequest.java b/pdf-over-signer/pdf-over-sigpdfas4/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SLRequest.java index 87babd59..36a6a8a4 100644 --- a/pdf-over-signer/pdf-over-sigpdfas4/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SLRequest.java +++ b/pdf-over-signer/pdf-over-sigpdfas4/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SLRequest.java @@ -41,15 +41,6 @@ public class PdfAs4SLRequest extends SLRequest { * @throws PdfAs4SLRequestException */ public PdfAs4SLRequest(String slRequest, byte[] signData) throws PdfAs4SLRequestException { -// if(!slRequest.contains(PdfAs4Signer.LOC_REF)) { -// log.error("PDF-AS SL request doesn't contain " + PdfAs4Signer.LOC_REF); -// log.debug("Request: " + slRequest); -// throw new PdfAs4SLRequestException("PDF-AS SL request doesn't contain " + PdfAs4Signer.LOC_REF); -// } -// -// // Modifing SL Request ... -// setRequest(slRequest.replace(PdfAs4Signer.LOC_REF, SLRequest.DATAOBJECT_STRING)); - setRequest(slRequest); setSignatureData(signData == null ? null : new ByteArrayDocumentSource(signData)); } diff --git a/pdf-over-signer/pdf-over-sigpdfas4/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4Signer.java b/pdf-over-signer/pdf-over-sigpdfas4/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4Signer.java index 0f42a517..efce1c6e 100644 --- a/pdf-over-signer/pdf-over-sigpdfas4/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4Signer.java +++ b/pdf-over-signer/pdf-over-sigpdfas4/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4Signer.java @@ -20,6 +20,7 @@ import at.gv.egiz.pdfas.common.exceptions.PDFASError; import at.gv.egiz.pdfas.common.exceptions.PdfAsException; import at.gv.egiz.pdfas.lib.api.ByteArrayDataSource; import at.gv.egiz.pdfas.lib.api.Configuration; +import at.gv.egiz.pdfas.lib.api.IConfigurationConstants; import at.gv.egiz.pdfas.lib.api.PdfAs; import at.gv.egiz.pdfas.lib.api.PdfAsFactory; import at.gv.egiz.pdfas.lib.api.sign.SignParameter; @@ -71,7 +72,7 @@ public class PdfAs4Signer implements Signer { if (sigEmblem != null && !sigEmblem.trim().isEmpty()) { config.setValue("sig_obj." + sigProfile + ".value.SIG_LABEL", sigEmblem); } - + if(sigNote != null) { config.setValue("sig_obj." + sigProfile + ".value.SIG_NOTE", sigNote); } @@ -107,6 +108,13 @@ public class PdfAs4Signer implements Signer { SignParameter param = sstate.getSignParameter(); + Configuration config = param.getConfiguration(); + log.debug("Use base64 request? " + sstate.getUseBase64Request()); + config.setValue(IConfigurationConstants.SL_REQUEST_TYPE, + sstate.getUseBase64Request() ? + IConfigurationConstants.SL_REQUEST_TYPE_BASE64 : + IConfigurationConstants.SL_REQUEST_TYPE_UPLOAD); + ISLConnector connector = new PdfAs4BKUSLConnector(sstate.getBKUConnector()); param.setPlainSigner(new PAdESSigner(connector)); diff --git a/pdf-over-signer/pdf-over-sigpdfas4/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SigningState.java b/pdf-over-signer/pdf-over-sigpdfas4/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SigningState.java index b8280142..ec2efdae 100644 --- a/pdf-over-signer/pdf-over-sigpdfas4/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SigningState.java +++ b/pdf-over-signer/pdf-over-sigpdfas4/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SigningState.java @@ -48,6 +48,8 @@ public class PdfAs4SigningState implements SigningState { private BkuSlConnector connector; + private boolean useBase64Request; + /* (non-Javadoc) * @see at.asit.pdfover.signator.SigningState#getSignatureRequest() */ @@ -56,20 +58,28 @@ public class PdfAs4SigningState implements SigningState { return this.slrequest; } + /** + * Sets the SL Request + * @param request The SL Request + */ + public void setSignatureRequest(SLRequest request) { + this.slrequest = request; + } + /* (non-Javadoc) - * @see at.asit.pdfover.signator.SigningState#setSignatureResponse(at.asit.pdfover.signator.SLResponse) + * @see at.asit.pdfover.signator.SigningState#setUseBase64Request(boolean) */ @Override - public void setSignatureResponse(SLResponse response) { - this.slresponse = response; + public void setUseBase64Request(boolean useBase64Request) { + this.useBase64Request = useBase64Request; } /** - * Sets the SL Request - * @param request The SL Request + * Gets whether to use base64 (or FileUpload) for request data + * @return whether to use base64 for request data */ - public void setSignatureRequest(SLRequest request) { - this.slrequest = request; + public boolean getUseBase64Request() { + return this.useBase64Request; } /** @@ -80,6 +90,14 @@ public class PdfAs4SigningState implements SigningState { return this.slresponse; } + /* (non-Javadoc) + * @see at.asit.pdfover.signator.SigningState#setSignatureResponse(at.asit.pdfover.signator.SLResponse) + */ + @Override + public void setSignatureResponse(SLResponse response) { + this.slresponse = response; + } + /* (non-Javadoc) * @see at.asit.pdfover.signator.SigningState#hasSignatureResponse() */ -- cgit v1.2.3