diff --git a/core/src/main/java/hudson/util/SecretRewriter.java b/core/src/main/java/hudson/util/SecretRewriter.java index 37dc9fb2ede19377bdd3c3ddc6232d33734e2786..0ee05dc869371d895914d4c8403f09a755be5b6f 100644 --- a/core/src/main/java/hudson/util/SecretRewriter.java +++ b/core/src/main/java/hudson/util/SecretRewriter.java @@ -13,6 +13,7 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; +import java.nio.file.LinkOption; import java.security.GeneralSecurityException; import java.security.InvalidKeyException; import java.util.HashSet; @@ -145,7 +146,7 @@ public class SecretRewriter { private int rewriteRecursive(File dir, String relative, TaskListener listener) throws InvalidKeyException { String canonical; try { - canonical = dir.getCanonicalPath(); + canonical = dir.toPath().toRealPath(new LinkOption[0]).toString(); } catch (IOException e) { canonical = dir.getAbsolutePath(); // } diff --git a/core/src/main/java/jenkins/util/VirtualFile.java b/core/src/main/java/jenkins/util/VirtualFile.java index caf9bd0123a19cdda6d7d8303aaa78d18b7e6fec..e73c3384b7d479ec38c32cb453f159f60b0fe842 100644 --- a/core/src/main/java/jenkins/util/VirtualFile.java +++ b/core/src/main/java/jenkins/util/VirtualFile.java @@ -38,6 +38,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.Serializable; import java.net.URI; +import java.nio.file.LinkOption; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; @@ -297,8 +298,8 @@ public abstract class VirtualFile implements Comparable, Serializab } private boolean isIllegalSymlink() { // TODO JENKINS-26838 try { - String myPath = f.getCanonicalPath(); - String rootPath = root.getCanonicalPath(); + String myPath = f.toPath().toRealPath(new LinkOption[0]).toString(); + String rootPath = root.toPath().toRealPath(new LinkOption[0]).toString(); if (!myPath.equals(rootPath) && !myPath.startsWith(rootPath + File.separatorChar)) { return true; }