diff options
author | Thomas Lenz <tlenz@iaik.tugraz.at> | 2016-04-08 07:50:20 +0200 |
---|---|---|
committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2016-04-08 07:50:20 +0200 |
commit | 50c500dd107d88988cbee8207c91a16b321d6136 (patch) | |
tree | 6abd06e3f126866534e155e40c2f7e933b5357d3 /DocumentService/src/eu/stork/documentservice | |
parent | ec62813f4c0e8b3002d46f7bc315e7a27d720125 (diff) | |
parent | 41882a0c5601dda478c2749ac99c2087b864c912 (diff) | |
download | moa-id-spss-50c500dd107d88988cbee8207c91a16b321d6136.tar.gz moa-id-spss-50c500dd107d88988cbee8207c91a16b321d6136.tar.bz2 moa-id-spss-50c500dd107d88988cbee8207c91a16b321d6136.zip |
Merge tag 'MOA-ID-3.1.0' into development_preview
JoinUp Release
Diffstat (limited to 'DocumentService/src/eu/stork/documentservice')
25 files changed, 0 insertions, 3310 deletions
diff --git a/DocumentService/src/eu/stork/documentservice/DocumentService.java b/DocumentService/src/eu/stork/documentservice/DocumentService.java deleted file mode 100644 index 9c539312e..000000000 --- a/DocumentService/src/eu/stork/documentservice/DocumentService.java +++ /dev/null @@ -1,83 +0,0 @@ -package eu.stork.documentservice; - -import javax.jws.WebMethod; -import javax.jws.WebService; -import javax.jws.soap.SOAPBinding; -import javax.jws.soap.SOAPBinding.Style; -import javax.jws.soap.SOAPBinding.Use; -import javax.xml.ws.soap.MTOM; - -@MTOM -@WebService(name = "DocumentService", targetNamespace = "http://stork.eu") -@SOAPBinding(style = Style.DOCUMENT, use = Use.LITERAL) -/** - * - * @author Advania - * - */ -public interface DocumentService { - - /** - * Add document to DTL layer - * @param document the document to add - * @param xmlRequest the original dss xml request - * @param country the destination country - * @param SpId the sp id - * @param mimeType the document mime type - * @param receiverCert the receiver certificate (for encryption, not implemented now) - * @return the document id (docId) - */ - @WebMethod(operationName = "addDocument") - public String addDocument(byte[] document, String xmlRequest, String country, String SpId, String mimeType, String receiverCert); - - /** - * Get document from DTL - * @param documentTransferRequest the document transfer request (attribute query saml) - * @param dtlUrl the url of dtl - * @return the document found - */ - @WebMethod(operationName = "getDocument") - public byte[] getDocument(String documentTransferRequest, String dtlUrl); - - /** - * Get document mime type of document - * @param docId the document id - * @param dtlUrl the url of dtl - * @return the document mime type - */ - @WebMethod(operationName = "getDocumentMime") - public String getDocumentMime(String docId, String dtlUrl); - - /** - * Update document in dtl - * @param docId the id of document (docId) - * @param xmlResponse the dss xml response - * @param document the document data - * @return true if successful - */ - @WebMethod(operationName = "updateDocument") - public boolean updateDocument(String docId, String xmlResponse, byte[] document); - - /** - * Add document to DTL layer which SP has uploaded - * @param docId the document ID of document - * @param xmlRequest the original dss xml request - * @param country the destination country - * @param SpId the sp id - * @param mimeType the document mime type - * @param receiverCert the receiver certificate (for encryption, not implemented now) - * @return the full document ID - */ - @WebMethod(operationName = "addSPDocument") - public String addSPDocument(String docId, String xmlRequest, String country, String SpId, String receiverCert); - - /** - * Update document in DTL and prepare for SP - * @param documentTransferRequest the document transfer request (attribute query saml) - * @param dtlUrl the url of the dtl - * @param xmlResponse the xml response - * @return true if successful - */ - @WebMethod(operationName = "updateSPDocument") - public boolean updateSPDocument(String documentTransferRequest, String dtlUrl, String xmlResponse); -} diff --git a/DocumentService/src/eu/stork/documentservice/DocumentServiceImpl.java b/DocumentService/src/eu/stork/documentservice/DocumentServiceImpl.java deleted file mode 100644 index 913c2f704..000000000 --- a/DocumentService/src/eu/stork/documentservice/DocumentServiceImpl.java +++ /dev/null @@ -1,522 +0,0 @@ -package eu.stork.documentservice; - -import java.util.Date; -import java.util.Properties; -import java.util.UUID; - -import javax.jws.WebService; -import javax.xml.ws.WebServiceException; -import javax.xml.ws.soap.MTOM; - -import org.apache.log4j.Logger; - -import com.sun.tools.ws.processor.model.ModelException; - -import eu.stork.documentservice.data.DatabaseConnector; -import eu.stork.documentservice.data.DatabaseConnectorMySQLImpl; -import eu.stork.documentservice.model.DocumentModel; -import eu.stork.documentservice.model.RequestModel; -import eu.stork.documentservice.model.TempDocumentModel; -import eu.stork.documentservice.utils.ExternalDocservice; -import eu.stork.documentservice.utils.XmlHelper; - -@MTOM(threshold=500) -@WebService(endpointInterface = "eu.stork.documentservice.DocumentService", targetNamespace = "http://stork.eu", portName = "DocumentServicePort", serviceName = "DocumentService") -public class DocumentServiceImpl implements DocumentService -{ - //final static String PATH = "C:/Temp/upload/"; - static String COUNTRY; - private DatabaseConnector conn; - private Properties props = new Properties(); - private static final Logger LOG = Logger.getLogger(DocumentServiceImpl.class.getName()); - - @Override - public String addDocument(byte[] document, String xmlRequest, String destinationCountry, String SpId, String mimeType, String receiverCert) { - String returnMessage = ""; - if (document != null) - { - try - { - LOG.trace("Adding document starting, document size: " + Integer.toString(document.length) - + ", destination country: " + destinationCountry + ", SP Id: " + SpId - + ", mime type: " + mimeType + ", receiver cert: " + receiverCert); - props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties")); - COUNTRY = props.getProperty("peps.country"); - RequestModel request = new RequestModel(); - request.setDestcountry(destinationCountry); - request.setSpcountry(COUNTRY); - request.setSpid(SpId); - request.setRequestid(XmlHelper.getRequestId(xmlRequest)); - request.setXmlrequest(xmlRequest); - - conn = new DatabaseConnectorMySQLImpl(props.getProperty("sql.user"), props.getProperty("sql.password"), - props.getProperty("sql.server"), props.getProperty("sql.database")); - boolean ok = conn.addRequest(request); - if (ok) - { - LOG.trace("Request added."); - DocumentModel doc = new DocumentModel(); - doc.setDocid(UUID.randomUUID().toString()); - doc.setDocument(document); - doc.setMimetype(mimeType); - doc.setReicevercert(receiverCert); - ok = conn.addDocument(doc); - if (ok) - { - LOG.trace("Document added."); - RequestModel req = conn.getRequest(request.getRequestid()); - if (req != null) - { - LOG.trace("Request found."); - req.setDocid(doc.getDocid()); - if (conn.updateRequest(req)) - returnMessage = req.getFullDocID(); - else - { - LOG.warn("Could not update request."); - throw new WebServiceException("Could not update request."); - } - } - } - else - { - LOG.warn("Could not add document."); - throw new WebServiceException("Could not add document."); - } - } - else - { - LOG.warn("Could not add request."); - throw new WebServiceException("Could not add request."); - } - } - catch (ModelException e) - { - LOG.error("Invalid model in input", e); - e.printStackTrace(); - throw new WebServiceException("Invalid input.", e); - } - catch (Exception e) - { - LOG.error("Exception in addDocument.", e); - e.printStackTrace(); - throw new WebServiceException("Upload Failed"); - } - LOG.trace("Add document ending, return message: " + returnMessage); - return returnMessage; - } - else - throw new WebServiceException("No document to upload."); - } - - @Override - public byte[] getDocument(String documentTransferRequest, String dtlUrl) - { - try - { - String docId = XmlHelper.verifyRequest(documentTransferRequest); - if (docId != null && !docId.isEmpty()) - { - props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties")); - String ownDtlUrl = props.getProperty("docservice.url"); - LOG.trace("Getting document starting for docId: " + docId); - if (dtlUrl != null && !dtlUrl.isEmpty() && !ownDtlUrl.equalsIgnoreCase(dtlUrl)) - { - LOG.trace("Getting document from external DTL for docId: " + docId); - byte[] documentData = ExternalDocservice.getDocument(documentTransferRequest, dtlUrl); - if (documentData != null) - { - props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties")); - conn = new DatabaseConnectorMySQLImpl(props.getProperty("sql.user"), props.getProperty("sql.password"), - props.getProperty("sql.server"), props.getProperty("sql.database")); - DocumentModel doc = conn.getDocument(docId); - if (doc != null) - { - doc.setDocument(documentData); - conn.updateDocument(doc); - } - else - { - doc = new DocumentModel(); - doc.setDocid(docId); - doc.setDocument(documentData); - doc.setMimetype(ExternalDocservice.getDocumentMime(docId, dtlUrl)); - //TODO handle cert - doc.setReicevercert(""); - conn.addDocument(doc); - } - } - - LOG.trace("Getting document from external DTL ending."); - return documentData; - } - else - { - LOG.trace("Getting document from database for docId: " + docId); - props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties")); - conn = new DatabaseConnectorMySQLImpl(props.getProperty("sql.user"), props.getProperty("sql.password"), - props.getProperty("sql.server"), props.getProperty("sql.database")); - DocumentModel doc = conn.getDocument(docId); - LOG.trace("Getting document from database ending."); - return doc.getDocument(); - } - } - else - { - LOG.warn("Document id is null"); - throw new WebServiceException("Document Id is null"); - } - } - catch (Exception e) - { - LOG.error("Exception in getDocument.", e); - e.printStackTrace(); - throw new WebServiceException("Download Failed", e); - } - } - - @Override - /** - * Get document mime type - */ - public String getDocumentMime(String docId, String dtlUrl) - { - try - { - if (docId != null && !docId.isEmpty()) - { - props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties")); - String ownDtlUrl = props.getProperty("docservice.url"); - docId = XmlHelper.StripDocId(docId); - LOG.trace("Getting mime starting for docId: " + docId); - if (dtlUrl != null && !dtlUrl.isEmpty() && !ownDtlUrl.equalsIgnoreCase(dtlUrl)) - { - LOG.trace("Getting mime from external DTL for docId: " + docId); - String documentMime = ExternalDocservice.getDocumentMime(docId, dtlUrl); - if (documentMime != null && !documentMime.isEmpty()) - { - conn = new DatabaseConnectorMySQLImpl(props.getProperty("sql.user"), props.getProperty("sql.password"), - props.getProperty("sql.server"), props.getProperty("sql.database")); - DocumentModel doc = conn.getDocument(docId); - if (doc != null) - { - doc.setMimetype(documentMime); - conn.updateDocument(doc); - } - } - LOG.trace("Getting mime from external DTL ending, docId: " + docId + ", mime " + documentMime); - return documentMime; - } - else - { - LOG.trace("Getting mime from dabase for docId: " + docId); - props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties")); - conn = new DatabaseConnectorMySQLImpl(props.getProperty("sql.user"), props.getProperty("sql.password"), - props.getProperty("sql.server"), props.getProperty("sql.database")); - DocumentModel doc = conn.getDocument(docId); - LOG.trace("Getting mime from database ending, docId: " + docId + ", mime " + doc.getMimetype()); - return doc.getMimetype(); - } - } - else - { - LOG.warn("Document id is null"); - throw new WebServiceException("Document Id is null"); - } - } - catch (Exception e) - { - LOG.error("Exception in getDocumentMime.", e); - e.printStackTrace(); - throw new WebServiceException("Download Failed", e); - } - } - - @Override - /** - * Update document in document service - */ - public boolean updateDocument(String docId, String xmlResponse, byte[] document) - { - boolean success = false; - if (docId != null && !docId.isEmpty()) - { - if (document != null) - { - try - { - docId = XmlHelper.StripDocId(docId); - LOG.trace("Starting document update for docId: " + docId); - props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties")); - conn = new DatabaseConnectorMySQLImpl(props.getProperty("sql.user"), props.getProperty("sql.password"), - props.getProperty("sql.server"), props.getProperty("sql.database")); - DocumentModel doc = conn.getDocument(docId); - if(doc != null) - { - doc.setDocument(document); - success = conn.updateDocument(doc); - if (success && xmlResponse != null && !xmlResponse.isEmpty()) - { - RequestModel request = conn.getRequestByDocId(docId); - if (request != null) - { - request.setXmlresponse(xmlResponse); - request.setRestimestamp(new Date()); - success = conn.updateRequest(request); - } - } - LOG.trace("Document " + docId + " updated successfully: " + Boolean.toString(success)); - } - else - { - LOG.warn("No document found for docId: " + docId); - throw new WebServiceException("Document is null"); - } - } - catch (Exception e) - { - LOG.error("Exception in updateDocument.", e); - e.printStackTrace(); - throw new WebServiceException("Update Failed", e); - } - } - } - else - { - LOG.warn("Document id is null"); - throw new WebServiceException("Document Id is null"); - } - - return success; - } - - @Override - public String addSPDocument(String docId, String xmlRequest, String destinationCountry, String SpId, String receiverCert) - { - String returnMessage = ""; - if (docId != null && !docId.isEmpty()) - { - try - { - LOG.trace("Adding document starting, document ID: " + docId - + ", destination country: " + destinationCountry + ", SP Id: " + SpId - + ", receiver cert: " + receiverCert); - props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties")); - COUNTRY = props.getProperty("peps.country"); - RequestModel request = new RequestModel(); - request.setDestcountry(destinationCountry); - request.setSpcountry(COUNTRY); - request.setSpid(SpId); - request.setRequestid(XmlHelper.getRequestId(xmlRequest)); - request.setXmlrequest(xmlRequest); - - conn = new DatabaseConnectorMySQLImpl(props.getProperty("sql.user"), props.getProperty("sql.password"), - props.getProperty("sql.server"), props.getProperty("sql.database")); - boolean ok = conn.addRequest(request); - if (ok) - { - LOG.trace("Request added."); - LOG.trace("Getting temp document."); - TempDocumentModel tempDoc = conn.getTempDocument(docId); - if (tempDoc != null) - { - LOG.trace("Got temp document."); - conn.updateTempDocument(tempDoc); - LOG.trace("Temp document updated."); - DocumentModel doc = new DocumentModel(); - doc.setDocid(tempDoc.getDocid()); - doc.setDocument(tempDoc.getDocument()); - doc.setMimetype(tempDoc.getMimetype()); - doc.setReicevercert(receiverCert); - ok = conn.addDocument(doc); - if (ok) - { - LOG.trace("Document added."); - RequestModel req = conn.getRequest(request.getRequestid()); - if (req != null) - { - LOG.trace("Request found."); - req.setDocid(doc.getDocid()); - if (conn.updateRequest(req)) - returnMessage = req.getFullDocID(); - else - { - LOG.warn("Could not update request."); - throw new WebServiceException("Could not update request."); - } - } - } - else - { - LOG.warn("Could not add document."); - throw new WebServiceException("Could not add document."); - } - } - else - { - LOG.warn("No document found with id " + docId); - throw new WebServiceException("No document found."); - } - } - else - { - LOG.warn("Could not add request."); - throw new WebServiceException("Could not add request."); - } - } - catch (ModelException e) - { - LOG.error("Invalid model in input", e); - e.printStackTrace(); - throw new WebServiceException("Invalid input.", e); - } - catch (Exception e) - { - LOG.error("Exception in addSPDocument.", e); - e.printStackTrace(); - throw new WebServiceException("Upload Failed"); - } - LOG.trace("Add SP document ending, return message: " + returnMessage); - } - else - { - LOG.warn("Document id is null"); - throw new WebServiceException("Document Id is null"); - } - - return returnMessage; - } - - @Override - public boolean updateSPDocument(String documentTransferRequest, String dtlUrl, String xmlResponse) - { - boolean success = false; - if (documentTransferRequest != null && !documentTransferRequest.isEmpty()) - { - if (xmlResponse != null && !xmlResponse.isEmpty()) - { - try - { - String docId = XmlHelper.verifyRequest(documentTransferRequest); - LOG.trace("Document transfer requst ok. Doc ID: " + docId); - if (dtlUrl == null || dtlUrl.isEmpty()) - { - LOG.trace("Starting SP document update from database for docId: " + docId); - props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties")); - conn = new DatabaseConnectorMySQLImpl(props.getProperty("sql.user"), props.getProperty("sql.password"), - props.getProperty("sql.server"), props.getProperty("sql.database")); - DocumentModel doc = conn.getDocument(docId); - if(doc != null) - { - TempDocumentModel tempDoc = conn.getTempDocument(docId); - tempDoc.setDocument(doc.getDocument()); - success = conn.updateTempDocument(tempDoc); - if (success && xmlResponse != null && !xmlResponse.isEmpty()) - { - RequestModel request = conn.getRequestByDocId(docId); - if (request != null) - { - request.setXmlresponse(xmlResponse); - request.setRestimestamp(new Date()); - if (conn.updateRequest(request)) - { - LOG.trace("Request updated."); - success = true; - } - else - { - LOG.warn("Could not update request with id " + request.getRequestid()); - throw new WebServiceException("Update SP document failed"); - } - } - } - LOG.trace("Document " + docId + " updated successfully: " + Boolean.toString(success)); - } - else - { - LOG.warn("No document found for docId: " + docId); - throw new WebServiceException("Document is null"); - } - } - else - { - LOG.trace("Starting SP document update from external DTL for docId: " + docId); - byte[] documentData = ExternalDocservice.getDocument(documentTransferRequest, dtlUrl); - if (documentData != null) - { - props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties")); - conn = new DatabaseConnectorMySQLImpl(props.getProperty("sql.user"), props.getProperty("sql.password"), - props.getProperty("sql.server"), props.getProperty("sql.database")); - DocumentModel doc = conn.getDocument(docId); - if (doc != null) - { - LOG.trace("Document found"); - doc.setDocument(documentData); - if (conn.updateDocument(doc)) - { - LOG.trace("Document updated"); - TempDocumentModel tempDoc = conn.getTempDocument(docId); - if (tempDoc != null) - { - LOG.trace("Temp document found"); - tempDoc.setDocument(documentData); - if (conn.updateTempDocument(tempDoc)) - { - LOG.trace("Temp document updated"); - RequestModel request = conn.getRequestByDocId(docId); - request.setXmlresponse(xmlResponse); - request.setRestimestamp(new Date()); - if (conn.updateRequest(request)) - { - LOG.trace("Request updated"); - success = true; - } - else - { - LOG.warn("Could not update request with doc id " + docId); - throw new WebServiceException("SP update failed"); - } - } - else - { - LOG.warn("Could not update temp document with id " + docId); - throw new WebServiceException("SP update failed"); - } - } - else - { - LOG.warn("Could not find temp document with id " + docId); - throw new WebServiceException("SP update failed"); - } - } - else - { - LOG.warn("Could not update document with id " + docId); - throw new WebServiceException("SP update failed"); - } - } - } - } - } - catch (Exception e) - { - LOG.error("Exception in updateSPDocument.", e); - e.printStackTrace(); - throw new WebServiceException("Update Failed", e); - } - } - else - { - LOG.warn("XML signing response is null or empty"); - throw new WebServiceException("XML signing response is null"); - } - } - else - { - LOG.warn("Document transfer request is null or empty"); - throw new WebServiceException("Document transfer request is null"); - } - - return success; - } -} diff --git a/DocumentService/src/eu/stork/documentservice/SPDocumentService.java b/DocumentService/src/eu/stork/documentservice/SPDocumentService.java deleted file mode 100644 index 35235c644..000000000 --- a/DocumentService/src/eu/stork/documentservice/SPDocumentService.java +++ /dev/null @@ -1,35 +0,0 @@ -package eu.stork.documentservice; - -import javax.jws.WebMethod; -import javax.jws.WebService; -import javax.jws.soap.SOAPBinding; -import javax.jws.soap.SOAPBinding.Style; -import javax.jws.soap.SOAPBinding.Use; -import javax.xml.ws.soap.MTOM; - -@MTOM -@WebService(name = "SPDocumentService", targetNamespace = "http://stork.eu") -@SOAPBinding(style = Style.DOCUMENT, use = Use.LITERAL) -/** - * - * @author Advania - * - */ -public interface SPDocumentService { - - /** - * Add document to temp layer - * @param document the document data to add - * @return the document temp id - */ - @WebMethod(operationName = "addSPSignDocument") - public String addSPSignDocument(byte[] document, String spId, String mimeType, String receiverCert); - - /** - * Get document from Temp layer - * @param docId the document id - * @return the document found - */ - @WebMethod(operationName = "getSPDocument") - public byte[] getSPDocument(String docId, String spId); -} diff --git a/DocumentService/src/eu/stork/documentservice/SPDocumentServiceImpl.java b/DocumentService/src/eu/stork/documentservice/SPDocumentServiceImpl.java deleted file mode 100644 index e89ed8c0c..000000000 --- a/DocumentService/src/eu/stork/documentservice/SPDocumentServiceImpl.java +++ /dev/null @@ -1,126 +0,0 @@ -package eu.stork.documentservice; - -import java.util.Properties; -import java.util.UUID; - -import javax.jws.WebService; -import javax.xml.ws.WebServiceException; -import javax.xml.ws.soap.MTOM; - -import org.apache.log4j.Logger; - -import com.sun.tools.ws.processor.model.ModelException; - -import eu.stork.documentservice.data.DatabaseConnector; -import eu.stork.documentservice.data.DatabaseConnectorMySQLImpl; -import eu.stork.documentservice.model.TempDocumentModel; -import eu.stork.documentservice.utils.XmlHelper; - -@MTOM(threshold=500) -@WebService(endpointInterface = "eu.stork.documentservice.SPDocumentService", targetNamespace = "http://stork.eu", portName = "SPDocumentServicePort", serviceName = "SPDocumentService") -public class SPDocumentServiceImpl implements SPDocumentService { - - static String COUNTRY; - private DatabaseConnector conn; - private Properties props = new Properties(); - private static final Logger LOG = Logger.getLogger(DocumentServiceImpl.class.getName()); - - @Override - public String addSPSignDocument(byte[] document, String SpId, String mimeType, String receiverCert) - { - String returnMessage = ""; - if (document != null) - { - try - { - LOG.trace("Adding temp document starting, document size: " + Integer.toString(document.length) - + ", SP Id: " + SpId + ", mime type: " + mimeType + " receiver cert: " + receiverCert); - props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties")); - COUNTRY = props.getProperty("peps.country"); - - conn = new DatabaseConnectorMySQLImpl(props.getProperty("sql.user"), props.getProperty("sql.password"), - props.getProperty("sql.server"), props.getProperty("sql.database")); - - TempDocumentModel doc = new TempDocumentModel(); - doc.setDocid(UUID.randomUUID().toString()); - doc.setDocument(document); - doc.setSpid(SpId); - doc.setMimetype(mimeType); - doc.setReicevercert(receiverCert); - if (conn.addTempDocument(doc)) - { - LOG.trace("Document added successfully. DocID: " + doc.getDocid()); - returnMessage = doc.getDocid(); - } - else - { - LOG.warn("Could not add document."); - throw new WebServiceException("Could not add document."); - } - } - catch (ModelException e) - { - LOG.error("Invalid model in input", e); - e.printStackTrace(); - throw new WebServiceException("Invalid input.", e); - } - catch (Exception e) - { - LOG.error("Exception in SP addDocument.", e); - e.printStackTrace(); - throw new WebServiceException("Upload Failed"); - } - LOG.trace("Add document ending, return message: " + returnMessage); - return returnMessage; - } - else - throw new WebServiceException("No document to upload."); - } - - @Override - public byte[] getSPDocument(String docId, String spId) - { - try - { - if (docId != null && !docId.isEmpty()) - { - LOG.trace("Getting temp document from database for docId: " + docId); - docId = XmlHelper.StripDocId(docId); - props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties")); - conn = new DatabaseConnectorMySQLImpl(props.getProperty("sql.user"), props.getProperty("sql.password"), - props.getProperty("sql.server"), props.getProperty("sql.database")); - TempDocumentModel doc = conn.getTempDocument(docId); - if (doc != null) - { - LOG.trace("Document found."); - if (doc.getSpid().equals(spId)) - { - LOG.trace("Getting document from database ending. Document supplied."); - return doc.getDocument(); - } - else - { - LOG.warn("Document SP ID of " + doc.getSpid() + " does not match sent SP ID of " + spId); - throw new WebServiceException("Incorrect SP ID."); - } - } - else - { - LOG.warn("Document is null"); - throw new WebServiceException("Document is null."); - } - } - else - { - LOG.warn("Document id is null or empty."); - throw new WebServiceException("Document Id is null"); - } - } - catch (Exception e) - { - LOG.error("Exception in SP getDocument.", e); - e.printStackTrace(); - throw new WebServiceException("Download Failed", e); - } - } -} diff --git a/DocumentService/src/eu/stork/documentservice/data/DatabaseConnector.java b/DocumentService/src/eu/stork/documentservice/data/DatabaseConnector.java deleted file mode 100644 index 26bd0c405..000000000 --- a/DocumentService/src/eu/stork/documentservice/data/DatabaseConnector.java +++ /dev/null @@ -1,117 +0,0 @@ -package eu.stork.documentservice.data; - -import eu.stork.documentservice.exceptions.DatabaseException; -import eu.stork.documentservice.model.DocumentModel; -import eu.stork.documentservice.model.RequestModel; -import eu.stork.documentservice.model.TempDocumentModel; - -public interface DatabaseConnector { - - /** - * Add document to database - * @param document The document model to add - * @return True if successful - * @throws DatabaseException - */ - public abstract boolean addDocument(DocumentModel document) - throws DatabaseException; - - /** - * Update document in database - * @param document The document model to update - * @return True if successful - * @throws DatabaseException - */ - public abstract boolean updateDocument(DocumentModel document) - throws DatabaseException; - - /** - * Get Document from database - * @param docId Document ID - * @return The document found - * @throws DatabaseException - */ - public abstract DocumentModel getDocument(String docId) - throws DatabaseException; - - /** - * Delete Document from database - * @param docId Document ID - * @return true if successful - * @throws DatabaseException - */ - public abstract boolean deleteDocument(String docId) - throws DatabaseException; - - /** - * Add request to database - * @param request The request to add - * @return True if successful - * @throws DatabaseException - */ - public abstract boolean addRequest(RequestModel request) - throws DatabaseException; - - /** - * Get request from database - * @param requestId The request id - * @return The request found - * @throws DatabaseException - */ - public abstract RequestModel getRequest(String requestId) - throws DatabaseException; - - /** - * Get request from database - * @param docId The document id - * @return The request found - * @throws DatabaseException - */ - public abstract RequestModel getRequestByDocId(String docId) - throws DatabaseException; - - /** - * Update request in database - * @param request The request to update - * @return True if successful - * @throws DatabaseException - */ - public abstract boolean updateRequest(RequestModel request) - throws DatabaseException; - - /** - * Add temp document to database - * @param document The document model to add - * @return True if successful - * @throws DatabaseException - */ - public abstract boolean addTempDocument(TempDocumentModel document) - throws DatabaseException; - - /** - * Get temp document from database - * @param docId Document ID - * @return The document found - * @throws DatabaseException - */ - public abstract TempDocumentModel getTempDocument(String docId) - throws DatabaseException; - - /** - * Update temp document in database - * @param document The document model to update - * @return True if successful - * @throws DatabaseException - */ - public abstract boolean updateTempDocument(TempDocumentModel document) - throws DatabaseException; - - /** - * Delete temp document from database - * @param docId Document ID - * @return true if successful - * @throws DatabaseException - */ - public abstract boolean deleteTempDocument(String docId) - throws DatabaseException; -}
\ No newline at end of file diff --git a/DocumentService/src/eu/stork/documentservice/data/DatabaseConnectorMySQLImpl.java b/DocumentService/src/eu/stork/documentservice/data/DatabaseConnectorMySQLImpl.java deleted file mode 100644 index e4506e17d..000000000 --- a/DocumentService/src/eu/stork/documentservice/data/DatabaseConnectorMySQLImpl.java +++ /dev/null @@ -1,725 +0,0 @@ -package eu.stork.documentservice.data; - -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; - -import eu.stork.documentservice.exceptions.DatabaseException; -import eu.stork.documentservice.exceptions.ModelException; -import eu.stork.documentservice.model.DocumentModel; -import eu.stork.documentservice.model.RequestModel; -import eu.stork.documentservice.model.TempDocumentModel; - -public class DatabaseConnectorMySQLImpl implements DatabaseConnector { - - private String user; - private String password; - private String server; - private String database; - - /** - * The MYSQL connector constructor - * @author sveinbjorno - * @param _user the database user - * @param _password the users password - * @param _server the mysql server - * @param _database the mysql database - */ - public DatabaseConnectorMySQLImpl(String _user, String _password, String _server, String _database) - { - user = _user; - password = _password; - server = _server; - database = _database; - try { - Class.forName("com.mysql.jdbc.Driver").newInstance(); - } catch (InstantiationException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (ClassNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - /* (non-Javadoc) - * @see eu.stork.documentservice.data.DatabaseConnector#addDocument(eu.stork.documentservice.model.DocumentModel) - */ - @Override - public boolean addDocument(DocumentModel document) throws DatabaseException - { - boolean successful = false; - Connection con = null; - PreparedStatement pst = null; - - try - { - document.insertValidate(); - String url = "jdbc:mysql://" + server + "/" + database; - con = DriverManager.getConnection(url, user, password); - - pst = con.prepareStatement("INSERT INTO document(DOCID, DOCUMENT, FILENAME, MIMETYPE, CREATED, RECEIVERCERT, " - + "ENCKEY, ENCIV) VALUES(?, ?, ?, ?, ?, ?, ?, ?)"); - pst.setString(1, document.getDocid()); - pst.setBlob(2, document.getDataStream()); - pst.setString(3, document.getFilename()); - pst.setString(4, document.getMimetype()); - pst.setTimestamp(5, DatabaseHelper.getSqlCurrentDate()); - pst.setString(6, document.getReicevercert()); - pst.setString(7, document.getEnckey()); - pst.setString(8, document.getEnciv()); - pst.executeUpdate(); - successful = true; - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - catch (ModelException mex) - { - throw new DatabaseException(mex); - } - finally - { - try - { - if (pst != null) { - pst.close(); - } - if (con != null) { - con.close(); - } - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - } - return successful; - } - - /* (non-Javadoc) - * @see eu.stork.documentservice.data.DatabaseConnector#updateDocument(eu.stork.documentservice.model.DocumentModel) - */ - @Override - public boolean updateDocument(DocumentModel document) throws DatabaseException - { - boolean successful = false; - Connection con = null; - PreparedStatement pst = null; - - try - { - document.updateValidate(); - String url = "jdbc:mysql://" + server + "/" + database; - con = DriverManager.getConnection(url, user, password); - - pst = con.prepareStatement("update document set DOCUMENT = ?, FILENAME = ?, MIMETYPE = ?, UPDATED = ?, " - + "RECEIVERCERT = ?, ENCKEY = ?, ENCIV = ? where DOCID = ?"); - pst.setBlob(1, document.getDataStream()); - pst.setString(2, document.getFilename()); - pst.setString(3, document.getMimetype()); - pst.setTimestamp(4, DatabaseHelper.getSqlCurrentDate()); - pst.setString(5, document.getReicevercert()); - pst.setString(6, document.getEnckey()); - pst.setString(7, document.getEnciv()); - pst.setString(8, document.getDocid()); - pst.executeUpdate(); - successful = true; - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - catch (ModelException mex) - { - throw new DatabaseException(mex); - } - finally - { - try - { - if (pst != null) { - pst.close(); - } - if (con != null) { - con.close(); - } - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - } - return successful; - } - - /* (non-Javadoc) - * @see eu.stork.documentservice.data.DatabaseConnector#getDocument(java.lang.String) - */ - @Override - public DocumentModel getDocument(String docId) throws DatabaseException - { - DocumentModel document = null; - Connection con = null; - PreparedStatement pst = null; - - try - { - if (docId == null || docId.isEmpty()) - throw new DatabaseException("Document ID is null or empty."); - String url = "jdbc:mysql://" + server + "/" + database; - con = DriverManager.getConnection(url, user, password); - String commandString = "select DOCUMENT, FILENAME, MIMETYPE, CREATED, UPDATED, DELETED, RECEIVERCERT, ENCKEY, ENCIV " - + "from document where DOCID = ?"; - - pst = con.prepareStatement(commandString); - pst.setString(1, docId); - - ResultSet set = pst.executeQuery(); - if (set.next()) - { - document = new DocumentModel(); - document.setDocid(docId); - document.setDataStream(set.getBinaryStream(1)); - document.setFilename(set.getString(2)); - document.setMimetype(set.getString(3)); - document.setCreated(DatabaseHelper.getUtilDate(set.getTimestamp(4))); - document.setUpdated(DatabaseHelper.getUtilDate(set.getTimestamp(5))); - document.setDeleted(DatabaseHelper.getUtilDate(set.getTimestamp(6))); - document.setReicevercert(set.getString(7)); - document.setEnckey(set.getString(8)); - document.setEnciv(set.getString(9)); - } - } - catch (ModelException mex) - { - throw new DatabaseException(mex); - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - finally - { - try - { - if (pst != null) { - pst.close(); - } - if (con != null) { - con.close(); - } - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - } - - return document; - } - - /* (non-Javadoc) - * @see eu.stork.documentservice.data.DatabaseConnector#deleteDocument(java.lang.String) - */ - @Override - public boolean deleteDocument(String docId) throws DatabaseException - { - boolean successful = false; - Connection con = null; - PreparedStatement pst = null; - - try - { - if (docId == null || docId.isEmpty()) - throw new DatabaseException("Document ID is null or empty."); - String url = "jdbc:mysql://" + server + "/" + database; - con = DriverManager.getConnection(url, user, password); - String commandString = "update document set document = null, deleted = ? where DOCID = ?"; - - pst = con.prepareStatement(commandString); - pst.setTimestamp(1, DatabaseHelper.getSqlCurrentDate()); - pst.setString(2, docId); - - pst.executeUpdate(); - successful = true; - - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - finally - { - try - { - if (pst != null) { - pst.close(); - } - if (con != null) { - con.close(); - } - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - } - - return successful; - } - - /* (non-Javadoc) - * @see eu.stork.documentservice.data.DatabaseConnector#addRequest(eu.stork.documentservice.model.RequestModel) - */ - @Override - public boolean addRequest(RequestModel request) throws DatabaseException - { - boolean successful = false; - Connection con = null; - PreparedStatement pst = null; - - try - { - request.insertValidate(); - String url = "jdbc:mysql://" + server + "/" + database; - con = DriverManager.getConnection(url, user, password); - - pst = con.prepareStatement("INSERT INTO request(REQUESTID, DOCID, DESTCOUNTRY, SPCOUNTRY, " - + "SPID, XMLREQUEST, REQTIMESTAMP) VALUES(?, ?, ?, ?, ?, ?, ?)"); - pst.setString(1, request.getRequestid()); - pst.setString(2, request.getDocid()); - pst.setString(3, request.getDestcountry()); - pst.setString(4, request.getSpcountry()); - pst.setString(5, request.getSpid()); - pst.setString(6, request.getXmlrequest()); - pst.setTimestamp(7, DatabaseHelper.getSqlCurrentDate()); - pst.executeUpdate(); - successful = true; - } - catch (ModelException mex) - { - throw new DatabaseException(mex); - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - finally - { - try - { - if (pst != null) { - pst.close(); - } - if (con != null) { - con.close(); - } - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - } - return successful; - } - - /* (non-Javadoc) - * @see eu.stork.documentservice.data.DatabaseConnector#getRequest(java.lang.String) - */ - @Override - public RequestModel getRequest(String requestId) throws DatabaseException - { - RequestModel request = null; - Connection con = null; - PreparedStatement pst = null; - - try - { - if (requestId == null || requestId.isEmpty()) - throw new DatabaseException("Request ID is null or empty."); - String url = "jdbc:mysql://" + server + "/" + database; - con = DriverManager.getConnection(url, user, password); - String commandString = "select DOCID, DESTCOUNTRY, SPCOUNTRY, SPID, XMLREQUEST, XMLRESPONSE, REQTIMESTAMP, " - + "RESTIMESTAMP from request where REQUESTID = ?"; - - pst = con.prepareStatement(commandString); - pst.setString(1, requestId); - - ResultSet set = pst.executeQuery(); - if (set.next()) - { - request = new RequestModel(); - request.setRequestid(requestId); - request.setDocid(set.getString(1)); - request.setDestcountry(set.getString(2)); - request.setSpcountry(set.getString(3)); - request.setSpid(set.getString(4)); - request.setXmlrequest(set.getString(5)); - request.setXmlresponse(set.getString(6)); - request.setReqtimestamp(DatabaseHelper.getUtilDate(set.getTimestamp(7))); - request.setRestimestamp(DatabaseHelper.getSqlDate(set.getTimestamp(8))); - } - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - finally - { - try - { - if (pst != null) { - pst.close(); - } - if (con != null) { - con.close(); - } - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - } - - return request; - } - - /* (non-Javadoc) - * @see eu.stork.documentservice.data.DatabaseConnector#getRequestByDocId(java.lang.String) - */ - @Override - public RequestModel getRequestByDocId(String docId) throws DatabaseException - { - RequestModel request = null; - Connection con = null; - PreparedStatement pst = null; - - try - { - if (docId == null || docId.isEmpty()) - throw new DatabaseException("Document ID is null or empty."); - String url = "jdbc:mysql://" + server + "/" + database; - con = DriverManager.getConnection(url, user, password); - String commandString = "select REQUESTID, DESTCOUNTRY, SPCOUNTRY, SPID, XMLREQUEST, XMLRESPONSE, REQTIMESTAMP, " - + "RESTIMESTAMP from request where DOCID = ?"; - - pst = con.prepareStatement(commandString); - pst.setString(1, docId); - - ResultSet set = pst.executeQuery(); - if (set.next()) - { - request = new RequestModel(); - request.setDocid(docId); - request.setRequestid(set.getString(1)); - request.setDestcountry(set.getString(2)); - request.setSpcountry(set.getString(3)); - request.setSpid(set.getString(4)); - request.setXmlrequest(set.getString(5)); - request.setXmlresponse(set.getString(6)); - request.setReqtimestamp(DatabaseHelper.getUtilDate(set.getTimestamp(7))); - request.setRestimestamp(DatabaseHelper.getSqlDate(set.getTimestamp(8))); - } - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - finally - { - try - { - if (pst != null) { - pst.close(); - } - if (con != null) { - con.close(); - } - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - } - - return request; - } - - /* (non-Javadoc) - * @see eu.stork.documentservice.data.DatabaseConnector#updateRequest(eu.stork.documentservice.model.RequestModel) - */ - @Override - public boolean updateRequest(RequestModel request) throws DatabaseException - { - boolean successful = false; - Connection con = null; - PreparedStatement pst = null; - - try - { - request.updateValidate(); - String url = "jdbc:mysql://" + server + "/" + database; - con = DriverManager.getConnection(url, user, password); - - pst = con.prepareStatement("update request set DOCID = ?, DESTCOUNTRY = ?, SPCOUNTRY = ?, SPID = ?, " - + "XMLREQUEST = ?, XMLRESPONSE = ?, RESTIMESTAMP = ? where REQUESTID = ?"); - pst.setString(1, request.getDocid()); - pst.setString(2, request.getDestcountry()); - pst.setString(3, request.getSpcountry()); - pst.setString(4, request.getSpid()); - pst.setString(5, request.getXmlrequest()); - pst.setString(6, request.getXmlresponse()); - pst.setTimestamp(7, DatabaseHelper.getSqlDate(request.getRestimestamp())); - pst.setString(8, request.getRequestid()); - pst.executeUpdate(); - successful = true; - } - catch (ModelException mex) - { - throw new DatabaseException(mex); - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - finally - { - try - { - if (pst != null) { - pst.close(); - } - if (con != null) { - con.close(); - } - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - } - return successful; - } - - @Override - public boolean addTempDocument(TempDocumentModel document) throws DatabaseException - { - boolean successful = false; - Connection con = null; - PreparedStatement pst = null; - - try - { - document.insertValidate(); - String url = "jdbc:mysql://" + server + "/" + database; - con = DriverManager.getConnection(url, user, password); - - pst = con.prepareStatement("INSERT INTO temp_document(DOCID, DOCUMENT, MIMETYPE, CREATED, RECEIVERCERT, " - + "ENCKEY, ENCIV, SPID) VALUES(?, ?, ?, ?, ?, ?, ?, (SELECT ID FROM spid where spid = ?))"); - pst.setString(1, document.getDocid()); - pst.setBlob(2, document.getDataStream()); - pst.setString(3, document.getMimetype()); - pst.setTimestamp(4, DatabaseHelper.getSqlCurrentDate()); - pst.setString(5, document.getReicevercert()); - pst.setString(6, document.getEnckey()); - pst.setString(7, document.getEnciv()); - pst.setString(8, document.getSpid()); - pst.executeUpdate(); - successful = true; - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - catch (ModelException mex) - { - throw new DatabaseException(mex); - } - finally - { - try - { - if (pst != null) { - pst.close(); - } - if (con != null) { - con.close(); - } - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - } - return successful; - } - - @Override - public TempDocumentModel getTempDocument(String docId) throws DatabaseException - { - TempDocumentModel document = null; - Connection con = null; - PreparedStatement pst = null; - - try - { - if (docId == null || docId.isEmpty()) - throw new DatabaseException("Document ID is null or empty."); - String url = "jdbc:mysql://" + server + "/" + database; - con = DriverManager.getConnection(url, user, password); - String commandString = "select temp.DOCUMENT, temp.MIMETYPE, temp.CREATED, temp.FETCHED, temp.DELETED, " - + "temp.RECEIVERCERT, temp.ENCKEY, temp.ENCIV, sp.SPID " - + "from temp_document temp inner join spid sp on sp.ID = temp.SPID where DOCID = ?"; - - pst = con.prepareStatement(commandString); - pst.setString(1, docId); - - ResultSet set = pst.executeQuery(); - if (set.next()) - { - document = new TempDocumentModel(); - document.setDocid(docId); - document.setDataStream(set.getBinaryStream(1)); - document.setMimetype(set.getString(2)); - document.setCreated(DatabaseHelper.getUtilDate(set.getTimestamp(3))); - document.setFetched(DatabaseHelper.getUtilDate(set.getTimestamp(4))); - document.setDeleted(DatabaseHelper.getUtilDate(set.getTimestamp(5))); - document.setReicevercert(set.getString(6)); - document.setEnckey(set.getString(7)); - document.setEnciv(set.getString(8)); - document.setSpid(set.getString(9)); - } - } - catch (ModelException mex) - { - throw new DatabaseException(mex); - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - finally - { - try - { - if (pst != null) { - pst.close(); - } - if (con != null) { - con.close(); - } - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - } - return document; - } - - @Override - public boolean updateTempDocument(TempDocumentModel document) throws DatabaseException - { - boolean successful = false; - Connection con = null; - PreparedStatement pst = null; - - try - { - document.updateValidate(); - String url = "jdbc:mysql://" + server + "/" + database; - con = DriverManager.getConnection(url, user, password); - - pst = con.prepareStatement("update temp_document set DOCUMENT = ?, MIMETYPE = ?, FETCHED = ?, " - + "RECEIVERCERT = ?, ENCKEY = ?, ENCIV = ? where DOCID = ?"); - pst.setBlob(1, document.getDataStream()); - pst.setString(2, document.getMimetype()); - pst.setTimestamp(3, DatabaseHelper.getSqlCurrentDate()); - pst.setString(4, document.getReicevercert()); - pst.setString(5, document.getEnckey()); - pst.setString(6, document.getEnciv()); - pst.setString(7, document.getDocid()); - pst.executeUpdate(); - successful = true; - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - catch (ModelException mex) - { - throw new DatabaseException(mex); - } - finally - { - try - { - if (pst != null) { - pst.close(); - } - if (con != null) { - con.close(); - } - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - } - return successful; - } - - @Override - public boolean deleteTempDocument(String docId) throws DatabaseException - { - boolean successful = false; - Connection con = null; - PreparedStatement pst = null; - - try - { - if (docId == null || docId.isEmpty()) - throw new DatabaseException("Document ID is null or empty."); - String url = "jdbc:mysql://" + server + "/" + database; - con = DriverManager.getConnection(url, user, password); - String commandString = "update temp_document set document = null, deleted = ? where DOCID = ?"; - - pst = con.prepareStatement(commandString); - pst.setTimestamp(1, DatabaseHelper.getSqlCurrentDate()); - pst.setString(2, docId); - - pst.executeUpdate(); - successful = true; - - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - finally - { - try - { - if (pst != null) { - pst.close(); - } - if (con != null) { - con.close(); - } - } - catch (SQLException ex) - { - throw new DatabaseException(ex); - } - } - - return successful; - } -} diff --git a/DocumentService/src/eu/stork/documentservice/data/DatabaseHelper.java b/DocumentService/src/eu/stork/documentservice/data/DatabaseHelper.java deleted file mode 100644 index 07c25aeba..000000000 --- a/DocumentService/src/eu/stork/documentservice/data/DatabaseHelper.java +++ /dev/null @@ -1,37 +0,0 @@ -package eu.stork.documentservice.data; - -public class DatabaseHelper { - /** - * Get the current timestamp in SQL timestamp - * @return the current time in sql timestamp - */ - public static java.sql.Timestamp getSqlCurrentDate() { - java.util.Date today = new java.util.Date(); - return new java.sql.Timestamp(today.getTime()); - } - - /** - * Convert Java Date to SQL timestamp - * @param date the date to convert - * @return the date in sql timestamp - */ - public static java.sql.Timestamp getSqlDate(java.util.Date date) { - if (date != null) - return new java.sql.Timestamp(date.getTime()); - else - return null; - } - - /** - * Convert SQL timestamp to Java Date - * @param time the timestamp to concert - * @return the time in util date - */ - public static java.util.Date getUtilDate(java.sql.Timestamp time) { - if (time != null) - return new java.util.Date(time.getTime()); - else - return null; - } - -} diff --git a/DocumentService/src/eu/stork/documentservice/data/docservice.properties b/DocumentService/src/eu/stork/documentservice/data/docservice.properties deleted file mode 100644 index 4ca12d023..000000000 --- a/DocumentService/src/eu/stork/documentservice/data/docservice.properties +++ /dev/null @@ -1,12 +0,0 @@ -sql.server=localhost:3306 -sql.database=STORKTRANSFER -sql.user=stork -sql.password=stork - -peps.country=AT - -#not used -peps.url=http://mopsos.iaik.tugraz.at:8080/PEPS/GetDSSFileAction - -#docservice.url=http://mopsos.iaik.tugraz.at:8080/DocumentService/DocumentService -docservice.url=http://testvidp.buergerkarte.at/DocumentService/DocumentService
\ No newline at end of file diff --git a/DocumentService/src/eu/stork/documentservice/exceptions/DatabaseException.java b/DocumentService/src/eu/stork/documentservice/exceptions/DatabaseException.java deleted file mode 100644 index bacca1ded..000000000 --- a/DocumentService/src/eu/stork/documentservice/exceptions/DatabaseException.java +++ /dev/null @@ -1,8 +0,0 @@ -package eu.stork.documentservice.exceptions; - -public class DatabaseException extends Exception { - public DatabaseException() { super(); } - public DatabaseException(String message) { super(message); } - public DatabaseException(String message, Throwable cause) { super(message, cause); } - public DatabaseException(Throwable cause) { super(cause); } -} diff --git a/DocumentService/src/eu/stork/documentservice/exceptions/DocumentServiceException.java b/DocumentService/src/eu/stork/documentservice/exceptions/DocumentServiceException.java deleted file mode 100644 index e77da437c..000000000 --- a/DocumentService/src/eu/stork/documentservice/exceptions/DocumentServiceException.java +++ /dev/null @@ -1,9 +0,0 @@ -package eu.stork.documentservice.exceptions; - -public class DocumentServiceException extends Exception { - public DocumentServiceException() { super(); } - public DocumentServiceException(String message) { super(message); } - public DocumentServiceException(String message, Throwable cause) { super(message, cause); } - public DocumentServiceException(Throwable cause) { super(cause); } - -} diff --git a/DocumentService/src/eu/stork/documentservice/exceptions/EncryptionException.java b/DocumentService/src/eu/stork/documentservice/exceptions/EncryptionException.java deleted file mode 100644 index b7557ea96..000000000 --- a/DocumentService/src/eu/stork/documentservice/exceptions/EncryptionException.java +++ /dev/null @@ -1,9 +0,0 @@ -package eu.stork.documentservice.exceptions; - -public class EncryptionException extends Exception { - public EncryptionException() { super(); } - public EncryptionException(String message) { super(message); } - public EncryptionException(String message, Throwable cause) { super(message, cause); } - public EncryptionException(Throwable cause) { super(cause); } - -} diff --git a/DocumentService/src/eu/stork/documentservice/exceptions/ModelException.java b/DocumentService/src/eu/stork/documentservice/exceptions/ModelException.java deleted file mode 100644 index b85f1579b..000000000 --- a/DocumentService/src/eu/stork/documentservice/exceptions/ModelException.java +++ /dev/null @@ -1,8 +0,0 @@ -package eu.stork.documentservice.exceptions; - -public class ModelException extends Exception { - public ModelException() { super(); } - public ModelException(String message) { super(message); } - public ModelException(String message, Throwable cause) { super(message, cause); } - public ModelException(Throwable cause) { super(cause); } -} diff --git a/DocumentService/src/eu/stork/documentservice/model/DocumentModel.java b/DocumentService/src/eu/stork/documentservice/model/DocumentModel.java deleted file mode 100644 index 10ae8a189..000000000 --- a/DocumentService/src/eu/stork/documentservice/model/DocumentModel.java +++ /dev/null @@ -1,122 +0,0 @@ -package eu.stork.documentservice.model; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.Date; - -import eu.stork.documentservice.exceptions.ModelException; - -/** - * The document model class - * @author sveinbjorno - * - */ -public class DocumentModel { - private String docid; - private byte[] document; - private String filename; - private String mimetype; - private String reicevercert; - private String enckey; - private String enciv; - private Date created; - private Date updated; - private Date deleted; - - public String getDocid() { - return docid; - } - public void setDocid(String docid) { - this.docid = docid; - } - public byte[] getDocument() { - return document; - } - public void setDocument(byte[] document) { - this.document = document; - } - public String getFilename() { - return filename; - } - public void setFilename(String filename) { - this.filename = filename; - } - public String getMimetype() { - return mimetype; - } - public void setMimetype(String mimetype) { - this.mimetype = mimetype; - } - public String getReicevercert() { - return reicevercert; - } - public void setReicevercert(String reicevercert) { - this.reicevercert = reicevercert; - } - public String getEnckey() { - return enckey; - } - public void setEnckey(String enckey) { - this.enckey = enckey; - } - public String getEnciv() { - return enciv; - } - public void setEnciv(String enciv) { - this.enciv = enciv; - } - public Date getCreated() { - return created; - } - public void setCreated(Date created) { - this.created = created; - } - public Date getUpdated() { - return updated; - } - public void setUpdated(Date updated) { - this.updated = updated; - } - public Date getDeleted() { - return deleted; - } - public void setDeleted(Date deleted) { - this.deleted = deleted; - } - - public InputStream getDataStream() - { - if (this.document != null) - return new ByteArrayInputStream(this.document); - else - return null; - } - - public void setDataStream(InputStream stream) throws ModelException - { - try { - this.document = new byte[stream.available()]; - stream.read(this.document); - } catch (IOException e) { - throw new ModelException("Unable to parse stream.", e); - } - } - - public void insertValidate() throws ModelException - { - if (this.docid == null || this.docid.isEmpty()) - throw new ModelException("Document ID is null or empty"); - if (this.document == null) - throw new ModelException("Document is null"); - if (this.mimetype == null || this.mimetype.isEmpty()) - throw new ModelException("MIME type is null or empty."); - } - - public void updateValidate() throws ModelException - { - this.insertValidate(); - if (this.created == null) - throw new ModelException("Created is null"); - } -} diff --git a/DocumentService/src/eu/stork/documentservice/model/RequestModel.java b/DocumentService/src/eu/stork/documentservice/model/RequestModel.java deleted file mode 100644 index 638af419e..000000000 --- a/DocumentService/src/eu/stork/documentservice/model/RequestModel.java +++ /dev/null @@ -1,106 +0,0 @@ -package eu.stork.documentservice.model; - -import java.util.Date; - -import eu.stork.documentservice.exceptions.ModelException; - -/** - * The request model class - * @author sveinbjorno - * - */ -public class RequestModel { - - private String requestid; - private String docid; - private String destcountry; - private String spcountry; - private String spid; - private String xmlrequest; - private String xmlresponse; - private Date reqtimestamp; - private Date restimestamp; - - public String getRequestid() { - return requestid; - } - public void setRequestid(String requestid) { - this.requestid = requestid; - } - public String getDocid() { - return docid; - } - public void setDocid(String docid) { - this.docid = docid; - } - public String getDestcountry() { - return destcountry; - } - public void setDestcountry(String destcountry) { - this.destcountry = destcountry; - } - public String getSpcountry() { - return spcountry; - } - public void setSpcountry(String spcountry) { - this.spcountry = spcountry; - } - public String getSpid() { - return spid; - } - public void setSpid(String spid) { - this.spid = spid; - } - public String getXmlrequest() { - return xmlrequest; - } - public void setXmlrequest(String xmlrequest) { - this.xmlrequest = xmlrequest; - } - public String getXmlresponse() { - return xmlresponse; - } - public void setXmlresponse(String xmlresponse) { - this.xmlresponse = xmlresponse; - } - public Date getReqtimestamp() { - return reqtimestamp; - } - public void setReqtimestamp(Date reqtimestamp) { - this.reqtimestamp = reqtimestamp; - } - public Date getRestimestamp() { - return restimestamp; - } - public void setRestimestamp(Date restimestamp) { - this.restimestamp = restimestamp; - } - - public String getFullDocID() - { - return this.spcountry + "/" + this.destcountry + "/" + this.docid; - } - - public void insertValidate() throws ModelException - { - if (this.requestid == null || this.requestid.isEmpty()) - throw new ModelException("Request ID is null or empty"); - if (this.destcountry == null || this.destcountry.isEmpty()) - throw new ModelException("Destination country is null or empty."); - if (this.spcountry == null || this.spcountry.isEmpty()) - throw new ModelException("SP country is null or empty."); - if (this.destcountry == null || this.destcountry.isEmpty()) - throw new ModelException("Destination country is null or empty."); - if (this.xmlrequest== null || this.xmlrequest.isEmpty()) - throw new ModelException("XML request is null or empty."); - } - - public void updateValidate() throws ModelException - { - this.insertValidate(); - if (this.docid == null || this.docid.isEmpty()) - throw new ModelException("Document ID is null or empty"); - if (this.reqtimestamp == null) - throw new ModelException("Request timestamp is null or empty"); - } -} diff --git a/DocumentService/src/eu/stork/documentservice/model/TempDocumentModel.java b/DocumentService/src/eu/stork/documentservice/model/TempDocumentModel.java deleted file mode 100644 index 7c28cc0f7..000000000 --- a/DocumentService/src/eu/stork/documentservice/model/TempDocumentModel.java +++ /dev/null @@ -1,118 +0,0 @@ -package eu.stork.documentservice.model; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.Date; - -import eu.stork.documentservice.exceptions.ModelException; - -public class TempDocumentModel { - private String docid; - private byte[] document; - private String spid; - private String mimetype; - private String reicevercert; - private String enckey; - private String enciv; - private Date created; - private Date fetched; - private Date deleted; - - public String getDocid() { - return docid; - } - public void setDocid(String docid) { - this.docid = docid; - } - public byte[] getDocument() { - return document; - } - public void setDocument(byte[] document) { - this.document = document; - } - public String getSpid() { - return spid; - } - public void setSpid(String spid) { - this.spid = spid; - } - public String getMimetype() { - return mimetype; - } - public void setMimetype(String mimetype) { - this.mimetype = mimetype; - } - - public String getReicevercert() { - return reicevercert; - } - public void setReicevercert(String reicevercert) { - this.reicevercert = reicevercert; - } - public String getEnckey() { - return enckey; - } - public void setEnckey(String enckey) { - this.enckey = enckey; - } - public String getEnciv() { - return enciv; - } - public void setEnciv(String enciv) { - this.enciv = enciv; - } - public Date getCreated() { - return created; - } - public void setCreated(Date created) { - this.created = created; - } - public Date getFetched() { - return fetched; - } - public void setFetched(Date fetched) { - this.fetched = fetched; - } - public Date getDeleted() { - return deleted; - } - public void setDeleted(Date deleted) { - this.deleted = deleted; - } - - public InputStream getDataStream() - { - if (this.document != null) - return new ByteArrayInputStream(this.document); - else - return null; - } - - public void setDataStream(InputStream stream) throws ModelException - { - try { - this.document = new byte[stream.available()]; - stream.read(this.document); - } catch (IOException e) { - throw new ModelException("Unable to parse stream.", e); - } - } - - public void insertValidate() throws ModelException - { - if (this.docid == null || this.docid.isEmpty()) - throw new ModelException("Document ID is null or empty"); - if (this.document == null) - throw new ModelException("Document is null"); - if (this.spid == null || this.spid.isEmpty()) - throw new ModelException("SPId is null or empty."); - } - - public void updateValidate() throws ModelException - { - this.insertValidate(); - if (this.created == null) - throw new ModelException("Created is null"); - } -} diff --git a/DocumentService/src/eu/stork/documentservice/tests/AttrQueryRequestSdoc.xml b/DocumentService/src/eu/stork/documentservice/tests/AttrQueryRequestSdoc.xml deleted file mode 100644 index 01dbf7317..000000000 --- a/DocumentService/src/eu/stork/documentservice/tests/AttrQueryRequestSdoc.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><saml2p:AttributeQuery xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:stork="urn:eu:stork:names:tc:STORK:1.0:assertion" xmlns:storkp="urn:eu:stork:names:tc:STORK:1.0:protocol" xmlns:xs="http://www.w3.org/2001/XMLSchema" AssertionConsumerServiceURL="http://S-PEPS.gov.xx/PEPS/ColleagueResponse" Consent="urn:oasis:names:tc:SAML:2.0:consent:unspecified" Destination="http://A-PEPS.gov.xx/PEPS/AttributeColleagueRequest" ID="_502bc4db31bb07e54a8b59c6b738dcfc" IssueInstant="2014-01-29T14:04:32.188Z" Version="2.0"><saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">http://S-PEPS.gov.xx</saml2:Issuer><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/><ds:Reference URI="#_502bc4db31bb07e54a8b59c6b738dcfc"><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"><ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="xs"/></ds:Transform></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><ds:DigestValue>3F4d8+UWhFgV+WjA3SnBH1xp3k8=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>elOYmXMcuith/nZoqF7NNpBNt8KbUHBVleRcxgMEQwqn4fsebriUFhlbesnIWmJcSKSJetlsVNm+1ZydGjxasTAsz1Nm3K9IVm2gyhXWOqisTfSRcGavJzJuS2MpLvz+O3aa/RbNvDJvDqTD3eGhvfBB/8M/eWNhgQFI5xFFH2DcsW96YtMNafaocHt4lh35+8C4htV3bd8AAD6jzVwN1itBOKivlB048OA3BI9PXdnzLKOfBOXH3TrXpqI06BJpBITFB/teOWLys4p7YH+FejQZgo0mS8+srrRbx+eILqXy+GCujJ8eCJXo2d3JQMcMLqoHaT0Jgj18+QagVkWmiA==</ds:SignatureValue><ds:KeyInfo><ds:X509Data><ds:X509Certificate>MIIDIjCCAgqgAwIBAgIES6idsjANBgkqhkiG9w0BAQUFADBTMQswCQYDVQQGEwJFUzEOMAwGA1UE -CAwFU3BhaW4xDzANBgNVBAcMBk1hZHJpZDEOMAwGA1UECgwFSW5kcmExEzARBgNVBAMMCmxvY2Fs -LWRlbW8wHhcNMTMwODI4MTY0NzM1WhcNMTUwODI4MTY0NzM1WjBTMQswCQYDVQQGEwJFUzEOMAwG -A1UECAwFU3BhaW4xDzANBgNVBAcMBk1hZHJpZDEOMAwGA1UECgwFSW5kcmExEzARBgNVBAMMCmxv -Y2FsLWRlbW8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx+7zEQUbt8Ot9dByR5TuY -NPmTwaKhECtnkxYAx9tl+Ga3kFiv+dOSeDoQOhxkICG1ZMaG0Gtk0EQWjscC1cLwDXpAOdhOm5xh -ndFHxa3V3Y3zomFZA7A3nwP8wt17wDrc1xi2Ye8VrwO7Vjb/F8Rgutlcrvq+LF4g9nQLoRiKUq8w -NFvDlvhBbLr8hMVBMY/jY7tSQ85qLqKUkWRcoDttJjgWZoO1vpBS4m+FywtYdOoHnN6fv4Dvf1r2 -rNLgebgBvSfwznxiulwW6FBLasYX0rYKP7RfwG8TJ+FumOgAjADj2LdwK25RZNg44XU2V1z1Fp37 -fNXhfo08LpdD1ueFAgMBAAEwDQYJKoZIhvcNAQEFBQADggEBADMRGTWOmadZyCoJNluV+M7LopjC -9WpFUj76X0cAoNXmt12zYqYe8hjRmBr6l2V/FXT3/TyWET1nILG46zwwAxslw3b2LvkhU+9QcuB8 -yC8TCJJ0kgsTZ/EUZPSbwUG7Nn2jkMiyjlyKcjSCQOzEKQyR1xYwyZG40+BPeGbYjmRgm6kcmCxY -USWoPwNyfke9gNT80f0pUj7wJ9YwWbTIz1rhf/h7rxoMYypXo+JXwaXW/Ra8v1uDcwfKpE5ZgwAU -nubLXF4A+H7/N7ZvB5XDwJ4W+99nuPsKfwacD8m1sflTXcEPzzhOq6iQ9anJT94/pMctnp827zXA -y66jvDrin5I=</ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature><saml2p:Extensions><stork:QualityAuthenticationAssuranceLevel>3</stork:QualityAuthenticationAssuranceLevel><stork:spCountry>IS</stork:spCountry><storkp:eIDSectorShare>false</storkp:eIDSectorShare><storkp:eIDCrossSectorShare>false</storkp:eIDCrossSectorShare><storkp:eIDCrossBorderShare>false</storkp:eIDCrossBorderShare><storkp:RequestedAttributes><stork:RequestedAttribute Name="http://www.stork.gov.eu/1.0/docRequest" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" isRequired="true"><stork:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:anyType">IS/IS/fbea6e68-0393-401b-b616-f767fff9418c</stork:AttributeValue></stork:RequestedAttribute></storkp:RequestedAttributes></saml2p:Extensions><saml2:Subject><saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"/></saml2:Subject></saml2p:AttributeQuery>
\ No newline at end of file diff --git a/DocumentService/src/eu/stork/documentservice/tests/DatabaseTests.java b/DocumentService/src/eu/stork/documentservice/tests/DatabaseTests.java deleted file mode 100644 index a888f0737..000000000 --- a/DocumentService/src/eu/stork/documentservice/tests/DatabaseTests.java +++ /dev/null @@ -1,265 +0,0 @@ -package eu.stork.documentservice.tests; - -import static org.junit.Assert.*; - -import java.util.Date; -import java.util.UUID; - -import org.junit.Test; - -import eu.stork.documentservice.data.DatabaseConnector; -import eu.stork.documentservice.data.DatabaseConnectorMySQLImpl; -import eu.stork.documentservice.exceptions.DatabaseException; -import eu.stork.documentservice.model.DocumentModel; -import eu.stork.documentservice.model.RequestModel; -import eu.stork.documentservice.model.TempDocumentModel; -import eu.stork.documentservice.utils.Utils; - -public class DatabaseTests { - - private String user = "stork"; - private String password = "stork"; - private String database = "stork"; - private String server = "localhost:3306"; - private String pdfLoc = "C:/Temp/temp.pdf"; - private String destCountry = "AT"; - private String spCountry = "IS"; - private String spId = "Demo-SP"; - private String xmlrequest = "<xml><data>foo</data>"; - private String xmlresponse = "<xml><data>foo_signed</data>"; - private static String docId = ""; - private static String docId2 = ""; - private static String reqId = ""; - - public DatabaseTests() - { - if (docId.isEmpty()) - docId = UUID.randomUUID().toString(); - if (docId2.isEmpty()) - docId2 = UUID.randomUUID().toString(); - if (reqId.isEmpty()) - reqId = UUID.randomUUID().toString(); - } - - @Test - //Test adding document - public void test1() { - DatabaseConnector conn = new DatabaseConnectorMySQLImpl(user, password, server, database); - DocumentModel document = new DocumentModel(); - document.setDocid(docId); - document.setDocument(Utils.readData(pdfLoc)); - document.setFilename("pdfdoc.pdf"); - document.setMimetype("application/pdf"); - - try - { - boolean ok = conn.addDocument(document); - assertTrue(ok); - } - catch (DatabaseException ex) - { - ex.printStackTrace(); - } - } - - @Test - //Test getting document - public void test2() - { - DatabaseConnector conn = new DatabaseConnectorMySQLImpl(user, password, server, database); - try - { - DocumentModel document = conn.getDocument(docId); - assertNotNull(document); - } - catch (DatabaseException ex) - { - ex.printStackTrace(); - } - } - - @Test - //Test updating document - public void test3() - { - DatabaseConnector conn = new DatabaseConnectorMySQLImpl(user, password, server, database); - try - { - DocumentModel document = conn.getDocument(docId); - boolean ok = conn.updateDocument(document); - assertTrue(ok); - } - catch (DatabaseException ex) - { - ex.printStackTrace(); - } - } - - @Test - //Test deleting document - public void test4() - { - DatabaseConnector conn = new DatabaseConnectorMySQLImpl(user, password, server, database); - try - { - boolean ok = conn.deleteDocument(docId); - assertTrue(ok); - } - catch (DatabaseException ex) - { - ex.printStackTrace(); - } - } - - @Test - //Test adding new request - public void test5() - { - DatabaseConnector conn = new DatabaseConnectorMySQLImpl(user, password, server, database); - RequestModel request = new RequestModel(); - request.setRequestid(reqId); - request.setDestcountry(destCountry); - request.setSpcountry(spCountry); - request.setSpid(spId); - request.setXmlrequest(xmlrequest); - - try - { - boolean ok = conn.addRequest(request); - assertTrue(ok); - } - catch (DatabaseException ex) - { - ex.printStackTrace(); - } - } - - @Test - //Test getting request - public void test6() - { - DatabaseConnector conn = new DatabaseConnectorMySQLImpl(user, password, server, database); - - try - { - RequestModel request = conn.getRequest(reqId); - assertNotNull(request); - } - catch (DatabaseException ex) - { - ex.printStackTrace(); - } - } - - @Test - //Test updating request - public void test7() - { - DatabaseConnector conn = new DatabaseConnectorMySQLImpl(user, password, server, database); - - try - { - RequestModel request = conn.getRequest(reqId); - request.setDocid(docId); - boolean ok = conn.updateRequest(request); - assertTrue(ok); - } - catch (DatabaseException ex) - { - ex.printStackTrace(); - } - } - - @Test - //Test getting new request - public void test8() - { - DatabaseConnector conn = new DatabaseConnectorMySQLImpl(user, password, server, database); - - try - { - RequestModel request = conn.getRequest(reqId); - request.setXmlresponse(xmlresponse); - request.setRestimestamp(new Date()); - boolean ok = conn.updateRequest(request); - assertTrue(ok); - } - catch (DatabaseException ex) - { - ex.printStackTrace(); - } - } - - - @Test - //Test add temp document - public void test10() - { - DatabaseConnector conn = new DatabaseConnectorMySQLImpl(user, password, server, database); - TempDocumentModel document = new TempDocumentModel(); - document.setDocid(docId2); - document.setDocument(Utils.readData(pdfLoc)); - document.setSpid(spId); - //document.setFilename("pdfdoc.pdf"); - document.setMimetype("application/pdf"); - - try - { - boolean ok = conn.addTempDocument(document); - assertTrue(ok); - } - catch (DatabaseException ex) - { - ex.printStackTrace(); - } - } - - @Test - //Test getting temp document - public void test11() - { - DatabaseConnector conn = new DatabaseConnectorMySQLImpl(user, password, server, database); - try - { - TempDocumentModel document = conn.getTempDocument(docId2); - assertNotNull(document); - } - catch (DatabaseException ex) - { - ex.printStackTrace(); - } - } - - @Test - //Test updating temp document - public void test12() - { - DatabaseConnector conn = new DatabaseConnectorMySQLImpl(user, password, server, database); - try - { - TempDocumentModel document = conn.getTempDocument(docId2); - boolean ok = conn.updateTempDocument(document); - assertTrue(ok); - } - catch (DatabaseException ex) - { - ex.printStackTrace(); - } - } - - @Test - //Test delete temp document - public void test13() - { - DatabaseConnector conn = new DatabaseConnectorMySQLImpl(user, password, server, database); - try - { - boolean ok = conn.deleteTempDocument(docId2); - assertTrue(ok); - } - catch (DatabaseException ex) - { - ex.printStackTrace(); - } - } -} diff --git a/DocumentService/src/eu/stork/documentservice/tests/DocumentServiceTests.java b/DocumentService/src/eu/stork/documentservice/tests/DocumentServiceTests.java deleted file mode 100644 index 0d27cf044..000000000 --- a/DocumentService/src/eu/stork/documentservice/tests/DocumentServiceTests.java +++ /dev/null @@ -1,123 +0,0 @@ -package eu.stork.documentservice.tests; - -import static org.junit.Assert.*; - -import java.net.MalformedURLException; -import java.net.URL; - -import javax.xml.namespace.QName; -import javax.xml.ws.BindingProvider; -import javax.xml.ws.Service; -import javax.xml.ws.soap.SOAPBinding; - -import org.junit.Test; - -import eu.stork.documentservice.DocumentService; -import eu.stork.documentservice.exceptions.DocumentServiceException; -import eu.stork.documentservice.utils.Utils; -import eu.stork.documentservice.utils.XmlHelper; - -public class DocumentServiceTests { - - private static String xmlrequest = "<dss:SignRequest xmlns:dss=\"urn:oasis:names:tc:dss:1.0:core:schema\" RequestID=\"_d96b62a87d18f1095180b1f44c90b5fd\"><dss:InputDocuments><dss:Document><dss:Base64Data MimeType=\"text/plain\">VGVzdCB0ZXh0</dss:Base64Data></dss:Document></dss:InputDocuments></dss:SignRequest>"; - private static String docRequstLoc = "C:/Temp/AttrQueryRequestSdoc.xml"; - private static String docRequstLocMod = "C:/Temp/AttrQueryRequestSdocMod.xml"; - private static String destCountry = "AT"; - private static String spID ="DEMO-SP"; - - @Test - public void testXmlParsing() { - String reqId = null; - try { - reqId = XmlHelper.getRequestId(xmlrequest); - } catch (DocumentServiceException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - assertNotNull(reqId); - } - - @Test - public void testXmlParsingDocument() { - String doc = null; - try { - doc = XmlHelper.getRequestDocumentData(xmlrequest); - } catch (DocumentServiceException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - assertNotNull(doc); - } - - @Test - public void testXmlParsingDocumentMime() { - String mime = null; - try { - mime = XmlHelper.getRequestDocumentMime(xmlrequest); - } catch (DocumentServiceException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - assertNotNull(mime); - } - - @Test - public void testCheckTransferrequest() - { - byte[] docBytes = Utils.readData(docRequstLoc); - try { - String docId = XmlHelper.verifyRequestByte(docBytes); - assertTrue(!docId.isEmpty()); - } catch (DocumentServiceException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - @Test - public void testCheckTransferrequestMod() - { - byte[] docBytes = Utils.readData(docRequstLocMod); - try { - XmlHelper.verifyRequestByte(docBytes); - fail("testCheckTransferrequestMod(...) should've thrown an DocumentServiceException!"); - } catch (DocumentServiceException e) { - e.printStackTrace(); - //success("Exception thrown."); - } - } - - @Test - public void testAddDocument() - { - URL url = null; - try { - url = new URL("http://localhost:8080/DocumentService/DocumentService?wsdl"); - } catch (MalformedURLException e) { - e.printStackTrace(); - } - QName qname = new QName("http://stork.eu", - "DocumentService"); - - Service service = Service.create(url, qname); - DocumentService docservice = service.getPort(DocumentService.class); - - BindingProvider bp = (BindingProvider) docservice; - SOAPBinding binding = (SOAPBinding) bp.getBinding(); - binding.setMTOMEnabled(true); - - try - { - String doc = XmlHelper.getRequestDocumentData(xmlrequest); - byte[] docData = Utils.decodeBase64String(doc, false); - String mime = XmlHelper.getRequestDocumentMime(xmlrequest); - String docid = docservice.addDocument(docData, xmlrequest, destCountry, spID, mime, ""); - assertNotNull(docid); - } - catch (Exception ex) - { - ex.printStackTrace(); - } - } - -} diff --git a/DocumentService/src/eu/stork/documentservice/tests/EncryptionTests.java b/DocumentService/src/eu/stork/documentservice/tests/EncryptionTests.java deleted file mode 100644 index 9ac0862cf..000000000 --- a/DocumentService/src/eu/stork/documentservice/tests/EncryptionTests.java +++ /dev/null @@ -1,63 +0,0 @@ -package eu.stork.documentservice.tests; - -import static org.junit.Assert.*; - -import java.util.Arrays; - -import org.junit.Test; - -import eu.stork.documentservice.exceptions.EncryptionException; -import eu.stork.documentservice.utils.EncryptionHelper; -import eu.stork.documentservice.utils.Utils; - -public class EncryptionTests { - - private String pdfLoc = "C:/Temp/temp.pdf"; - private String certLocation = "C:/Temp/testcert.pem"; - private static String encKey; - private static String encIv; - - @Test - //Test encrypting some data - public void test1() { - try { - EncryptionHelper enc = new EncryptionHelper(); - byte[] data = (Utils.readData(pdfLoc)); - byte[] encdata = enc.encrypt(data); - assertNotNull(encdata); - } catch (EncryptionException e) { - e.printStackTrace(); - } - } - - @Test - //Test encrypting and decrypting some data - public void test2() { - try { - EncryptionHelper enc = new EncryptionHelper(); - byte[] data = (Utils.readData(pdfLoc)); - byte[] encdata = enc.encrypt(data); - encKey = enc.getKey(); - encIv = enc.getIv(); - - EncryptionHelper enc1 = new EncryptionHelper(encKey, encIv); - byte[] decdata = enc1.decrypt(encdata); - assertTrue(Arrays.equals(data, decdata)); - } catch (EncryptionException e) { - e.printStackTrace(); - } - } - - @Test - //Test encrypting with a certificate - public void test3() { - try { - EncryptionHelper enc = new EncryptionHelper(encKey, encIv); - String certString = Utils.readString(certLocation); - String secret = enc.encryptWithCert(certString, encKey); - assertTrue((secret != null && !secret.isEmpty())); - } catch (EncryptionException e) { - e.printStackTrace(); - } - } -} diff --git a/DocumentService/src/eu/stork/documentservice/utils/Bootstrap.java b/DocumentService/src/eu/stork/documentservice/utils/Bootstrap.java deleted file mode 100644 index 72da74e52..000000000 --- a/DocumentService/src/eu/stork/documentservice/utils/Bootstrap.java +++ /dev/null @@ -1,31 +0,0 @@ -package eu.stork.documentservice.utils; - -import org.opensaml.DefaultBootstrap; -import org.opensaml.xml.ConfigurationException; - -public class Bootstrap extends DefaultBootstrap { - - static boolean initializied = false; - public static synchronized void bootstrap() throws ConfigurationException { - - if(!initializied) - { - initializeXMLSecurity(); - - initializeXMLTooling(); - -// initializeArtifactBuilderFactories(); -// -// initializeGlobalSecurityConfiguration(); -// -// initializeParserPool(); -// -// initializeESAPI(); - } - else - { - System.out.println("Skipping initialization..."); - } - } - -} diff --git a/DocumentService/src/eu/stork/documentservice/utils/EncryptionHelper.java b/DocumentService/src/eu/stork/documentservice/utils/EncryptionHelper.java deleted file mode 100644 index 1c55e59e3..000000000 --- a/DocumentService/src/eu/stork/documentservice/utils/EncryptionHelper.java +++ /dev/null @@ -1,182 +0,0 @@ -package eu.stork.documentservice.utils; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.security.AlgorithmParameters; -import java.security.PublicKey; -import java.security.cert.CertificateFactory; -import java.security.cert.X509Certificate; - -import javax.crypto.*; -import javax.crypto.spec.IvParameterSpec; -import javax.crypto.spec.SecretKeySpec; - -import com.sun.org.apache.xml.internal.security.utils.Base64; - -import eu.stork.documentservice.exceptions.EncryptionException; - -public class EncryptionHelper { - - private static String key; - private static String iv; - private static Cipher cipher; - - public EncryptionHelper() throws EncryptionException - { - this.generateKeys(); - } - - public EncryptionHelper(String inKey, String inIv) throws EncryptionException - { - this.initKeys(inKey, inIv); - } - - /** - * Generate new symmetric keys - * @throws EncryptionException - */ - public void generateKeys() throws EncryptionException - { - try - { - KeyGenerator keyGen = KeyGenerator.getInstance("AES"); - keyGen.init(256); - SecretKey secretKey = keyGen.generateKey(); - cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); - cipher.init(Cipher.ENCRYPT_MODE, secretKey); - AlgorithmParameters params = cipher.getParameters(); - key = Base64.encode(secretKey.getEncoded()); - iv = Base64.encode(params.getParameterSpec(IvParameterSpec.class).getIV()); - } - catch (Exception e) - { - e.printStackTrace(); - throw new EncryptionException("Unable to generate encryption key.", e); - } - } - - /** - * Initialize keys with specified keys - * @param inKey the key to use - * @param inIv the IV to use - * @throws EncryptionException the exception thrown - */ - public void initKeys(String inKey, String inIv) throws EncryptionException - { - try - { - key = inKey; - iv = inIv; - SecretKeySpec skeySpec = new SecretKeySpec(Base64.decode(inKey), "AES"); - cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); - cipher.init(Cipher.DECRYPT_MODE, skeySpec, new IvParameterSpec(Base64.decode(inIv))); - } - catch (Exception e) - { - e.printStackTrace(); - throw new EncryptionException("Unable to initialize encryption key.", e); - } - } - - /** - * Encrypt data with key - * @param clearData the clear data - * @return the encrypted data - * @throws EncryptionException the exception thrown - */ - public byte[] encrypt(byte[] clearData) throws EncryptionException - { - if (clearData != null) - { - try - { - return cipher.doFinal(clearData); - } - catch (Exception ex) - { - throw new EncryptionException("Could not decrypt data.", ex); - } - } - else - throw new EncryptionException("Clear data is null."); - } - - /** - * Decrypt data with keys - * @param encData the encrypted data - * @return decrypted data - * @throws EncryptionException the exception thrown - */ - public byte[] decrypt(byte[] encData) throws EncryptionException - { - if (encData != null) - { - try - { - return cipher.doFinal(encData); - } - catch (Exception ex) - { - throw new EncryptionException("Could not encrypt data.", ex); - } - } - else - throw new EncryptionException("Encrypted data is null."); - } - - /** - * Get the key string - * @return the key - */ - public String getKey() - { - return key; - } - - /** - * Get the IV string - * @return the iv - */ - public String getIv() - { - return iv; - } - - /** - * Encrypt string with certificate - * @param certString the PEM formated certificate - * @param input the string to encrypt - * @return encrypted string - * @throws EncryptionException the exception thrown - */ - public String encryptWithCert(String certString, String input) throws EncryptionException - { - if (certString != null && !certString.isEmpty()) - { - if (input != null && !input.isEmpty()) - { - try { - certString = certString.replace("-----BEGIN CERTIFICATE-----", ""); - certString = certString.replace("-----END CERTIFICATE-----", ""); - InputStream inStream = new ByteArrayInputStream(Base64.decode(certString)); - CertificateFactory cf = CertificateFactory.getInstance("X.509"); - X509Certificate cert = (X509Certificate)cf.generateCertificate(inStream); - PublicKey pk = cert.getPublicKey(); - Cipher rsaCipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); - rsaCipher.init(Cipher.ENCRYPT_MODE, pk); - byte[] encrypted = rsaCipher.doFinal(input.getBytes("UTF-8")); - return Base64.encode(encrypted); - } - catch (Exception e) { - e.printStackTrace(); - throw new EncryptionException("Unabled to encrypt string.", e); - } - } - else - throw new EncryptionException("Input is null or empty."); - } - else - throw new EncryptionException("Certificate is null or empty."); - } - -} diff --git a/DocumentService/src/eu/stork/documentservice/utils/ExternalDocservice.java b/DocumentService/src/eu/stork/documentservice/utils/ExternalDocservice.java deleted file mode 100644 index 821d636a2..000000000 --- a/DocumentService/src/eu/stork/documentservice/utils/ExternalDocservice.java +++ /dev/null @@ -1,105 +0,0 @@ -package eu.stork.documentservice.utils; - -import java.net.MalformedURLException; -import java.net.URL; - -import javax.xml.namespace.QName; -import javax.xml.ws.BindingProvider; -import javax.xml.ws.Service; -import javax.xml.ws.soap.SOAPBinding; - -import eu.stork.documentservice.DocumentService; -import eu.stork.documentservice.exceptions.DocumentServiceException; - -public class ExternalDocservice { - - /** - * Get document from external DTL - * @param documentTransferRequest the document transfer request (attribute query) - * @param dtlUrl the URL of external DTL - * @return the document found - * @throws DocumentServiceException - */ - public static byte[] getDocument(String documentTransferRequest, String dtlUrl) throws DocumentServiceException - { - if (documentTransferRequest != null && !documentTransferRequest.isEmpty()) - { - if (dtlUrl != null && !dtlUrl.isEmpty()) - { - try - { - URL url = new URL(dtlUrl); - - QName qname = new QName("http://stork.eu", - "DocumentService"); - - Service service = Service.create(url, qname); - DocumentService docservice = service.getPort(DocumentService.class); - - BindingProvider bp = (BindingProvider) docservice; - SOAPBinding binding = (SOAPBinding) bp.getBinding(); - binding.setMTOMEnabled(true); - - return docservice.getDocument(documentTransferRequest, dtlUrl); - } - catch (MalformedURLException e) { - e.printStackTrace(); - throw new DocumentServiceException("DTL url is invalid.", e); - } - catch (Exception e) { - e.printStackTrace(); - throw new DocumentServiceException(e); - } - } - else - throw new DocumentServiceException("DTL url is empty."); - } - else - throw new DocumentServiceException("Document transfer request is empty."); - } - - /** - * Get document mime from external DTL - * @param docId the document id - * @param dtlUrl the URL of external DTL - * @return the document mime found - * @throws DocumentServiceException - */ - public static String getDocumentMime(String docId, String dtlUrl) throws DocumentServiceException - { - if (docId != null && !docId.isEmpty()) - { - if (dtlUrl != null && !dtlUrl.isEmpty()) - { - try - { - URL url = new URL(dtlUrl); - - QName qname = new QName("http://stork.eu", - "DocumentService"); - - Service service = Service.create(url, qname); - DocumentService docservice = service.getPort(DocumentService.class); - - BindingProvider bp = (BindingProvider) docservice; - SOAPBinding binding = (SOAPBinding) bp.getBinding(); - binding.setMTOMEnabled(true); - - return docservice.getDocumentMime(docId, dtlUrl); - } - catch (MalformedURLException e) { - e.printStackTrace(); - throw new DocumentServiceException("DTL url is invalid.", e); - } - catch (Exception e) { - e.printStackTrace(); - throw new DocumentServiceException(e); - } - } - else - throw new DocumentServiceException("DTL url is empty."); - } - else - throw new DocumentServiceException("Document Id is empty."); - } -} diff --git a/DocumentService/src/eu/stork/documentservice/utils/GetDSSFileAction.java b/DocumentService/src/eu/stork/documentservice/utils/GetDSSFileAction.java deleted file mode 100644 index 2fce0165d..000000000 --- a/DocumentService/src/eu/stork/documentservice/utils/GetDSSFileAction.java +++ /dev/null @@ -1,93 +0,0 @@ -package eu.stork.documentservice.utils; -/* - * This work is Open Source and licensed by the European Commission under the - * conditions of the European Public License v1.1 - * - * (http://www.osor.eu/eupl/european-union-public-licence-eupl-v.1.1); - * - * any use of this file implies acceptance of the conditions of this license. - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - */ - - -import org.apache.log4j.Logger; -import org.bouncycastle.util.encoders.UrlBase64; -import org.opensaml.xml.ConfigurationException; - -import eu.stork.peps.auth.commons.IPersonalAttributeList; -import eu.stork.peps.auth.commons.PEPSUtil; - -import eu.stork.peps.auth.commons.PersonalAttribute; -import eu.stork.peps.auth.commons.STORKAttrQueryRequest; - -//import eu.stork.peps.auth.cpeps.AUCPEPS; -import eu.stork.peps.auth.engine.STORKSAMLEngine; -import eu.stork.peps.exceptions.STORKSAMLEngineException; - -/** - * This Action will be invoked by file transfer in order to validate saml - * - * @author Advania - * - * @version $Revision: $, $Date: $ - * - */ -public final class GetDSSFileAction { - /** - * Unique identifier. - */ - private static final long serialVersionUID = 6233180247896844849L; - /** - * Logger object. - */ - private static final Logger LOG = Logger.getLogger(GetDSSFileAction.class.getName()); -// public String SAMLRequest; -// public String docId; - private static final String SAML_INSTANCE = "VIDP"; - - public static String processDocRequest(String samlRequest) - { - String result = ""; - //final Map<String, String> parameters = getHttpRequestParameters(); - STORKAttrQueryRequest request; - try { - request = processDocRequest_(samlRequest); - final IPersonalAttributeList pal = request.getPersonalAttributeList(); - final PersonalAttribute sdoc = pal.get("docRequest"); - if (sdoc != null) - { - String docId = sdoc.getValue().get(0);//remove countries from beginning - docId = docId.substring(docId.indexOf("/")+1); - docId = docId.substring(docId.indexOf('/')+1); - return docId.replace("/", ""); - } - } catch (final STORKSAMLEngineException e) { - e.printStackTrace(); - } - return null; - } - - private static STORKAttrQueryRequest processDocRequest_(String samlRequest) - throws STORKSAMLEngineException{ - - // fetch the samlToken from the request - final byte[] samlToken = UrlBase64.decode(samlRequest); - //System.out.println("SAML Engine DokumentService init"); - try { - Bootstrap.bootstrap(); - } catch (ConfigurationException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - final STORKSAMLEngine engine = STORKSAMLEngine.getInstance(SAML_INSTANCE); - - final STORKAttrQueryRequest attrData= engine.validateSTORKAttrQueryRequest(samlToken); - //SAMLRequest = new String(samlToken); - LOG.trace("Processing doc request done. SAML: " + new String(samlToken)); - return attrData; - } -} diff --git a/DocumentService/src/eu/stork/documentservice/utils/Utils.java b/DocumentService/src/eu/stork/documentservice/utils/Utils.java deleted file mode 100644 index 45072a0be..000000000 --- a/DocumentService/src/eu/stork/documentservice/utils/Utils.java +++ /dev/null @@ -1,172 +0,0 @@ -package eu.stork.documentservice.utils; - -import java.io.BufferedReader; -import java.io.ByteArrayInputStream; -import java.io.DataOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.FileReader; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.UnsupportedEncodingException; -import java.net.HttpURLConnection; -import java.net.URL; - -import org.bouncycastle.util.encoders.Base64; -import org.bouncycastle.util.encoders.UrlBase64; - -public class Utils { - - public static boolean saveData(byte[] data, String PATH, String fileName) - { - boolean ok = false; - if (data != null) - { - try - { - FileOutputStream fos; - File outputDir = new File(PATH); - File saveFile = new File(outputDir, fileName); - fos = new FileOutputStream(saveFile); - fos.write(data); - fos.flush(); - fos.close(); - ok = true; - } - catch (Exception e) - { - e.printStackTrace(); - } - } - return ok; - } - - public static byte[] readData(String fileName) - { - byte[] data = null; - - if (fileName != "") - { - try - { - FileInputStream fis; - File inputDir = new File(fileName); - fis = new FileInputStream(inputDir); - data = new byte[(int)inputDir.length()]; - fis.read(data); - fis.close(); - } - catch (Exception e) - { - e.printStackTrace(); - } - } - - return data; - } - - public static String readString(String fileName) - { - File file = new File(fileName); - StringBuilder text = new StringBuilder(); - - try { - BufferedReader br = new BufferedReader(new FileReader(file)); - String line; - - while ((line = br.readLine()) != null) { - text.append(line); - } - br.close(); - } - catch (Exception e) { - e.printStackTrace(); - } - return text.toString(); - } - - public static InputStream getStream(String string, String codePage) throws UnsupportedEncodingException - { - return new ByteArrayInputStream(string.getBytes(codePage)); - } - - public static String encodeBase64bytes(final byte[] bytes, boolean urlSafe) { - try { - if (urlSafe) - return new String(UrlBase64.encode(bytes), "UTF8"); - else - return new String(Base64.encode(bytes), "UTF8"); - } catch (UnsupportedEncodingException e) { - return null; - } - } - - public static byte[] decodeBase64String(final String base64string, boolean urlSave) { - if (urlSave) - return UrlBase64.decode(base64string); - else - return Base64.decode(base64string); - } - - // HTTP GET request - public static String sendGet(String url) throws Exception - { - URL obj = new URL(url); - HttpURLConnection con = (HttpURLConnection) obj.openConnection(); - - // optional default is GET - con.setRequestMethod("GET"); - - //add request header - con.setRequestProperty("User-Agent", "unknown"); - - //int responseCode = con.getResponseCode(); - - BufferedReader in = new BufferedReader( - new InputStreamReader(con.getInputStream())); - String inputLine; - StringBuffer response = new StringBuffer(); - - while ((inputLine = in.readLine()) != null) { - response.append(inputLine); - } - in.close(); - - return response.toString(); - - } - - // HTTP POST request - public static String sendPost(String url, String urlParameters) throws Exception - { - URL obj = new URL(url); - HttpURLConnection con = (HttpURLConnection) obj.openConnection(); - - //add request header - con.setRequestMethod("POST"); - con.setRequestProperty("User-Agent", "unknown"); - con.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); - - // Send post request - con.setDoOutput(true); - DataOutputStream wr = new DataOutputStream(con.getOutputStream()); - wr.writeBytes(urlParameters); - wr.flush(); - wr.close(); - - //int responseCode = con.getResponseCode(); - - BufferedReader in = new BufferedReader( - new InputStreamReader(con.getInputStream())); - String inputLine; - StringBuffer response = new StringBuffer(); - - while ((inputLine = in.readLine()) != null) { - response.append(inputLine); - } - in.close(); - - return response.toString(); - } -} 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); - } - - } - } -} |