aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/gv/egiz/pdfas/impl/api/internal/PdfAsInternalObject.java
diff options
context:
space:
mode:
authorpdanner <pdanner@7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c>2010-12-13 16:00:29 +0000
committerpdanner <pdanner@7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c>2010-12-13 16:00:29 +0000
commitc0ea288869c5c21d93c59702148305eefa3f1f51 (patch)
treef2f6cef0c3dda4ee58ede744db37debba48d88db /src/main/java/at/gv/egiz/pdfas/impl/api/internal/PdfAsInternalObject.java
parent6a72aee4ceb27b015c76d8fda471f6fa998114f9 (diff)
downloadpdf-as-3-c0ea288869c5c21d93c59702148305eefa3f1f51.tar.gz
pdf-as-3-c0ea288869c5c21d93c59702148305eefa3f1f51.tar.bz2
pdf-as-3-c0ea288869c5c21d93c59702148305eefa3f1f51.zip
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
Diffstat (limited to 'src/main/java/at/gv/egiz/pdfas/impl/api/internal/PdfAsInternalObject.java')
-rw-r--r--src/main/java/at/gv/egiz/pdfas/impl/api/internal/PdfAsInternalObject.java29
1 files changed, 16 insertions, 13 deletions
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;