From 2e41678d03a4fd4c79173651a546c3e0c4fb0148 Mon Sep 17 00:00:00 2001
From: Leonardo Vannucci <leonardo.vannucci@grupposistematica.it>
Date: Mon, 06 Aug 2018 12:27:02 +0200
Subject: [PATCH] Aggiunta proprieta secret key per implementazione PIN opzionale
---
dg1cloud-core/src/main/java/it/digione/dg1cloud/controller/DownloadFileController.java | 21 ++++++++++++++++++++-
1 files changed, 20 insertions(+), 1 deletions(-)
diff --git a/dg1cloud-core/src/main/java/it/digione/dg1cloud/controller/DownloadFileController.java b/dg1cloud-core/src/main/java/it/digione/dg1cloud/controller/DownloadFileController.java
index 076a8db..4962f61 100644
--- a/dg1cloud-core/src/main/java/it/digione/dg1cloud/controller/DownloadFileController.java
+++ b/dg1cloud-core/src/main/java/it/digione/dg1cloud/controller/DownloadFileController.java
@@ -6,6 +6,7 @@
import javax.servlet.ServletContext;
+import org.apache.logging.log4j.util.Strings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -30,7 +31,9 @@
@Autowired private RegDocumentRepository regDocumentRepository;
@RequestMapping("/downloadFile")
- public ResponseEntity<InputStreamResource> downloadFile(@RequestParam String fileName, @RequestParam long id) throws IOException {
+ public ResponseEntity<InputStreamResource> downloadFile(@RequestParam String fileName,
+ @RequestParam long id,
+ @RequestParam(value = "secretKey", required = false) String secretKey) throws IOException {
logger.debug("Avvio download file {} con id {}, fileName, id");
@@ -48,6 +51,22 @@
throw new RuntimeException("Il nome del file richiesto non corrisponde con quello referenziato dall'id");
}
+ if ( regDocument.getSecretKey() != null ) {
+ logger.debug("E' stata specificata una secretKey. Avvio le verifiche.");
+ if ( Strings.isEmpty(secretKey) == true ) {
+ logger.error("Non e' stata inviata la secretKey");
+ throw new RuntimeException("Per scaricare il file occorre specificare la secretKey");
+ } else {
+ logger.debug("Controllo corrispondenza della secretKey");
+ if (secretKey.equals(regDocument.getSecretKey()) == false ) {
+ logger.error("La secretKey inviata non corrisponde a quella impostata in fase di richiesta salvataggio del file");
+ throw new RuntimeException("La secretKey inviata non corrisponde a quella impostata in fase di richiesta salvataggio del file");
+ } else {
+ logger.debug("SecretKey verificata correttamente");
+ }
+ }
+ }
+
File file = new File(regDocument.getFilePath());
FileInputStream fis = new FileInputStream(file);
InputStreamResource isr = new InputStreamResource(fis);
--
Gitblit v1.6.2