You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by sm...@apache.org on 2014/07/25 20:01:21 UTC

[3/3] git commit: SLIDER-250. Slider AppMaster does not start on Windows

SLIDER-250. Slider AppMaster does not start on Windows


Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/a2521c01
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/a2521c01
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/a2521c01

Branch: refs/heads/develop
Commit: a2521c01195e7d59eb7630681fc2da22b675e908
Parents: ce5dd10
Author: Sumit Mohanty <sm...@hortonworks.com>
Authored: Fri Jul 25 10:36:12 2014 -0700
Committer: Sumit Mohanty <sm...@hortonworks.com>
Committed: Fri Jul 25 10:36:12 2014 -0700

----------------------------------------------------------------------
 .../server/services/security/SecurityUtils.java | 22 +++++++++++++++++---
 1 file changed, 19 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/a2521c01/slider-core/src/main/java/org/apache/slider/server/services/security/SecurityUtils.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/services/security/SecurityUtils.java b/slider-core/src/main/java/org/apache/slider/server/services/security/SecurityUtils.java
index 109843a..8ea6119 100644
--- a/slider-core/src/main/java/org/apache/slider/server/services/security/SecurityUtils.java
+++ b/slider-core/src/main/java/org/apache/slider/server/services/security/SecurityUtils.java
@@ -18,6 +18,7 @@ package org.apache.slider.server.services.security;
 
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang.RandomStringUtils;
+import org.apache.commons.lang.SystemUtils;
 import org.apache.slider.common.SliderKeys;
 import org.apache.slider.core.conf.MapOperations;
 import org.slf4j.Logger;
@@ -141,11 +142,17 @@ public class SecurityUtils {
       File newCertsDir = new File(dbDir, "newcerts");
       newCertsDir.mkdirs();
       try {
+        if(SystemUtils.IS_OS_WINDOWS) {
+          setFilePermissionForWindows(Paths.get(secDirFile.toURI()));
+          setFilePermissionForWindows(Paths.get(dbDir.toURI()));
+          setFilePermissionForWindows(Paths.get(newCertsDir.toURI()));
+        } else {
         Set<PosixFilePermission> perms =
             PosixFilePermissions.fromString("rwx------");
-//        Files.setPosixFilePermissions(Paths.get(secDirFile.toURI()), perms);
-//        Files.setPosixFilePermissions(Paths.get(dbDir.toURI()), perms);
-//        Files.setPosixFilePermissions(Paths.get(newCertsDir.toURI()), perms);
+          Files.setPosixFilePermissions(Paths.get(secDirFile.toURI()), perms);
+          Files.setPosixFilePermissions(Paths.get(dbDir.toURI()), perms);
+          Files.setPosixFilePermissions(Paths.get(newCertsDir.toURI()), perms);
+        }
         File indexFile = new File(dbDir, "index.txt");
         indexFile.createNewFile();
 
@@ -160,6 +167,15 @@ public class SecurityUtils {
     securityDir = secDirFile.getAbsolutePath();
   }
 
+  private static void setFilePermissionForWindows(Path secDirFilePath) {
+    secDirFilePath.toFile().setReadable(false, false);
+    secDirFilePath.toFile().setExecutable(false, false);
+    secDirFilePath.toFile().setWritable(false, false);
+    secDirFilePath.toFile().setReadable(true, true);
+    secDirFilePath.toFile().setExecutable(true, true);
+    secDirFilePath.toFile().setWritable(true, true);
+  }
+
   private static String getKeystorePassword(File secDirFile) {
     File passFile = new File(secDirFile, SliderKeys.CRT_PASS_FILE_NAME);
     String password = null;