From 59454f87bedb0b19b772ea93eabbb2bec910a150 Mon Sep 17 00:00:00 2001
From: Leonardo Vannucci <leonardo.vannucci@grupposistematica.it>
Date: Mon, 01 Oct 2018 11:40:07 +0200
Subject: [PATCH] Fix permessi
---
dg1cloud-core/src/main/java/it/digione/dg1cloud/service/CloudService.java | 42 ++++++++++++++++++++++++++++++++++++++++--
1 files changed, 40 insertions(+), 2 deletions(-)
diff --git a/dg1cloud-core/src/main/java/it/digione/dg1cloud/service/CloudService.java b/dg1cloud-core/src/main/java/it/digione/dg1cloud/service/CloudService.java
index ec91710..1ff8032 100644
--- a/dg1cloud-core/src/main/java/it/digione/dg1cloud/service/CloudService.java
+++ b/dg1cloud-core/src/main/java/it/digione/dg1cloud/service/CloudService.java
@@ -7,9 +7,19 @@
import java.io.InputStream;
import java.net.URL;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.LinkOption;
+import java.nio.file.attribute.GroupPrincipal;
+import java.nio.file.attribute.PosixFileAttributeView;
+import java.nio.file.attribute.PosixFileAttributes;
+import java.nio.file.attribute.PosixFilePermission;
+import java.nio.file.attribute.UserPrincipal;
+import java.nio.file.attribute.UserPrincipalLookupService;
import java.security.NoSuchAlgorithmException;
import java.time.LocalDate;
import java.time.ZoneId;
+import java.util.HashSet;
+import java.util.Set;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.io.FileUtils;
@@ -68,7 +78,7 @@
try {
storeFile(descriptor.getAbsolutePath());
} catch (Exception e) {
- writeKoFile(descriptor.getAbsolutePath(), "Errore duranto la memorizzazione del file nello store\n" + e.getMessage());
+ writeKoFile(descriptor.getAbsolutePath(), "Errore durante la memorizzazione del file nello store\n" + e.getMessage());
}
} else {
logger.debug("Il file non ha passato le verifiche");
@@ -260,6 +270,7 @@
String json = mapper.writeValueAsString(uploadedFileDescriptorOk);
logger.debug("Scrittura json di ok:\n{}", json);
FileUtils.writeStringToFile(okFile, json, StandardCharsets.UTF_8);
+ set777(okFile);
} catch (IOException e) {
throw new RuntimeException("Errore nella scrittura del file di OK", e);
}
@@ -275,7 +286,7 @@
}
}
- public void writeKoFile( String cloudFileDescriptorPath, String errorMessage ) {
+ public void writeKoFile( String cloudFileDescriptorPath, String errorMessage ) {
logger.debug("Si e' verificato il seguente errore nella verifica tramite {}: {}", cloudFileDescriptorPath, errorMessage);
File fileDescriptor = new File(cloudFileDescriptorPath);
@@ -283,6 +294,7 @@
try {
FileUtils.writeStringToFile(koFile, errorMessage, StandardCharsets.UTF_8);
+ set777(koFile);
} catch (IOException e) {
throw new RuntimeException("Errore nella scrittura del file di KO", e);
}
@@ -330,4 +342,30 @@
return sb.toString();
}
+
+ private void set777( File file ) throws IOException {
+ logger.debug("Setto il permessi a 777");
+ try {
+ Set<PosixFilePermission> perms = new HashSet<PosixFilePermission>();
+
+ //add owners permission
+ perms.add(PosixFilePermission.OWNER_READ);
+ perms.add(PosixFilePermission.OWNER_WRITE);
+ perms.add(PosixFilePermission.OWNER_EXECUTE);
+ //add group permissions
+ perms.add(PosixFilePermission.GROUP_READ);
+ perms.add(PosixFilePermission.GROUP_WRITE);
+ perms.add(PosixFilePermission.GROUP_EXECUTE);
+ //add others permissions
+ perms.add(PosixFilePermission.OTHERS_READ);
+ perms.add(PosixFilePermission.OTHERS_WRITE);
+ perms.add(PosixFilePermission.OTHERS_EXECUTE);
+
+ Files.setPosixFilePermissions(file.toPath(), perms);
+ logger.debug("Permessi settati");
+ } catch (IOException ioe) {
+ logger.error("Errore nel settaggio dei permessi", ioe);
+ throw new IOException("Errore nel settaggio dei permessi", ioe);
+ }
+ }
}
--
Gitblit v1.6.2