Leonardo Vannucci
2018-10-01 59454f87bedb0b19b772ea93eabbb2bec910a150
dg1cloud-core/src/main/java/it/digione/dg1cloud/service/CloudService.java
....@@ -7,9 +7,19 @@
77 import java.io.InputStream;
88 import java.net.URL;
99 import java.nio.charset.StandardCharsets;
10
+import java.nio.file.Files;
11
+import java.nio.file.LinkOption;
12
+import java.nio.file.attribute.GroupPrincipal;
13
+import java.nio.file.attribute.PosixFileAttributeView;
14
+import java.nio.file.attribute.PosixFileAttributes;
15
+import java.nio.file.attribute.PosixFilePermission;
16
+import java.nio.file.attribute.UserPrincipal;
17
+import java.nio.file.attribute.UserPrincipalLookupService;
1018 import java.security.NoSuchAlgorithmException;
1119 import java.time.LocalDate;
1220 import java.time.ZoneId;
21
+import java.util.HashSet;
22
+import java.util.Set;
1323
1424 import org.apache.commons.codec.digest.DigestUtils;
1525 import org.apache.commons.io.FileUtils;
....@@ -68,7 +78,7 @@
6878 try {
6979 storeFile(descriptor.getAbsolutePath());
7080 } catch (Exception e) {
71
- writeKoFile(descriptor.getAbsolutePath(), "Errore duranto la memorizzazione del file nello store\n" + e.getMessage());
81
+ writeKoFile(descriptor.getAbsolutePath(), "Errore durante la memorizzazione del file nello store\n" + e.getMessage());
7282 }
7383 } else {
7484 logger.debug("Il file non ha passato le verifiche");
....@@ -260,6 +270,7 @@
260270 String json = mapper.writeValueAsString(uploadedFileDescriptorOk);
261271 logger.debug("Scrittura json di ok:\n{}", json);
262272 FileUtils.writeStringToFile(okFile, json, StandardCharsets.UTF_8);
273
+ set777(okFile);
263274 } catch (IOException e) {
264275 throw new RuntimeException("Errore nella scrittura del file di OK", e);
265276 }
....@@ -275,7 +286,7 @@
275286 }
276287 }
277288
278
- public void writeKoFile( String cloudFileDescriptorPath, String errorMessage ) {
289
+ public void writeKoFile( String cloudFileDescriptorPath, String errorMessage ) {
279290 logger.debug("Si e' verificato il seguente errore nella verifica tramite {}: {}", cloudFileDescriptorPath, errorMessage);
280291
281292 File fileDescriptor = new File(cloudFileDescriptorPath);
....@@ -283,6 +294,7 @@
283294
284295 try {
285296 FileUtils.writeStringToFile(koFile, errorMessage, StandardCharsets.UTF_8);
297
+ set777(koFile);
286298 } catch (IOException e) {
287299 throw new RuntimeException("Errore nella scrittura del file di KO", e);
288300 }
....@@ -330,4 +342,30 @@
330342
331343 return sb.toString();
332344 }
345
+
346
+ private void set777( File file ) throws IOException {
347
+ logger.debug("Setto il permessi a 777");
348
+ try {
349
+ Set<PosixFilePermission> perms = new HashSet<PosixFilePermission>();
350
+
351
+ //add owners permission
352
+ perms.add(PosixFilePermission.OWNER_READ);
353
+ perms.add(PosixFilePermission.OWNER_WRITE);
354
+ perms.add(PosixFilePermission.OWNER_EXECUTE);
355
+ //add group permissions
356
+ perms.add(PosixFilePermission.GROUP_READ);
357
+ perms.add(PosixFilePermission.GROUP_WRITE);
358
+ perms.add(PosixFilePermission.GROUP_EXECUTE);
359
+ //add others permissions
360
+ perms.add(PosixFilePermission.OTHERS_READ);
361
+ perms.add(PosixFilePermission.OTHERS_WRITE);
362
+ perms.add(PosixFilePermission.OTHERS_EXECUTE);
363
+
364
+ Files.setPosixFilePermissions(file.toPath(), perms);
365
+ logger.debug("Permessi settati");
366
+ } catch (IOException ioe) {
367
+ logger.error("Errore nel settaggio dei permessi", ioe);
368
+ throw new IOException("Errore nel settaggio dei permessi", ioe);
369
+ }
370
+ }
333371 }