SLIDER-334 Modified to be JDK 6 compatible
Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/d8f662cf Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/d8f662cf Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/d8f662cf Branch: refs/heads/feature/SLIDER-151_REST_API Commit: d8f662cf6ac2ba2f5b43c84239b8a9fe2dd898d2 Parents: 624cafe Author: Jon Maron <jma...@hortonworks.com> Authored: Tue Aug 19 15:16:19 2014 -0400 Committer: Jon Maron <jma...@hortonworks.com> Committed: Tue Aug 19 15:16:19 2014 -0400 ---------------------------------------------------------------------- .../server/services/security/SecurityUtils.java | 60 ++++++++++---------- 1 file changed, 29 insertions(+), 31 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/d8f662cf/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 8ea6119..56ee199 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,7 +18,10 @@ 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.hadoop.fs.Path; +import org.apache.hadoop.fs.RawLocalFileSystem; +import org.apache.hadoop.fs.permission.FsAction; +import org.apache.hadoop.fs.permission.FsPermission; import org.apache.slider.common.SliderKeys; import org.apache.slider.core.conf.MapOperations; import org.slf4j.Logger; @@ -26,11 +29,11 @@ import org.slf4j.LoggerFactory; import java.io.File; import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.nio.file.attribute.PosixFilePermission; -import java.nio.file.attribute.PosixFilePermissions; +//import java.nio.file.Files; +//import java.nio.file.Path; +//import java.nio.file.Paths; +//import java.nio.file.attribute.PosixFilePermission; +//import java.nio.file.attribute.PosixFilePermissions; import java.util.Set; /** @@ -90,8 +93,11 @@ public class SecurityUtils { } public static String getOpenSslCommandResult(String command, int exitCode) { - return new StringBuilder().append("Command ").append(hideOpenSslPassword(command)).append(" was finished with exit code: ") - .append(exitCode).append(" - ").append(getOpenSslExitCodeDescription(exitCode)).toString(); + return new StringBuilder().append("Command ") + .append(hideOpenSslPassword(command)) + .append(" was finished with exit code: ") + .append(exitCode).append(" - ") + .append(getOpenSslExitCodeDescription(exitCode)).toString(); } private static String getOpenSslExitCodeDescription(int exitCode) { @@ -142,17 +148,14 @@ 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); - } + RawLocalFileSystem fileSystem = new RawLocalFileSystem(); + FsPermission permissions = new FsPermission(FsAction.ALL, FsAction.NONE, + FsAction.NONE); + fileSystem.setPermission(new Path(dbDir.getAbsolutePath()), + permissions); + fileSystem.setPermission(new Path(dbDir.getAbsolutePath()), permissions); + fileSystem.setPermission(new Path(newCertsDir.getAbsolutePath()), + permissions); File indexFile = new File(dbDir, "index.txt"); indexFile.createNewFile(); @@ -167,15 +170,6 @@ 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; @@ -207,15 +201,19 @@ public class SecurityUtils { } private static String getDefaultKeystoreLocation() { - Path workDir = null; + File workDir = null; try { - workDir = Files.createTempDirectory("sec"); + workDir = new File(FileUtils.getTempDirectory().getAbsolutePath() + + "/sec" + System.currentTimeMillis()); + if (!workDir.mkdirs()) { + throw new IOException("Unable to create temporary security directory"); + } } catch (IOException e) { LOG.warn("Unable to create security directory"); return null; } - return new StringBuilder().append(workDir.toAbsolutePath()) + return new StringBuilder().append(workDir.getAbsolutePath()) .append(File.separator) .append(SliderKeys.SECURITY_DIR) .append(File.separator)