diff options
Diffstat (limited to 'DocumentService/src/eu/stork/documentservice/utils/XmlHelper.java')
-rw-r--r-- | DocumentService/src/eu/stork/documentservice/utils/XmlHelper.java | 224 |
1 files changed, 0 insertions, 224 deletions
diff --git a/DocumentService/src/eu/stork/documentservice/utils/XmlHelper.java b/DocumentService/src/eu/stork/documentservice/utils/XmlHelper.java deleted file mode 100644 index cd325db2e..000000000 --- a/DocumentService/src/eu/stork/documentservice/utils/XmlHelper.java +++ /dev/null @@ -1,224 +0,0 @@ -package eu.stork.documentservice.utils; - -import java.io.InputStream; -import java.util.Properties; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.xpath.XPath; -import javax.xml.xpath.XPathFactory; - -import org.w3c.dom.Document; -import org.w3c.dom.NodeList; -import org.w3c.dom.Node; -import org.w3c.dom.Element; - -//import at.gv.egovernment.moa.id.protocols.stork2.attributeproviders.GetDSSFileAction; - -import eu.stork.documentservice.data.DatabaseConnectorMySQLImpl; -import eu.stork.documentservice.exceptions.DocumentServiceException; - -public class XmlHelper { - - private static Properties props = new Properties(); - - public static String getRequestId(String xmlRequest) throws DocumentServiceException - { - if (xmlRequest == null || xmlRequest.isEmpty()) - throw new DocumentServiceException("XML request is empty"); - else - { - try - { - InputStream is = Utils.getStream(xmlRequest, "UTF-8"); - DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance() - .newDocumentBuilder(); - Document doc = dBuilder.parse(is); - Element reqElement = doc.getDocumentElement(); - String reqId = reqElement.getAttribute("RequestID"); - return reqId.replace("_", ""); - } - catch (Exception ex) - { - throw new DocumentServiceException("Unabled to parse xml.", ex); - } - } - } - - public static String getRequestDocument(String xmlRequest) throws DocumentServiceException - { - if (xmlRequest == null || xmlRequest.isEmpty()) - throw new DocumentServiceException("XML request is empty"); - else - { - try - { - InputStream is = Utils.getStream(xmlRequest, "UTF-8"); - DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance() - .newDocumentBuilder(); - Document doc = dBuilder.parse(is); - String document = ""; - Element req = doc.getDocumentElement(); - NodeList nList0 = req.getChildNodes(); - for (int i = 0; i < nList0.getLength(); i++) - { - Node node = nList0.item(i); - NodeList nList1 = node.getChildNodes(); - for (int j = 0; j < nList1.getLength(); j++) - { - NodeList nList2 = nList1.item(j).getChildNodes(); - for (int k = 0; k < nList2.getLength(); k++) - { - Node docNode =nList2.item(k); - document = docNode.getTextContent(); - } - } - } - return document; - } - catch (Exception ex) - { - throw new DocumentServiceException("Unabled to parse xml.", ex); - } - } - } - - public static String getRequestDocumentData(String xmlRequest) throws DocumentServiceException - { - if (xmlRequest == null || xmlRequest.isEmpty()) - throw new DocumentServiceException("XML request is empty"); - else - { - try - { - InputStream is = Utils.getStream(xmlRequest, "UTF-8"); - DocumentBuilderFactory xmlFactory = DocumentBuilderFactory.newInstance(); - DocumentBuilder docBuilder = xmlFactory.newDocumentBuilder(); - Document xmlDoc = docBuilder.parse(is); - XPathFactory xpathFact = XPathFactory.newInstance(); - XPath xpath = xpathFact.newXPath(); - return xpath.evaluate("/SignRequest/InputDocuments/Document/Base64Data/text()", xmlDoc); - - } - catch (Exception ex) - { - throw new DocumentServiceException("Unabled to parse xml.", ex); - } - } - } - - public static String getRequestDocumentMime(String xmlRequest) throws DocumentServiceException - { - if (xmlRequest == null || xmlRequest.isEmpty()) - throw new DocumentServiceException("XML request is empty"); - else - { - try - { - InputStream is = Utils.getStream(xmlRequest, "UTF-8"); - DocumentBuilderFactory xmlFactory = DocumentBuilderFactory.newInstance(); - DocumentBuilder docBuilder = xmlFactory.newDocumentBuilder(); - Document xmlDoc = docBuilder.parse(is); - XPathFactory xpathFact = XPathFactory.newInstance(); - XPath xpath = xpathFact.newXPath(); - return xpath.evaluate("/SignRequest/InputDocuments/Document/Base64Data/@MimeType", xmlDoc); - - } - catch (Exception ex) - { - throw new DocumentServiceException("Unabled to parse xml.", ex); - } - } - } - - private static String getDocId(String response) throws DocumentServiceException - { - if (response == null || response.isEmpty()) - throw new DocumentServiceException("Response is empty"); - else - { - if (response.contains("docId")) - { - int index = response.indexOf("docId"); - String docText = response.substring(response.indexOf(">" ,index), response.indexOf("<", index)); - String docId = docText.replaceAll("[<>]", ""); //s:label name="docId" value="%{docId}"/ - docId = docId.substring(docId.indexOf("/")+1); - docId = docId.substring(docId.indexOf('/')+1); - return docId.replace("/", ""); - } - else - throw new DocumentServiceException("No document ID in response."); - } - } - - /** - * String the document id - * @param docId the document id to strip - * @return the stripped ID - * @throws DocumentServiceException - */ - public static String StripDocId(String docId) throws DocumentServiceException - { - if (docId == null || docId.isEmpty()) - throw new DocumentServiceException("Doc ID is empty"); - else - { - docId = docId.substring(docId.indexOf("/")+1); - docId = docId.substring(docId.indexOf('/')+1); - return docId.replace("/", ""); - } - } - - public static String verifyRequest(String transferRequest) throws DocumentServiceException - { - if (transferRequest == null || transferRequest.isEmpty()) - throw new DocumentServiceException("Transfer request is empty"); - else - { - try { - String docId=""; - try{ - -// props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties")); -// System.out.println("url:"+props.getProperty("peps.url")); - -// final byte[] samlToken = PEPSUtil.decodeSAMLTokenUrlSafe(parameters -// .get(PEPSParameters.SAML_REQUEST.toString())); -// -// final STORKSAMLEngine engine = STORKSAMLEngine.getInstance("VIDP"); -// -// final STORKAttrQueryRequest attrData= engine.validateSTORKAttrQueryRequest(samlToken); - -// String response = Utils.sendPost(props.getProperty("peps.url"), "SAMLRequest=" + transferRequest); -// docId=getDocId(response);; - docId = GetDSSFileAction.processDocRequest(transferRequest); - }catch(Exception e){e.printStackTrace();} - return docId; - //FIXME -// String response = Utils.sendPost(props.getProperty("peps.url"), "SAMLRequest=" + transferRequest); -// return getDocId(response); - } catch (Exception e) { - e.printStackTrace(); - throw new DocumentServiceException("Could verify request.", e); - } - } - } - - public static String verifyRequestByte(byte[] transferRequest) throws DocumentServiceException - { - if (transferRequest == null) - throw new DocumentServiceException("Transfer request is empty"); - else - { - try { - props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties")); - String response = Utils.sendPost(props.getProperty("peps.url"),"SAMLRequest=" + Utils.encodeBase64bytes(transferRequest, true)); - return getDocId(response); - } catch (Exception e) { - e.printStackTrace(); - throw new DocumentServiceException("Could not read properties.", e); - } - - } - } -} |