aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors
diff options
context:
space:
mode:
authorpdanner <pdanner@7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c>2010-11-26 12:01:18 +0000
committerpdanner <pdanner@7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c>2010-11-26 12:01:18 +0000
commit1b337e50a9edb280aea49879f901613e1fe17b55 (patch)
tree8f0d6b59de02936320f2e4c180fde02a50c1fc7a /src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors
parent7040bdb8ace897f0cfdd43bd0304f3487b27df22 (diff)
downloadpdf-as-3-1b337e50a9edb280aea49879f901613e1fe17b55.tar.gz
pdf-as-3-1b337e50a9edb280aea49879f901613e1fe17b55.tar.bz2
pdf-as-3-1b337e50a9edb280aea49879f901613e1fe17b55.zip
Changes for xmldsig reconstruction
git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@612 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c
Diffstat (limited to 'src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors')
-rw-r--r--src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/Connector.java17
-rw-r--r--src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/LocalConnector.java7
-rw-r--r--src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/bku/DetachedBKUConnector.java75
-rw-r--r--src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/bku/EnvelopedBase64BKUConnector.java51
-rw-r--r--src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/moa/DetachedLocRefMOAConnector.java37
-rw-r--r--src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/moa/EnvelopingBase64MOAConnector.java49
-rw-r--r--src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/moa/MOASoapWithAttachmentConnector.java77
-rw-r--r--src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/mocca/LocRefDetachedMOCCAConnector.java17
8 files changed, 220 insertions, 110 deletions
diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/Connector.java b/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/Connector.java
index 5444d1b..2d8840a 100644
--- a/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/Connector.java
+++ b/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/Connector.java
@@ -3,6 +3,7 @@
*/
package at.knowcenter.wag.egov.egiz.sig.connectors;
+import at.gv.egiz.pdfas.api.xmldsig.XMLDsigData;
import at.knowcenter.wag.egov.egiz.exceptions.ConnectorException;
import at.knowcenter.wag.egov.egiz.sig.SignatureData;
import at.knowcenter.wag.egov.egiz.sig.SignatureResponse;
@@ -14,6 +15,8 @@ import at.knowcenter.wag.egov.egiz.sig.connectors.bku.SignSignatureObject;
*/
public interface Connector
{
+//23.11.2010 changed by exthex - added reconstructXMLDsig(SignatureData data, SignSignatureObject so)
+
/**
* Performs a sign.
*
@@ -33,10 +36,22 @@ public interface Connector
* The data to be verified.
* @param so
* The signature object with the signature information.
+ * @param dsig
+ * The xmldsig info which will be enveloped in the verify request.
* @return Returns the SignatureResponse with the result of the verification.
* @throws ConnectorException
* Thrown if something goes wrong.
*/
- public SignatureResponse doVerify(SignatureData data, SignSignatureObject so) throws ConnectorException;
+ public SignatureResponse doVerify(SignatureData data, SignSignatureObject so, XMLDsigData dsig) throws ConnectorException;
+ /**
+ * Reconstruct the xmldsig info of the given {@link SignSignatureObject}
+ *
+ * @param data
+ * @param so
+ * @return
+ * @throws ConnectorException
+ */
+ public XMLDsigData reconstructXMLDsig(SignatureData data, SignSignatureObject so) throws ConnectorException;
+
}
diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/LocalConnector.java b/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/LocalConnector.java
index 05f8149..91806a7 100644
--- a/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/LocalConnector.java
+++ b/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/LocalConnector.java
@@ -5,6 +5,7 @@ package at.knowcenter.wag.egov.egiz.sig.connectors;
import java.util.Properties;
+import at.gv.egiz.pdfas.api.xmldsig.XMLDsigData;
import at.knowcenter.wag.egov.egiz.exceptions.ConnectorException;
import at.knowcenter.wag.egov.egiz.sig.SignatureData;
import at.knowcenter.wag.egov.egiz.sig.SignatureResponse;
@@ -15,6 +16,8 @@ import at.knowcenter.wag.egov.egiz.sig.connectors.bku.SignSignatureObject;
*/
public interface LocalConnector
{
+//23.11.2010 changed by exthex - added XMLDsigData parameter to prepareVerifyRequest to allow reuse
+
/**
* Prepares the sign request xml to be sent using the sign request template.
*
@@ -46,11 +49,13 @@ public interface LocalConnector
* The SignatureData.
* @param so
* The signature information object.
+ * @param dsigData
+ * The previously recreated xmldsig block of the signature
* @return Returns the verify request xml to be sent.
* @throws ConnectorException
* f.e.
*/
- public String prepareVerifyRequest(SignatureData data, SignSignatureObject so) throws ConnectorException;
+ public String prepareVerifyRequest(SignatureData data, SignSignatureObject so, XMLDsigData dsigData) throws ConnectorException;
/**
* Analyzes the verify response string.
diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/bku/DetachedBKUConnector.java b/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/bku/DetachedBKUConnector.java
index 6638b12..c55e727 100644
--- a/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/bku/DetachedBKUConnector.java
+++ b/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/bku/DetachedBKUConnector.java
@@ -11,6 +11,7 @@ import org.apache.commons.logging.LogFactory;
import at.gv.egiz.pdfas.algorithmSuite.AlgorithmSuiteObject;
import at.gv.egiz.pdfas.algorithmSuite.AlgorithmSuiteUtil;
+import at.gv.egiz.pdfas.api.xmldsig.XMLDsigData;
import at.gv.egiz.pdfas.exceptions.ErrorCode;
import at.gv.egiz.pdfas.framework.ConnectorParameters;
import at.knowcenter.wag.egov.egiz.cfg.SettingsReader;
@@ -42,6 +43,8 @@ import at.knowcenter.wag.egov.egiz.tools.CodingHelper;
*/
public class DetachedBKUConnector implements Connector, LocalConnector
{
+//23.11.2010 changed by exthex - added reconstructXMLDsig method and moved xmldsig creation to chooseAndCreateXMLDsig method
+
/**
* The log.
*/
@@ -274,11 +277,11 @@ public class DetachedBKUConnector implements Connector, LocalConnector
* @throws ConnectorException
* f.e.
*/
- public SignatureResponse doVerify(SignatureData data, SignSignatureObject so) throws ConnectorException
+ public SignatureResponse doVerify(SignatureData data, SignSignatureObject so, XMLDsigData dsig) throws ConnectorException
{
log.debug("doVerify:"); //$NON-NLS-1$
- String verify_request_xml = prepareVerifyRequest(data, so);
+ String verify_request_xml = prepareVerifyRequest(data, so, dsig);
log.debug("verify_request_xml = " + verify_request_xml); //$NON-NLS-1$
// TODO debug - remove
@@ -316,39 +319,19 @@ public class DetachedBKUConnector implements Connector, LocalConnector
* @throws ConnectorException
* f.e.
*/
- public String prepareVerifyRequest(SignatureData data, SignSignatureObject so) throws ConnectorException
+ public String prepareVerifyRequest(SignatureData data, SignSignatureObject so, XMLDsigData dsigData) throws ConnectorException
{
String verify_request_template = this.environment.getVerifyRequestTemplate();
String xml_content = null;
- // MOA
- if (SigKZIDHelper.isMOASigned(so))
+ if (dsigData != null && dsigData.getXmlDsig() != null)
{
- log.debug("The signature is MOA signed -> getting XML content from DetachedLocRefMOA connector.");
- DetachedLocRefMOAConnector moa_conn = new DetachedLocRefMOAConnector(this.environment.getProfile(), "loc ref not needed here");
- xml_content = moa_conn.prepareXMLContent(data, so);
-
- // MOCCA
- } else if (SigKZIDHelper.isMOCCASigned(so)) {
- log.debug("MOCCA signature detected.");
- String algorithmId = SigKZIDHelper.parseAlgorithmId(so.id);
- log.debug("Algorithm = " + algorithmId);
- LocRefDetachedMOCCAConnector mocca_connector = new LocRefDetachedMOCCAConnector(this.params, "not needed here", algorithmId);
- xml_content = mocca_connector.prepareXMLContent(data, so);
-
- // ATRUST
- } else if (SigKZIDHelper.isATrustSigned(so)) {
- log.debug("ATrust signature detected");
- MOASoapWithAttachmentConnector moaConn = new MOASoapWithAttachmentConnector(this.params);
- moaConn.reInitVerifyTemplate(MOASoapWithAttachmentConnector.ATRUST_VERIFY_TEMPLATE_KEY);
- xml_content = moaConn.prepareXMLContent(data, so);
- }
- // TD
+ xml_content = dsigData.getXmlDsig();
+ }
else
{
- log.debug("TD signature signature detected.");
- xml_content = prepareXMLContent(data, so);
+ xml_content = chooseAndCreateXMLDsig(data, so);
}
String verify_request_xml = verify_request_template.replaceFirst(TemplateReplaces.XML_CONTENT_REPLACE, xml_content);
@@ -358,7 +341,36 @@ public class DetachedBKUConnector implements Connector, LocalConnector
return verify_request_xml;
}
- /**
+ private String chooseAndCreateXMLDsig(SignatureData data, SignSignatureObject so) throws ConnectorException {
+ // MOA
+ if (SigKZIDHelper.isMOASigned(so))
+ {
+ log.debug("The signature is MOA signed -> getting XML content from DetachedLocRefMOA connector.");
+ DetachedLocRefMOAConnector moa_conn = new DetachedLocRefMOAConnector(this.environment.getProfile(), "loc ref not needed here");
+ return moa_conn.prepareXMLContent(data, so);
+ // MOCCA
+ } else if (SigKZIDHelper.isMOCCASigned(so)) {
+ log.debug("MOCCA signature detected.");
+ String algorithmId = SigKZIDHelper.parseAlgorithmId(so.id);
+ log.debug("Algorithm = " + algorithmId);
+ LocRefDetachedMOCCAConnector mocca_connector = new LocRefDetachedMOCCAConnector(this.params, "not needed here", algorithmId);
+ return mocca_connector.prepareXMLContent(data, so);
+ // ATRUST
+ } else if (SigKZIDHelper.isATrustSigned(so)) {
+ log.debug("ATrust signature detected");
+ MOASoapWithAttachmentConnector moaConn = new MOASoapWithAttachmentConnector(this.params);
+ moaConn.reInitVerifyTemplate(MOASoapWithAttachmentConnector.ATRUST_VERIFY_TEMPLATE_KEY);
+ return moaConn.prepareXMLContent(data, so);
+ }
+ // TD
+ else
+ {
+ log.debug("TD signature signature detected.");
+ return prepareXMLContent(data, so);
+ }
+ }
+
+/**
* Prepares the XML content the holds the actual signature data.
*
* <p>
@@ -773,4 +785,11 @@ public class DetachedBKUConnector implements Connector, LocalConnector
return value;
}
}
+
+
+ public XMLDsigData reconstructXMLDsig(SignatureData data, SignSignatureObject so)
+ throws ConnectorException {
+ String xmldsig = chooseAndCreateXMLDsig(data, so);
+ return new XMLDsigData(xmldsig, true);
+ }
}
diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/bku/EnvelopedBase64BKUConnector.java b/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/bku/EnvelopedBase64BKUConnector.java
index 8107d67..08f0199 100644
--- a/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/bku/EnvelopedBase64BKUConnector.java
+++ b/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/bku/EnvelopedBase64BKUConnector.java
@@ -10,9 +10,9 @@ import java.util.Properties;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
import at.gv.egiz.pdfas.algorithmSuite.AlgorithmSuiteObject;
import at.gv.egiz.pdfas.algorithmSuite.AlgorithmSuiteUtil;
+import at.gv.egiz.pdfas.api.xmldsig.XMLDsigData;
import at.gv.egiz.pdfas.exceptions.ErrorCode;
import at.gv.egiz.pdfas.framework.ConnectorParameters;
import at.knowcenter.wag.egov.egiz.cfg.SettingsReader;
@@ -26,17 +26,9 @@ import at.knowcenter.wag.egov.egiz.sig.connectors.ConnectorEnvironment;
import at.knowcenter.wag.egov.egiz.sig.connectors.LocalConnector;
import at.knowcenter.wag.egov.egiz.sig.connectors.TemplateReplaces;
import at.knowcenter.wag.egov.egiz.sig.connectors.moa.EnvelopingBase64MOAConnector;
-import at.knowcenter.wag.egov.egiz.sig.connectors.mocca.MOCCAHelper;
-import at.knowcenter.wag.egov.egiz.sig.sigid.DetachedIdFormatter;
-import at.knowcenter.wag.egov.egiz.sig.sigid.DetachedLocRefMOAIdFormatter;
-import at.knowcenter.wag.egov.egiz.sig.sigid.DetachedMOCIdFormatter;
import at.knowcenter.wag.egov.egiz.sig.sigid.HotfixIdFormatter;
import at.knowcenter.wag.egov.egiz.sig.sigkz.SigKZIDHelper;
-import at.knowcenter.wag.egov.egiz.sig.signaturelayout.SignatureLayoutHandler;
-import at.knowcenter.wag.egov.egiz.sig.signaturelayout.SignatureLayoutHandlerFactory;
-import at.knowcenter.wag.egov.egiz.sig.signaturelayout.mocca.MOCCASignatureLayout10Handler;
import at.knowcenter.wag.egov.egiz.tools.CodingHelper;
-import at.knowcenter.wag.egov.egiz.tools.FileHelper;
/**
* @author wprinz
@@ -44,6 +36,7 @@ import at.knowcenter.wag.egov.egiz.tools.FileHelper;
*/
public class EnvelopedBase64BKUConnector implements Connector, LocalConnector
{
+ //23.11.2010 changed by exthex - added reconstructXMLDsig method and moved xmldsig creation to chooseAndCreateXMLDsig method
/**
* The log.
@@ -105,11 +98,11 @@ public class EnvelopedBase64BKUConnector implements Connector, LocalConnector
* @see at.knowcenter.wag.egov.egiz.sig.connectors.Connector#doVerify(at.knowcenter.wag.egov.egiz.sig.SignatureData,
* at.knowcenter.wag.egov.egiz.sig.connectors.bku.SignSignatureObject)
*/
- public SignatureResponse doVerify(SignatureData data, SignSignatureObject so) throws ConnectorException
+ public SignatureResponse doVerify(SignatureData data, SignSignatureObject so, XMLDsigData dsig) throws ConnectorException
{
log.debug("doVerify:"); //$NON-NLS-1$
- String verify_request_xml = prepareVerifyRequest(data, so);
+ String verify_request_xml = prepareVerifyRequest(data, so, dsig);
// DebugHelper.debugStringToFile(verify_request_xml, "BKU_EnvB64_verify_request.xml"); //$NON-NLS-1$
String url = this.environment.getVerifyURL();
@@ -298,22 +291,18 @@ public class EnvelopedBase64BKUConnector implements Connector, LocalConnector
* @throws ConnectorException
* f.e.
*/
- public String prepareVerifyRequest(SignatureData data, SignSignatureObject so) throws ConnectorException
+ public String prepareVerifyRequest(SignatureData data, SignSignatureObject so, XMLDsigData dsigData) throws ConnectorException
{
String verify_request_template = this.environment.getVerifyRequestTemplate();
String xml_content = null;
- if (SigKZIDHelper.isMOASigned(so))
+ if (dsigData != null && dsigData.getXmlDsig() != null)
{
- log.debug("The signature is MOA signed -> getting XML content from Base64MOA connector.");
- ConnectorParameters cp = new ConnectorParameters();
- cp.setProfileId(this.environment.getProfile());
- EnvelopingBase64MOAConnector moa_conn = new EnvelopingBase64MOAConnector(cp);
- xml_content = moa_conn.prepareXMLContent(data, so);
+ xml_content = dsigData.getXmlDsig();
}
else
{
- xml_content = prepareXMLContent(data, so);
+ xml_content = chooseAndCreateXMLDsig(data, so);
}
String verify_request_xml = verify_request_template.replaceFirst(TemplateReplaces.XML_CONTENT_REPLACE, xml_content);
@@ -323,7 +312,22 @@ public class EnvelopedBase64BKUConnector implements Connector, LocalConnector
return verify_request_xml;
}
- /**
+ private String chooseAndCreateXMLDsig(SignatureData data, SignSignatureObject so) throws ConnectorException {
+ if (SigKZIDHelper.isMOASigned(so))
+ {
+ log.debug("The signature is MOA signed -> getting XML content from Base64MOA connector.");
+ ConnectorParameters cp = new ConnectorParameters();
+ cp.setProfileId(this.environment.getProfile());
+ EnvelopingBase64MOAConnector moa_conn = new EnvelopingBase64MOAConnector(cp);
+ return moa_conn.prepareXMLContent(data, so);
+ }
+ else
+ {
+ return prepareXMLContent(data, so);
+ }
+ }
+
+/**
* Sends the request to the given URL.
*
* @param url
@@ -632,4 +636,11 @@ public class EnvelopedBase64BKUConnector implements Connector, LocalConnector
return value;
}
}
+
+
+ public XMLDsigData reconstructXMLDsig(SignatureData data, SignSignatureObject so)
+ throws ConnectorException {
+ String xmldsig = chooseAndCreateXMLDsig(data, so);
+ return new XMLDsigData(xmldsig, false);
+ }
}
diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/moa/DetachedLocRefMOAConnector.java b/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/moa/DetachedLocRefMOAConnector.java
index 70ec5ab..5afd63e 100644
--- a/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/moa/DetachedLocRefMOAConnector.java
+++ b/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/moa/DetachedLocRefMOAConnector.java
@@ -12,6 +12,7 @@ import org.apache.commons.logging.LogFactory;
import at.gv.egiz.pdfas.algorithmSuite.AlgorithmMapper;
import at.gv.egiz.pdfas.algorithmSuite.AlgorithmSuiteObject;
import at.gv.egiz.pdfas.algorithmSuite.AlgorithmSuiteUtil;
+import at.gv.egiz.pdfas.api.xmldsig.XMLDsigData;
import at.gv.egiz.pdfas.exceptions.ErrorCode;
import at.gv.egiz.pdfas.framework.ConnectorParameters;
import at.knowcenter.wag.egov.egiz.cfg.SettingsReader;
@@ -39,6 +40,7 @@ import at.knowcenter.wag.egov.egiz.tools.FileHelper;
*/
public class DetachedLocRefMOAConnector implements Connector
{
+ //23.11.2010 changed by exthex - added reconstructXMLDsig method and moved xmldsig creation to chooseAndCreateXMLDsig method
/**
* The SIG_ID prefix.
*/
@@ -142,11 +144,11 @@ public class DetachedLocRefMOAConnector implements Connector
* @see at.knowcenter.wag.egov.egiz.sig.connectors.Connector#doVerify(at.knowcenter.wag.egov.egiz.sig.SignatureData,
* at.knowcenter.wag.egov.egiz.sig.connectors.bku.SignSignatureObject)
*/
- public SignatureResponse doVerify(SignatureData data, SignSignatureObject so) throws ConnectorException
+ public SignatureResponse doVerify(SignatureData data, SignSignatureObject so, XMLDsigData dsig) throws ConnectorException
{
log.debug("doVerify:"); //$NON-NLS-1$
- String verify_request_xml = prepareVerifyRequest(data, so);
+ String verify_request_xml = prepareVerifyRequest(data, so, dsig);
log.debug("verify_request_xml = " + verify_request_xml); //$NON-NLS-1$
String url = this.environment.getVerifyURL();
@@ -170,21 +172,18 @@ public class DetachedLocRefMOAConnector implements Connector
* @throws ConnectorException
* f.e.
*/
- public String prepareVerifyRequest(SignatureData data, SignSignatureObject so) throws ConnectorException
+ public String prepareVerifyRequest(SignatureData data, SignSignatureObject so, XMLDsigData dsigData) throws ConnectorException
{
String verify_request_template = this.environment.getVerifyRequestTemplate();
String xml_content = null;
- if (!SigKZIDHelper.isMOASigned(so))
+ if (dsigData != null && dsigData.getXmlDsig() != null)
{
- ConnectorParameters cp = new ConnectorParameters();
- cp.setProfileId(this.environment.getProfile());
- DetachedBKUConnector bku_connector = new DetachedBKUConnector(cp, "not needed here");
- xml_content = bku_connector.prepareXMLContent(data, so);
+ xml_content = dsigData.getXmlDsig();
}
else
{
- xml_content = prepareXMLContent(data, so);
+ xml_content = chooseAndCreateXMLDsig(data, so);
}
String verify_request_xml = verify_request_template.replaceFirst(TemplateReplaces.XML_CONTENT_REPLACE, xml_content);
@@ -619,4 +618,24 @@ public class DetachedLocRefMOAConnector implements Connector
}
+ public XMLDsigData reconstructXMLDsig(SignatureData data, SignSignatureObject so)
+ throws ConnectorException {
+ String xmldsig = chooseAndCreateXMLDsig(data, so);
+ return new XMLDsigData(xmldsig, true);
+ }
+
+ private String chooseAndCreateXMLDsig(SignatureData data, SignSignatureObject so) throws ConnectorException {
+ if (!SigKZIDHelper.isMOASigned(so))
+ {
+ ConnectorParameters cp = new ConnectorParameters();
+ cp.setProfileId(this.environment.getProfile());
+ DetachedBKUConnector bku_connector = new DetachedBKUConnector(cp, "not needed here");
+ return bku_connector.prepareXMLContent(data, so);
+ }
+ else
+ {
+ return prepareXMLContent(data, so);
+ }
+ }
+
}
diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/moa/EnvelopingBase64MOAConnector.java b/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/moa/EnvelopingBase64MOAConnector.java
index b74c7ff..409f97f 100644
--- a/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/moa/EnvelopingBase64MOAConnector.java
+++ b/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/moa/EnvelopingBase64MOAConnector.java
@@ -12,6 +12,7 @@ import org.apache.commons.logging.LogFactory;
import at.gv.egiz.pdfas.algorithmSuite.AlgorithmSuiteObject;
import at.gv.egiz.pdfas.algorithmSuite.AlgorithmSuiteUtil;
+import at.gv.egiz.pdfas.api.xmldsig.XMLDsigData;
import at.gv.egiz.pdfas.framework.ConnectorParameters;
import at.knowcenter.wag.egov.egiz.cfg.SettingsReader;
import at.knowcenter.wag.egov.egiz.exceptions.ConnectorException;
@@ -37,6 +38,7 @@ import at.knowcenter.wag.egov.egiz.tools.FileHelper;
*/
public class EnvelopingBase64MOAConnector implements Connector
{
+ //23.11.2010 changed by exthex - added reconstructXMLDsig method and moved xmldsig creation to chooseAndCreateXMLDsig method
/**
* The log.
*/
@@ -96,11 +98,11 @@ public class EnvelopingBase64MOAConnector implements Connector
* @see at.knowcenter.wag.egov.egiz.sig.connectors.Connector#doVerify(at.knowcenter.wag.egov.egiz.sig.SignatureData,
* at.knowcenter.wag.egov.egiz.sig.connectors.bku.SignSignatureObject)
*/
- public SignatureResponse doVerify(SignatureData data, SignSignatureObject so) throws ConnectorException
+ public SignatureResponse doVerify(SignatureData data, SignSignatureObject so, XMLDsigData dsig) throws ConnectorException
{
log.debug("doVerify:"); //$NON-NLS-1$
- String verify_request_xml = prepareVerifyRequest(data, so);
+ String verify_request_xml = prepareVerifyRequest(data, so, dsig);
log.debug("verify_request_xml = " + verify_request_xml); //$NON-NLS-1$
String url = this.environment.getVerifyURL();
@@ -163,27 +165,18 @@ public class EnvelopingBase64MOAConnector implements Connector
* @throws ConnectorException
* f.e.
*/
- public String prepareVerifyRequest(SignatureData data, SignSignatureObject so) throws ConnectorException
+ public String prepareVerifyRequest(SignatureData data, SignSignatureObject so, XMLDsigData dsigData) throws ConnectorException
{
String verify_request_template = this.environment.getVerifyRequestTemplate();
String xml_content = null;
- if (!SigKZIDHelper.isMOASigned(so))
+ if (dsigData != null && dsigData.getXmlDsig() != null)
{
- if (SigKZIDHelper.isOldBKU(so))
- {
- OldEnvelopingBase64BKUConnector bku_connector = new OldEnvelopingBase64BKUConnector(this.environment.getProfile());
- xml_content = bku_connector.prepareXMLContent(data, so);
- }
- else
- {
- EnvelopedBase64BKUConnector bku_connector = new EnvelopedBase64BKUConnector(this.environment.getProfile());
- xml_content = bku_connector.prepareXMLContent(data, so);
- }
+ xml_content = dsigData.getXmlDsig();
}
else
{
- xml_content = prepareXMLContent(data, so);
+ xml_content = chooseAndCreateXMLDsig(data, so);
}
String verify_request_xml = verify_request_template.replaceFirst(TemplateReplaces.XML_CONTENT_REPLACE, xml_content);
@@ -596,4 +589,30 @@ public class EnvelopingBase64MOAConnector implements Connector
}
+ public XMLDsigData reconstructXMLDsig(SignatureData data, SignSignatureObject so)
+ throws ConnectorException {
+ String xmldsig = chooseAndCreateXMLDsig(data, so);
+ return new XMLDsigData(xmldsig, false);
+ }
+
+ private String chooseAndCreateXMLDsig(SignatureData data, SignSignatureObject so) throws ConnectorException {
+ if (!SigKZIDHelper.isMOASigned(so))
+ {
+ if (SigKZIDHelper.isOldBKU(so))
+ {
+ OldEnvelopingBase64BKUConnector bku_connector = new OldEnvelopingBase64BKUConnector(this.environment.getProfile());
+ return bku_connector.prepareXMLContent(data, so);
+ }
+ else
+ {
+ EnvelopedBase64BKUConnector bku_connector = new EnvelopedBase64BKUConnector(this.environment.getProfile());
+ return bku_connector.prepareXMLContent(data, so);
+ }
+ }
+ else
+ {
+ return prepareXMLContent(data, so);
+ }
+ }
+
}
diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/moa/MOASoapWithAttachmentConnector.java b/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/moa/MOASoapWithAttachmentConnector.java
index f72cbc2..1d310cf 100644
--- a/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/moa/MOASoapWithAttachmentConnector.java
+++ b/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/moa/MOASoapWithAttachmentConnector.java
@@ -11,6 +11,7 @@ import org.apache.commons.logging.LogFactory;
import at.gv.egiz.pdfas.algorithmSuite.AlgorithmSuiteObject;
import at.gv.egiz.pdfas.algorithmSuite.AlgorithmSuiteUtil;
+import at.gv.egiz.pdfas.api.xmldsig.XMLDsigData;
import at.gv.egiz.pdfas.exceptions.ErrorCode;
import at.gv.egiz.pdfas.framework.ConnectorParameters;
import at.knowcenter.wag.egov.egiz.cfg.SettingsReader;
@@ -37,6 +38,7 @@ import at.knowcenter.wag.egov.egiz.tools.CodingHelper;
*/
public class MOASoapWithAttachmentConnector implements Connector
{
+ //23.11.2010 changed by exthex - added reconstructXMLDsig method and moved xmldsig creation to chooseAndCreateXMLDsig method
public static final String ATRUST_VERIFY_TEMPLATE_KEY = "atrust.verify.template.detached";
/**
@@ -151,11 +153,11 @@ public class MOASoapWithAttachmentConnector implements Connector
* @see at.knowcenter.wag.egov.egiz.sig.connectors.Connector#doVerify(at.knowcenter.wag.egov.egiz.sig.SignatureData,
* at.knowcenter.wag.egov.egiz.sig.connectors.bku.SignSignatureObject)
*/
- public SignatureResponse doVerify(SignatureData data, SignSignatureObject so) throws ConnectorException
+ public SignatureResponse doVerify(SignatureData data, SignSignatureObject so, XMLDsigData dsig) throws ConnectorException
{
log.debug("doVerify:"); //$NON-NLS-1$
- String verify_request_xml = prepareVerifyRequest(data, so);
+ String verify_request_xml = prepareVerifyRequest(data, so, dsig);
log.debug("verify_request_xml = " + verify_request_xml); //$NON-NLS-1$
String url = this.environment.getVerifyURL();
@@ -179,36 +181,18 @@ public class MOASoapWithAttachmentConnector implements Connector
* @throws ConnectorException
* f.e.
*/
- public String prepareVerifyRequest(SignatureData data, SignSignatureObject so) throws ConnectorException
+ public String prepareVerifyRequest(SignatureData data, SignSignatureObject so, XMLDsigData dsigData) throws ConnectorException
{
String verify_request_template = this.environment.getVerifyRequestTemplate();
String xml_content = null;
-
- // MOA
- if (SigKZIDHelper.isMOASigned(so)) {
- log.debug("MOA signature detected.");
- xml_content = prepareXMLContent(data, so);
-
- // MOCCA
- } else if (SigKZIDHelper.isMOCCASigned(so)) {
- log.debug("MOCCA signature detected.");
- String algorithmId = SigKZIDHelper.parseAlgorithmId(so.id);
- log.debug("Algorithm = " + algorithmId);
- LocRefDetachedMOCCAConnector mocca_connector = new LocRefDetachedMOCCAConnector(this.params, "not needed here", algorithmId);
- xml_content = mocca_connector.prepareXMLContent(data, so);
-
- // ATrust
- } else if (SigKZIDHelper.isATrustSigned(so)) {
- log.debug("A-Trust signature detected.");
- this.environment.reInitVerifyTemplate(ATRUST_VERIFY_TEMPLATE_KEY);
- xml_content = prepareXMLContent(data, so);
-
- // TD
- } else {
- log.debug("TD signature signature detected.");
- DetachedBKUConnector bku_connector = new DetachedBKUConnector(this.params, "not needed here");
- xml_content = bku_connector.prepareXMLContent(data, so);
+ if (dsigData != null && dsigData.getXmlDsig() != null)
+ {
+ xml_content = dsigData.getXmlDsig();
+ }
+ else
+ {
+ xml_content = chooseAndCreateXMLDsig(data, so);
}
String verify_request_xml = verify_request_template.replaceFirst(TemplateReplaces.XML_CONTENT_REPLACE, xml_content);
@@ -230,7 +214,36 @@ public class MOASoapWithAttachmentConnector implements Connector
return verify_request_xml;
}
- /**
+ private String chooseAndCreateXMLDsig(SignatureData data, SignSignatureObject so) throws ConnectorException {
+
+ // MOA
+ if (SigKZIDHelper.isMOASigned(so)) {
+ log.debug("MOA signature detected.");
+ return prepareXMLContent(data, so);
+
+ // MOCCA
+ } else if (SigKZIDHelper.isMOCCASigned(so)) {
+ log.debug("MOCCA signature detected.");
+ String algorithmId = SigKZIDHelper.parseAlgorithmId(so.id);
+ log.debug("Algorithm = " + algorithmId);
+ LocRefDetachedMOCCAConnector mocca_connector = new LocRefDetachedMOCCAConnector(this.params, "not needed here", algorithmId);
+ return mocca_connector.prepareXMLContent(data, so);
+
+ // ATrust
+ } else if (SigKZIDHelper.isATrustSigned(so)) {
+ log.debug("A-Trust signature detected.");
+ this.environment.reInitVerifyTemplate(ATRUST_VERIFY_TEMPLATE_KEY);
+ return prepareXMLContent(data, so);
+
+ // TD
+ } else {
+ log.debug("TD signature signature detected.");
+ DetachedBKUConnector bku_connector = new DetachedBKUConnector(this.params, "not needed here");
+ return bku_connector.prepareXMLContent(data, so);
+ }
+ }
+
+/**
* Analyzes the verify response string.
*
* @param response_properties
@@ -699,4 +712,10 @@ public class MOASoapWithAttachmentConnector implements Connector
}
+ public XMLDsigData reconstructXMLDsig(SignatureData data, SignSignatureObject so)
+ throws ConnectorException {
+ String xmldsig = chooseAndCreateXMLDsig(data, so);
+ return new XMLDsigData(xmldsig, true);
+ }
+
}
diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/mocca/LocRefDetachedMOCCAConnector.java b/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/mocca/LocRefDetachedMOCCAConnector.java
index 0101c51..6f872f2 100644
--- a/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/mocca/LocRefDetachedMOCCAConnector.java
+++ b/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/mocca/LocRefDetachedMOCCAConnector.java
@@ -8,14 +8,13 @@ import java.util.regex.Pattern;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
import at.gv.egiz.pdfas.algorithmSuite.AlgorithmSuiteObject;
import at.gv.egiz.pdfas.algorithmSuite.AlgorithmSuiteUtil;
+import at.gv.egiz.pdfas.api.xmldsig.XMLDsigData;
import at.gv.egiz.pdfas.exceptions.ErrorCode;
import at.gv.egiz.pdfas.framework.ConnectorParameters;
import at.knowcenter.wag.egov.egiz.cfg.SettingsReader;
import at.knowcenter.wag.egov.egiz.exceptions.ConnectorException;
-import at.knowcenter.wag.egov.egiz.exceptions.SettingNotFoundException;
import at.knowcenter.wag.egov.egiz.exceptions.SettingsException;
import at.knowcenter.wag.egov.egiz.sig.SignatureData;
import at.knowcenter.wag.egov.egiz.sig.SignatureResponse;
@@ -26,18 +25,16 @@ import at.knowcenter.wag.egov.egiz.sig.connectors.TemplateReplaces;
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.SignSignatureObject;
-import at.knowcenter.wag.egov.egiz.sig.sigid.DetachedMOCIdFormatter;
-import at.knowcenter.wag.egov.egiz.sig.sigkz.SigKZIDHelper;
import at.knowcenter.wag.egov.egiz.sig.signaturelayout.SignatureLayoutHandler;
import at.knowcenter.wag.egov.egiz.sig.signaturelayout.SignatureLayoutHandlerFactory;
import at.knowcenter.wag.egov.egiz.tools.CodingHelper;
-import at.knowcenter.wag.egov.egiz.tools.FileHelper;
/**
* Connector for MOCCA.
* @author tknall
*/
public class LocRefDetachedMOCCAConnector implements Connector, LocalConnector {
+ //23.11.2010 changed by exthex - added reconstructXMLDsig method and moved xmldsig creation to chooseAndCreateXMLDsig method
private static Log log = LogFactory.getLog(LocRefDetachedMOCCAConnector.class);
@@ -120,7 +117,7 @@ public class LocRefDetachedMOCCAConnector implements Connector, LocalConnector {
* Verification is not supported by MOCCA. Therefore this method always throws a
* {@link ConnectorException} with error code {@link ErrorCode#SIGNATURE_VERIFICATION_NOT_SUPPORTED}.
*/
- public SignatureResponse doVerify(SignatureData data, SignSignatureObject so) throws ConnectorException {
+ public SignatureResponse doVerify(SignatureData data, SignSignatureObject so, XMLDsigData dsig) throws ConnectorException {
throw new ConnectorException(ErrorCode.SIGNATURE_VERIFICATION_NOT_SUPPORTED, "Signature Verification is not supported by MOCCA.");
}
@@ -194,7 +191,7 @@ public class LocRefDetachedMOCCAConnector implements Connector, LocalConnector {
* Verification is not supported by MOCCA. Therefore this method always throws a
* {@link ConnectorException} with error code {@link ErrorCode#SIGNATURE_VERIFICATION_NOT_SUPPORTED}.
*/
- public String prepareVerifyRequest(SignatureData data, SignSignatureObject so) throws ConnectorException {
+ public String prepareVerifyRequest(SignatureData data, SignSignatureObject so, XMLDsigData dsigData) throws ConnectorException {
throw new ConnectorException(ErrorCode.SIGNATURE_VERIFICATION_NOT_SUPPORTED, "Signature Verification is not supported by MOCCA.");
}
@@ -594,4 +591,10 @@ public class LocRefDetachedMOCCAConnector implements Connector, LocalConnector {
return result;
}
+ public XMLDsigData reconstructXMLDsig(SignatureData data, SignSignatureObject so)
+ throws ConnectorException {
+ String xmldsig = prepareXMLContent(data, so);
+ return new XMLDsigData(xmldsig, true);
+ }
+
}