From c0ea288869c5c21d93c59702148305eefa3f1f51 Mon Sep 17 00:00:00 2001 From: pdanner Date: Mon, 13 Dec 2010 16:00:29 +0000 Subject: Minor changes to ease web -> pdf-as handling git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@706 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c --- .../impl/api/internal/PdfAsInternalObject.java | 29 ++++++++++++---------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'src/main/java/at/gv/egiz/pdfas/impl/api/internal') diff --git a/src/main/java/at/gv/egiz/pdfas/impl/api/internal/PdfAsInternalObject.java b/src/main/java/at/gv/egiz/pdfas/impl/api/internal/PdfAsInternalObject.java index 747f6b0..6531678 100644 --- a/src/main/java/at/gv/egiz/pdfas/impl/api/internal/PdfAsInternalObject.java +++ b/src/main/java/at/gv/egiz/pdfas/impl/api/internal/PdfAsInternalObject.java @@ -56,6 +56,7 @@ import at.knowcenter.wag.egov.egiz.sig.connectors.bku.BKUHelper; import at.knowcenter.wag.egov.egiz.sig.connectors.bku.BKUPostConnection; import at.knowcenter.wag.egov.egiz.sig.connectors.bku.EnvelopedBase64BKUConnector; import at.knowcenter.wag.egov.egiz.sig.connectors.bku.LocRefDetachedBKUConnector; +import at.knowcenter.wag.egov.egiz.sig.connectors.bku.MultipartDetachedBKUConnector; import at.knowcenter.wag.egov.egiz.sig.connectors.bku.OldEnvelopingBase64BKUConnector; import at.knowcenter.wag.egov.egiz.sig.connectors.bku.SignSignatureObject; import at.knowcenter.wag.egov.egiz.sig.connectors.mocca.LocRefDetachedMOCCAConnector; @@ -86,8 +87,8 @@ public class PdfAsInternalObject implements PdfAsInternal { /** * @see PdfAsInternal#finishLocalSign(PdfAs, SignParameters, SignatureDetailInformation, LocalBKUParams, String) */ - public SignResult finishLocalSign(PdfAs pdfAs, SignParameters signParameters, SignatureDetailInformation sdi, LocalBKUParams bkuParams, String xmlResponse) throws PdfAsException { - LocalConnector c = chooseLocalConnectorForSign(signParameters.getSignatureDevice(), signParameters.getSignatureProfileId(), "not needed"); + public SignResult finishLocalSign(PdfAs pdfAs, SignParameters signParameters, SignatureDetailInformation sdi, LocalBKUParams bkuParams, boolean multipart, String xmlResponse) throws PdfAsException { + LocalConnector c = chooseLocalConnectorForSign(signParameters.getSignatureDevice(), signParameters.getSignatureProfileId(), "not needed", multipart); SignSignatureObject sso = c.analyzeSignResponse(buildResponseProperties(bkuParams, xmlResponse)); ((SignatureDetailInformationImpl)sdi).setSignSignatureObject(sso); @@ -106,18 +107,20 @@ public class PdfAsInternalObject implements PdfAsInternal { return ret; } - private LocalConnector chooseLocalConnectorForSign(String connector, String profile, String loc_ref_url) throws ConnectorException{ + private LocalConnector chooseLocalConnectorForSign(String device, String profile, String loc_ref_url, boolean multipart) throws ConnectorException{ ConnectorParameters cp = new ConnectorParameters(); cp.setProfileId(profile); - - if (Constants.SIGNATURE_DEVICE_MOC.equals(connector)) { - - return new LocRefDetachedMOCCAConnector(cp, loc_ref_url); - - } else if (Constants.SIGNATURE_DEVICE_BKU.equals(connector)){ - return new LocRefDetachedBKUConnector(cp, loc_ref_url); - + if (Constants.SIGNATURE_DEVICE_MOC.equals(device)) { + if (!multipart) { + return new LocRefDetachedMOCCAConnector(cp, loc_ref_url); + } + } else if (Constants.SIGNATURE_DEVICE_BKU.equals(device)){ + if (multipart) { + return new MultipartDetachedBKUConnector(cp); + } else { + return new LocRefDetachedBKUConnector(cp, loc_ref_url); + } } log.error("Currently only the BKU connector is fully implemented."); @@ -204,9 +207,9 @@ public class PdfAsInternalObject implements PdfAsInternal { /** * @see PdfAsInternal#prepareLocalSignRequest(SignParameters, String, SignatureDetailInformation) */ - public String prepareLocalSignRequest(SignParameters signParameters, String loc_ref_url, + public String prepareLocalSignRequest(SignParameters signParameters, boolean multipart, String loc_ref_url, SignatureDetailInformation sdi) throws ConnectorException { - LocalConnector c = chooseLocalConnectorForSign(signParameters.getSignatureDevice(), signParameters.getSignatureProfileId(), loc_ref_url); + LocalConnector c = chooseLocalConnectorForSign(signParameters.getSignatureDevice(), signParameters.getSignatureProfileId(), loc_ref_url, multipart); SignatureData sd = new SignatureDataImpl(new PdfDataSourceAdapter(sdi.getSignatureData()), sdi.getSignatureData().getMimeType(), sdi.getSignatureData().getCharacterEncoding()); String sign_request = c.prepareSignRequest(sd); return sign_request; -- cgit v1.2.3