aboutsummaryrefslogtreecommitdiff
path: root/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyXMLSignatureRequestParser.java
diff options
context:
space:
mode:
Diffstat (limited to 'moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyXMLSignatureRequestParser.java')
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyXMLSignatureRequestParser.java440
1 files changed, 217 insertions, 223 deletions
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyXMLSignatureRequestParser.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyXMLSignatureRequestParser.java
index f1bb1d7..1360c5f 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyXMLSignatureRequestParser.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyXMLSignatureRequestParser.java
@@ -51,236 +51,230 @@ import at.gv.egovernment.moaspss.util.XPathUtils;
*/
public class VerifyXMLSignatureRequestParser {
- //
- // XPath expressions for parsing parts of the request
- //
- private static final String MOA = Constants.MOA_PREFIX + ":";
- private static final String DATE_TIME_XPATH = MOA + "DateTime";
- private static final String EXTENDED_VALIDATION_XPATH = MOA + "ExtendedValidation";
- private static final String RETURN_HASH_INPUT_DATA_XPATH = MOA + "ReturnHashInputData";
- private static final String TRUST_PROFILE_ID_XPATH = MOA + "TrustProfileID";
- private static final String VERIFY_SIGNATURE_ENVIRONMENT_XPATH = MOA + "VerifySignatureInfo/" + MOA
- + "VerifySignatureEnvironment";
- private static final String VERIFY_SIGNATURE_LOCATION_XPATH = MOA + "VerifySignatureInfo/" + MOA
- + "VerifySignatureLocation";
- private static final String SUPPLEMENT_PROFILE_XPATH = MOA + "SupplementProfile | " + MOA + "SupplementProfileID";
- private static final String SIGNATURE_MANIFEST_CHECK_PARAMS_XPATH = MOA + "SignatureManifestCheckParams";
- private static final String VERIFY_TRANSFORMS_INFO_PROFILE_XPATH = (MOA + "VerifyTransformsInfoProfile | ")
- + (MOA + "VerifyTransformsInfoProfileID");
- private static final String REFERENCE_INFO_XPATH = MOA + "ReferenceInfo";
-
- /** The <code>SPSSFactory</code> for creating new API objects. */
- private SPSSFactory factory = SPSSFactory.getInstance();
-
- /**
- * Parse a <code>VerifyXMLSignatureRequest</code> DOM element, as defined
- * by the MOA schema.
- *
+ //
+ // XPath expressions for parsing parts of the request
+ //
+ private static final String MOA = Constants.MOA_PREFIX + ":";
+ private static final String DATE_TIME_XPATH = MOA + "DateTime";
+ private static final String EXTENDED_VALIDATION_XPATH = MOA + "ExtendedValidation";
+ private static final String RETURN_HASH_INPUT_DATA_XPATH = MOA + "ReturnHashInputData";
+ private static final String TRUST_PROFILE_ID_XPATH = MOA + "TrustProfileID";
+ private static final String VERIFY_SIGNATURE_ENVIRONMENT_XPATH = MOA + "VerifySignatureInfo/" + MOA
+ + "VerifySignatureEnvironment";
+ private static final String VERIFY_SIGNATURE_LOCATION_XPATH = MOA + "VerifySignatureInfo/" + MOA
+ + "VerifySignatureLocation";
+ private static final String SUPPLEMENT_PROFILE_XPATH = MOA + "SupplementProfile | " + MOA
+ + "SupplementProfileID";
+ private static final String SIGNATURE_MANIFEST_CHECK_PARAMS_XPATH = MOA + "SignatureManifestCheckParams";
+ private static final String VERIFY_TRANSFORMS_INFO_PROFILE_XPATH = MOA + "VerifyTransformsInfoProfile | "
+ + MOA + "VerifyTransformsInfoProfileID";
+ private static final String REFERENCE_INFO_XPATH = MOA + "ReferenceInfo";
+
+ /** The <code>SPSSFactory</code> for creating new API objects. */
+ private final SPSSFactory factory = SPSSFactory.getInstance();
+
+ /**
+ * Parse a <code>VerifyXMLSignatureRequest</code> DOM element, as defined by the
+ * MOA schema.
+ *
* @param requestElem The <code>VerifyXMLSignatureRequest</code> to parse. The
- * request must have been successfully parsed against the schema for this
- * method to succeed.
- * @return A <code>VerifyXMLSignatureRequest</code> API object containing
- * the data from the DOM element.
+ * request must have been successfully parsed against the
+ * schema for this method to succeed.
+ * @return A <code>VerifyXMLSignatureRequest</code> API object containing the
+ * data from the DOM element.
* @throws MOAApplicationException An error occurred parsing the request.
*/
public VerifyXMLSignatureRequest parse(Element requestElem)
- throws MOAApplicationException {
-
- Date dateTime =
- RequestParserUtils.parseDateTime(requestElem, DATE_TIME_XPATH);
-
- boolean extendedValidation =
- RequestParserUtils.parseExtendedValidation(requestElem, EXTENDED_VALIDATION_XPATH, false);
-
- VerifySignatureInfo verifySignatureInfo =
- parseVerifySignatureInfo(requestElem);
- List supplementProfiles = parseSupplementProfiles(requestElem);
- SignatureManifestCheckParams signatureManifestCheckParams =
- parseSignatureManifestCheckParams(requestElem);
- boolean returnHashInputData =
- XPathUtils.selectSingleNode(requestElem, RETURN_HASH_INPUT_DATA_XPATH)
- != null;
- String trustProfileID =
- XPathUtils.getElementValue(requestElem, TRUST_PROFILE_ID_XPATH, null);
+ throws MOAApplicationException {
+
+ final Date dateTime =
+ RequestParserUtils.parseDateTime(requestElem, DATE_TIME_XPATH);
+
+ final boolean extendedValidation =
+ RequestParserUtils.parseExtendedValidation(requestElem, EXTENDED_VALIDATION_XPATH, false);
+
+ final VerifySignatureInfo verifySignatureInfo =
+ parseVerifySignatureInfo(requestElem);
+ final List supplementProfiles = parseSupplementProfiles(requestElem);
+ final SignatureManifestCheckParams signatureManifestCheckParams =
+ parseSignatureManifestCheckParams(requestElem);
+ final boolean returnHashInputData =
+ XPathUtils.selectSingleNode(requestElem, RETURN_HASH_INPUT_DATA_XPATH) != null;
+ final String trustProfileID =
+ XPathUtils.getElementValue(requestElem, TRUST_PROFILE_ID_XPATH, null);
return factory.createVerifyXMLSignatureRequest(
- dateTime,
- verifySignatureInfo,
- supplementProfiles,
- signatureManifestCheckParams,
- returnHashInputData,
- trustProfileID,
- extendedValidation);
+ dateTime,
+ verifySignatureInfo,
+ supplementProfiles,
+ signatureManifestCheckParams,
+ returnHashInputData,
+ trustProfileID,
+ extendedValidation);
}
- /**
- * Parse the <code>VerifySignatureInfo</code> DOM element contained in the
- * <code>VerifyXMLSignatureRequest</code> DOM element.
- *
- * @param requestElem
- * The <code>VerifyXMLSignatureRequest</code> DOM element
- * containing the <code>VerifySignatureInfo</code> DOM element.
- * @return The <code>VerifySignatureInfo</code> API object containing the
- * data from the DOM element.
- */
- private VerifySignatureInfo parseVerifySignatureInfo(Element requestElem) {
- Element verifySignatureEnvironmentElem = (Element) XPathUtils.selectSingleNode(requestElem,
- VERIFY_SIGNATURE_ENVIRONMENT_XPATH);
- Content verifySignatureEnvironment = RequestParserUtils.parseContent(verifySignatureEnvironmentElem);
- VerifySignatureLocation verifySignatureLocation = parseVerifySignatureLocation(requestElem);
-
- return factory.createVerifySignatureInfo(verifySignatureEnvironment, verifySignatureLocation);
- }
-
- /**
- * Parse the <code>VerifySignatureLocation</code> DOM element contained in
- * the given <code>VerifyXMLSignatureRequest</code> DOM element.
- *
- * @param requestElem
- * The <code>VerifyXMLSignatureRequst</code> DOM element.
- * @return The <code>VerifySignatureLocation</code> API object containing
- * the data from the DOM element.
- */
- private VerifySignatureLocation parseVerifySignatureLocation(Element requestElem) {
- Element locationElem = (Element) XPathUtils.selectSingleNode(requestElem, VERIFY_SIGNATURE_LOCATION_XPATH);
- String xPathExpression = DOMUtils.getText(locationElem);
- Map namespaceDeclarations = DOMUtils.getNamespaceDeclarations(locationElem);
-
- return factory.createVerifySignatureLocation(xPathExpression, namespaceDeclarations);
- }
-
- /**
- * Parse the supplement profiles contained in the given
- * <code>VerifyXMLSignatureRequest</code> DOM element.
- *
- * @param requestElem
- * The <code>VerifyXMLSignatureRequest</code> DOM element.
- * @return A <code>List</code> of <code>SupplementProfile</code> API objects
- * containing the data from the <code>SupplementProfile</code> DOM
- * elements.
- */
- private List parseSupplementProfiles(Element requestElem) {
- List supplementProfiles = new ArrayList();
- NodeIterator profileElems = XPathUtils.selectNodeIterator(requestElem, SUPPLEMENT_PROFILE_XPATH);
- Element profileElem;
-
- while ((profileElem = (Element) profileElems.nextNode()) != null) {
- SupplementProfile profile;
-
- if ("SupplementProfile".equals(profileElem.getLocalName())) {
- ProfileParser profileParser = new ProfileParser();
- profile = profileParser.parseSupplementProfile(profileElem);
- } else {
- String profileID = DOMUtils.getText(profileElem);
- profile = factory.createSupplementProfile(profileID);
- }
- supplementProfiles.add(profile);
- }
- return supplementProfiles;
- }
-
- /**
- * Parse the <code>SignatureManifestCheckParams</code> DOM element contained
- * in the given <code>VerifyXMLSignatureRequest</code> DOM element.
- *
- * @param requestElem
- * The <code>VerifyXMLSignatureRequest</code> DOM element.
- * @return The <code>SignatureManifestCheckParams</code> API object
- * containing the data from the
- * <code>SignatureManifestCheckParams</code> DOM element.
- * @throws MOAApplicationException
- * An error occurred parsing the
- * <code>SignatureManifestCheckParams</code> DOM element.
- */
- private SignatureManifestCheckParams parseSignatureManifestCheckParams(Element requestElem)
- throws MOAApplicationException {
- Element paramsElem = (Element) XPathUtils.selectSingleNode(requestElem, SIGNATURE_MANIFEST_CHECK_PARAMS_XPATH);
-
- if (paramsElem != null) {
- String returnReferenceInputDataStr = paramsElem.getAttribute("ReturnReferenceInputData");
- boolean returnReferencInputData = BoolUtils.valueOf(returnReferenceInputDataStr);
- List referenceInfos = parseReferenceInfos(paramsElem);
-
- return factory.createSignatureManifestCheckParams(referenceInfos, returnReferencInputData);
- } else {
- return null;
- }
- }
-
- /**
- * Parse the <code>ReferenceInfo</code> DOM elements contained in a
- * <code>SignatureManifestCheckParams</code> DOM element.
- *
- * @param paramsElem
- * The <code>SignatureManifestCheckParams</code> DOM element
- * containing the <code>ReferenceInfo</code> DOM elements.
- * @return A <code>List</code> of <code>RefernceInfo</code> API objects
- * containing the data from the <code>ReferenceInfo</code> DOM
- * elements.
- * @throws MOAApplicationException
- * An error occurred parsing the <code>ReferenceInfo</code> DOM
- * elements.
- */
- private List parseReferenceInfos(Element paramsElem) throws MOAApplicationException {
-
- List referenceInfos = new ArrayList();
- NodeIterator refInfoElems = XPathUtils.selectNodeIterator(paramsElem, REFERENCE_INFO_XPATH);
- Element refInfoElem;
-
- while ((refInfoElem = (Element) refInfoElems.nextNode()) != null) {
- ReferenceInfo referenceInfo = parseReferenceInfo(refInfoElem);
-
- referenceInfos.add(referenceInfo);
- }
-
- return referenceInfos;
- }
-
- /**
- * Parse a <code>ReferenceInfo</code> DOM element.
- *
- * @param refInfoElem
- * The <code>ReferenceInfo</code> DOM element to parse.
- * @return The <code>ReferenceInfo</code> API object containing the data
- * from the given <code>ReferenceInfo</code> DOM element.
- * @throws MOAApplicationException
- * An error occurred parsing the <code>ReferenceInfo</code> DOM
- * element.
- */
- private ReferenceInfo parseReferenceInfo(Element refInfoElem) throws MOAApplicationException {
- List profiles = parseVerifyTransformsInfoProfiles(refInfoElem);
- return factory.createReferenceInfo(profiles);
- }
-
- /**
- * Parse the <code>VerifyTransformsInfoProfile</code> DOM elements contained
- * in a <code>ReferenceInfo</code> DOM element.
- *
- * @param refInfoElem
- * <code>ReferenceInfo</code> DOM element containing the
- * <code>VerifyTransformsInfoProfile</code> DOM elements.
- * @return A <code>List</code> of <code>VerifyTransformsInfoProfile</code>
- * API objects containing the profile data.
- * @throws MOAApplicationException
- * An error occurred building the
- * <code>VerifyTransformsInfoProfile</code>s.
- */
- private List parseVerifyTransformsInfoProfiles(Element refInfoElem) throws MOAApplicationException {
-
- List profiles = new ArrayList();
- NodeIterator profileElems = XPathUtils.selectNodeIterator(refInfoElem, VERIFY_TRANSFORMS_INFO_PROFILE_XPATH);
- Element profileElem;
-
- while ((profileElem = (Element) profileElems.nextNode()) != null) {
- if ("VerifyTransformsInfoProfile".equals(profileElem.getLocalName())) {
- ProfileParser profileParser = new ProfileParser();
- profiles.add(profileParser.parseVerifyTransformsInfoProfile(profileElem));
- } else {
- String profileID = DOMUtils.getText(profileElem);
- profiles.add(factory.createVerifyTransformsInfoProfile(profileID));
- }
- }
- return profiles;
- }
+ /**
+ * Parse the <code>VerifySignatureInfo</code> DOM element contained in the
+ * <code>VerifyXMLSignatureRequest</code> DOM element.
+ *
+ * @param requestElem The <code>VerifyXMLSignatureRequest</code> DOM element
+ * containing the <code>VerifySignatureInfo</code> DOM
+ * element.
+ * @return The <code>VerifySignatureInfo</code> API object containing the data
+ * from the DOM element.
+ */
+ private VerifySignatureInfo parseVerifySignatureInfo(Element requestElem) {
+ final Element verifySignatureEnvironmentElem = (Element) XPathUtils.selectSingleNode(requestElem,
+ VERIFY_SIGNATURE_ENVIRONMENT_XPATH);
+ final Content verifySignatureEnvironment = RequestParserUtils.parseContent(
+ verifySignatureEnvironmentElem);
+ final VerifySignatureLocation verifySignatureLocation = parseVerifySignatureLocation(requestElem);
+
+ return factory.createVerifySignatureInfo(verifySignatureEnvironment, verifySignatureLocation);
+ }
+
+ /**
+ * Parse the <code>VerifySignatureLocation</code> DOM element contained in the
+ * given <code>VerifyXMLSignatureRequest</code> DOM element.
+ *
+ * @param requestElem The <code>VerifyXMLSignatureRequst</code> DOM element.
+ * @return The <code>VerifySignatureLocation</code> API object containing the
+ * data from the DOM element.
+ */
+ private VerifySignatureLocation parseVerifySignatureLocation(Element requestElem) {
+ final Element locationElem = (Element) XPathUtils.selectSingleNode(requestElem,
+ VERIFY_SIGNATURE_LOCATION_XPATH);
+ final String xPathExpression = DOMUtils.getText(locationElem);
+ final Map namespaceDeclarations = DOMUtils.getNamespaceDeclarations(locationElem);
+
+ return factory.createVerifySignatureLocation(xPathExpression, namespaceDeclarations);
+ }
+
+ /**
+ * Parse the supplement profiles contained in the given
+ * <code>VerifyXMLSignatureRequest</code> DOM element.
+ *
+ * @param requestElem The <code>VerifyXMLSignatureRequest</code> DOM element.
+ * @return A <code>List</code> of <code>SupplementProfile</code> API objects
+ * containing the data from the <code>SupplementProfile</code> DOM
+ * elements.
+ */
+ private List parseSupplementProfiles(Element requestElem) {
+ final List supplementProfiles = new ArrayList();
+ final NodeIterator profileElems = XPathUtils.selectNodeIterator(requestElem, SUPPLEMENT_PROFILE_XPATH);
+ Element profileElem;
+
+ while ((profileElem = (Element) profileElems.nextNode()) != null) {
+ SupplementProfile profile;
+
+ if ("SupplementProfile".equals(profileElem.getLocalName())) {
+ final ProfileParser profileParser = new ProfileParser();
+ profile = profileParser.parseSupplementProfile(profileElem);
+ } else {
+ final String profileID = DOMUtils.getText(profileElem);
+ profile = factory.createSupplementProfile(profileID);
+ }
+ supplementProfiles.add(profile);
+ }
+ return supplementProfiles;
+ }
+
+ /**
+ * Parse the <code>SignatureManifestCheckParams</code> DOM element contained in
+ * the given <code>VerifyXMLSignatureRequest</code> DOM element.
+ *
+ * @param requestElem The <code>VerifyXMLSignatureRequest</code> DOM element.
+ * @return The <code>SignatureManifestCheckParams</code> API object containing
+ * the data from the <code>SignatureManifestCheckParams</code> DOM
+ * element.
+ * @throws MOAApplicationException An error occurred parsing the
+ * <code>SignatureManifestCheckParams</code> DOM
+ * element.
+ */
+ private SignatureManifestCheckParams parseSignatureManifestCheckParams(Element requestElem)
+ throws MOAApplicationException {
+ final Element paramsElem = (Element) XPathUtils.selectSingleNode(requestElem,
+ SIGNATURE_MANIFEST_CHECK_PARAMS_XPATH);
+
+ if (paramsElem != null) {
+ final String returnReferenceInputDataStr = paramsElem.getAttribute("ReturnReferenceInputData");
+ final boolean returnReferencInputData = BoolUtils.valueOf(returnReferenceInputDataStr);
+ final List referenceInfos = parseReferenceInfos(paramsElem);
+
+ return factory.createSignatureManifestCheckParams(referenceInfos, returnReferencInputData);
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Parse the <code>ReferenceInfo</code> DOM elements contained in a
+ * <code>SignatureManifestCheckParams</code> DOM element.
+ *
+ * @param paramsElem The <code>SignatureManifestCheckParams</code> DOM element
+ * containing the <code>ReferenceInfo</code> DOM elements.
+ * @return A <code>List</code> of <code>RefernceInfo</code> API objects
+ * containing the data from the <code>ReferenceInfo</code> DOM elements.
+ * @throws MOAApplicationException An error occurred parsing the
+ * <code>ReferenceInfo</code> DOM elements.
+ */
+ private List parseReferenceInfos(Element paramsElem) throws MOAApplicationException {
+
+ final List referenceInfos = new ArrayList();
+ final NodeIterator refInfoElems = XPathUtils.selectNodeIterator(paramsElem, REFERENCE_INFO_XPATH);
+ Element refInfoElem;
+
+ while ((refInfoElem = (Element) refInfoElems.nextNode()) != null) {
+ final ReferenceInfo referenceInfo = parseReferenceInfo(refInfoElem);
+
+ referenceInfos.add(referenceInfo);
+ }
+
+ return referenceInfos;
+ }
+
+ /**
+ * Parse a <code>ReferenceInfo</code> DOM element.
+ *
+ * @param refInfoElem The <code>ReferenceInfo</code> DOM element to parse.
+ * @return The <code>ReferenceInfo</code> API object containing the data from
+ * the given <code>ReferenceInfo</code> DOM element.
+ * @throws MOAApplicationException An error occurred parsing the
+ * <code>ReferenceInfo</code> DOM element.
+ */
+ private ReferenceInfo parseReferenceInfo(Element refInfoElem) throws MOAApplicationException {
+ final List profiles = parseVerifyTransformsInfoProfiles(refInfoElem);
+ return factory.createReferenceInfo(profiles);
+ }
+
+ /**
+ * Parse the <code>VerifyTransformsInfoProfile</code> DOM elements contained in
+ * a <code>ReferenceInfo</code> DOM element.
+ *
+ * @param refInfoElem <code>ReferenceInfo</code> DOM element containing the
+ * <code>VerifyTransformsInfoProfile</code> DOM elements.
+ * @return A <code>List</code> of <code>VerifyTransformsInfoProfile</code> API
+ * objects containing the profile data.
+ * @throws MOAApplicationException An error occurred building the
+ * <code>VerifyTransformsInfoProfile</code>s.
+ */
+ private List parseVerifyTransformsInfoProfiles(Element refInfoElem) throws MOAApplicationException {
+
+ final List profiles = new ArrayList();
+ final NodeIterator profileElems = XPathUtils.selectNodeIterator(refInfoElem,
+ VERIFY_TRANSFORMS_INFO_PROFILE_XPATH);
+ Element profileElem;
+
+ while ((profileElem = (Element) profileElems.nextNode()) != null) {
+ if ("VerifyTransformsInfoProfile".equals(profileElem.getLocalName())) {
+ final ProfileParser profileParser = new ProfileParser();
+ profiles.add(profileParser.parseVerifyTransformsInfoProfile(profileElem));
+ } else {
+ final String profileID = DOMUtils.getText(profileElem);
+ profiles.add(factory.createVerifyTransformsInfoProfile(profileID));
+ }
+ }
+ return profiles;
+ }
}