This is an automated email from the ASF dual-hosted git repository.

twolf pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mina-sshd.git


The following commit(s) were added to refs/heads/master by this push:
     new 0114a5fcc Do not trim user names, passwords, and file paths or file 
names
0114a5fcc is described below

commit 0114a5fcc579602ac18308698136c1edb143a079
Author: Thomas Wolf <tw...@apache.org>
AuthorDate: Thu Nov 7 22:25:18 2024 +0100

    Do not trim user names, passwords, and file paths or file names
    
    Use ValidateUtils.hasContent(String, ...) instead of the trimming
    ValidateUtils.checkNotNullAndNotEmpty(String, ...) for all strings
    that are user names, passwords, or file paths or file names. All of
    these might contain leading or trailing blanks that actually are
    significant.
---
 .../src/main/java/org/apache/sshd/cli/client/SftpCommandMain.java  | 6 +++---
 .../java/org/apache/sshd/client/config/hosts/HostConfigEntry.java  | 7 +++----
 .../org/apache/sshd/client/config/keys/ClientIdentityLoader.java   | 2 +-
 .../common/config/keys/loader/AbstractPrivateKeyObfuscator.java    | 2 +-
 .../apache/sshd/common/file/nativefs/NativeFileSystemFactory.java  | 2 +-
 .../sshd/common/file/virtualfs/VirtualFileSystemFactory.java       | 4 ++--
 .../sshd/common/keyprovider/AbstractResourceKeyPairProvider.java   | 4 ++--
 sshd-common/src/main/java/org/apache/sshd/common/util/OsUtils.java | 2 +-
 .../server/config/keys/DefaultAuthorizedKeysAuthenticator.java     | 2 +-
 .../src/main/java/org/apache/sshd/git/pack/GitPackCommand.java     | 2 +-
 .../java/org/apache/sshd/putty/PuttyKeyPairResourceParser.java     | 6 +++---
 .../main/java/org/apache/sshd/scp/client/AbstractScpClient.java    | 6 +++---
 .../src/main/java/org/apache/sshd/scp/client/DefaultScpClient.java | 6 +++---
 sshd-scp/src/main/java/org/apache/sshd/scp/client/ScpClient.java   | 2 +-
 .../src/main/java/org/apache/sshd/sftp/client/SftpClient.java      | 2 +-
 .../org/apache/sshd/sftp/client/fs/SftpClientDirectoryScanner.java | 2 +-
 .../org/apache/sshd/sftp/client/fs/SftpFileSystemProvider.java     | 2 +-
 .../org/apache/sshd/sftp/client/impl/SftpRemotePathChannel.java    | 2 +-
 .../sshd/sftp/spring/integration/ApacheSshdSftpSessionFactory.java | 4 ++--
 19 files changed, 32 insertions(+), 33 deletions(-)

diff --git 
a/sshd-cli/src/main/java/org/apache/sshd/cli/client/SftpCommandMain.java 
b/sshd-cli/src/main/java/org/apache/sshd/cli/client/SftpCommandMain.java
index fde0e8868..56b5d4586 100644
--- a/sshd-cli/src/main/java/org/apache/sshd/cli/client/SftpCommandMain.java
+++ b/sshd-cli/src/main/java/org/apache/sshd/cli/client/SftpCommandMain.java
@@ -641,7 +641,7 @@ public class SftpCommandMain extends SshClientCliSupport 
implements SftpClientHo
         public boolean executeCommand(
                 String args, BufferedReader stdin, PrintStream stdout, 
PrintStream stderr)
                 throws Exception {
-            ValidateUtils.checkNotNullAndNotEmpty(args, "No remote directory 
specified");
+            ValidateUtils.hasContent(args, "No remote directory specified");
 
             String newPath = resolveRemotePath(args);
             SftpClient sftp = getClient();
@@ -695,7 +695,7 @@ public class SftpCommandMain extends SshClientCliSupport 
implements SftpClientHo
         public boolean executeCommand(
                 String args, BufferedReader stdin, PrintStream stdout, 
PrintStream stderr)
                 throws Exception {
-            ValidateUtils.checkNotNullAndNotEmpty(args, "No remote directory 
specified");
+            ValidateUtils.hasContent(args, "No remote directory specified");
 
             String path = resolveRemotePath(args);
             SftpClient sftp = getClient();
@@ -908,7 +908,7 @@ public class SftpCommandMain extends SshClientCliSupport 
implements SftpClientHo
         public boolean executeCommand(
                 String args, BufferedReader stdin, PrintStream stdout, 
PrintStream stderr)
                 throws Exception {
-            ValidateUtils.checkNotNullAndNotEmpty(args, "No remote directory 
specified");
+            ValidateUtils.hasContent(args, "No remote directory specified");
 
             String path = resolveRemotePath(args);
             SftpClient sftp = getClient();
diff --git 
a/sshd-common/src/main/java/org/apache/sshd/client/config/hosts/HostConfigEntry.java
 
b/sshd-common/src/main/java/org/apache/sshd/client/config/hosts/HostConfigEntry.java
index 947c8e82f..6e3608b83 100644
--- 
a/sshd-common/src/main/java/org/apache/sshd/client/config/hosts/HostConfigEntry.java
+++ 
b/sshd-common/src/main/java/org/apache/sshd/client/config/hosts/HostConfigEntry.java
@@ -295,7 +295,7 @@ public class HostConfigEntry extends HostPatternsHolder 
implements MutableUserHo
      * @param id The identity path to add - never {@code null}
      */
     public void addIdentity(String id) {
-        String path = ValidateUtils.checkNotNullAndNotEmpty(id, "No identity 
provided");
+        String path = ValidateUtils.hasContent(id, "No identity provided");
         identities.add(path);
         appendPropertyValue(IDENTITY_FILE_CONFIG_PROP, id);
     }
@@ -890,8 +890,7 @@ public class HostConfigEntry extends HostPatternsHolder 
implements MutableUserHo
                             PathUtils.appendUserHome(sb);
                             break;
                         case LOCAL_USER_MACRO:
-                            
sb.append(ValidateUtils.checkNotNullAndNotEmpty(OsUtils.getCurrentUser(),
-                                    "No local user name value"));
+                            sb.append(OsUtils.getCurrentUser());
                             break;
                         case LOCAL_HOST_MACRO: {
                             InetAddress address = 
Objects.requireNonNull(InetAddress.getLocalHost(), "No local address");
@@ -902,7 +901,7 @@ public class HostConfigEntry extends HostPatternsHolder 
implements MutableUserHo
                             
sb.append(ValidateUtils.checkNotNullAndNotEmpty(host, "No remote host 
provided"));
                             break;
                         case REMOTE_USER_MACRO:
-                            
sb.append(ValidateUtils.checkNotNullAndNotEmpty(username, "No remote user 
provided"));
+                            sb.append(ValidateUtils.hasContent(username, "No 
remote user provided"));
                             break;
                         case REMOTE_PORT_MACRO:
                             ValidateUtils.checkTrue(port > 0, "Bad remote port 
value: %d", port);
diff --git 
a/sshd-common/src/main/java/org/apache/sshd/client/config/keys/ClientIdentityLoader.java
 
b/sshd-common/src/main/java/org/apache/sshd/client/config/keys/ClientIdentityLoader.java
index 9dc218970..a3e54fdcd 100644
--- 
a/sshd-common/src/main/java/org/apache/sshd/client/config/keys/ClientIdentityLoader.java
+++ 
b/sshd-common/src/main/java/org/apache/sshd/client/config/keys/ClientIdentityLoader.java
@@ -80,7 +80,7 @@ public interface ClientIdentityLoader {
             Objects.requireNonNull(location, "No location provided");
 
             Path path = Paths
-                    
.get(ValidateUtils.checkNotNullAndNotEmpty(location.getName(), "No location 
value for %s", location));
+                    .get(ValidateUtils.hasContent(location.getName(), "No 
location value for %s", location));
             path = path.toAbsolutePath();
             path = path.normalize();
             return path;
diff --git 
a/sshd-common/src/main/java/org/apache/sshd/common/config/keys/loader/AbstractPrivateKeyObfuscator.java
 
b/sshd-common/src/main/java/org/apache/sshd/common/config/keys/loader/AbstractPrivateKeyObfuscator.java
index 5f3ac93e1..82fc73dc4 100644
--- 
a/sshd-common/src/main/java/org/apache/sshd/common/config/keys/loader/AbstractPrivateKeyObfuscator.java
+++ 
b/sshd-common/src/main/java/org/apache/sshd/common/config/keys/loader/AbstractPrivateKeyObfuscator.java
@@ -102,7 +102,7 @@ public abstract class AbstractPrivateKeyObfuscator 
implements PrivateKeyObfuscat
         byte[] initVector = Objects.requireNonNull(encContext.getInitVector(), 
"No encryption init vector");
         ValidateUtils.checkTrue(initVector.length > 0, "Empty encryption init 
vector");
 
-        String password = 
ValidateUtils.checkNotNullAndNotEmpty(encContext.getPassword(), "No encryption 
password");
+        String password = ValidateUtils.hasContent(encContext.getPassword(), 
"No encryption password");
         byte[] passBytes = password.getBytes(StandardCharsets.UTF_8);
         byte[] prevHash = GenericUtils.EMPTY_BYTE_ARRAY;
         try {
diff --git 
a/sshd-common/src/main/java/org/apache/sshd/common/file/nativefs/NativeFileSystemFactory.java
 
b/sshd-common/src/main/java/org/apache/sshd/common/file/nativefs/NativeFileSystemFactory.java
index 6d6110534..053582cc9 100644
--- 
a/sshd-common/src/main/java/org/apache/sshd/common/file/nativefs/NativeFileSystemFactory.java
+++ 
b/sshd-common/src/main/java/org/apache/sshd/common/file/nativefs/NativeFileSystemFactory.java
@@ -70,7 +70,7 @@ public class NativeFileSystemFactory extends 
AbstractLoggingBean implements File
      * @see                #isCreateHome()
      */
     public void setUsersHomeDir(String usersHomeDir) {
-        this.usersHomeDir = 
ValidateUtils.checkNotNullAndNotEmpty(usersHomeDir, "No users home dir");
+        this.usersHomeDir = ValidateUtils.hasContent(usersHomeDir, "No users 
home dir");
     }
 
     /**
diff --git 
a/sshd-common/src/main/java/org/apache/sshd/common/file/virtualfs/VirtualFileSystemFactory.java
 
b/sshd-common/src/main/java/org/apache/sshd/common/file/virtualfs/VirtualFileSystemFactory.java
index 7ad53e532..5cb1ba1fd 100644
--- 
a/sshd-common/src/main/java/org/apache/sshd/common/file/virtualfs/VirtualFileSystemFactory.java
+++ 
b/sshd-common/src/main/java/org/apache/sshd/common/file/virtualfs/VirtualFileSystemFactory.java
@@ -57,12 +57,12 @@ public class VirtualFileSystemFactory implements 
FileSystemFactory {
     }
 
     public void setUserHomeDir(String userName, Path userHomeDir) {
-        homeDirs.put(ValidateUtils.checkNotNullAndNotEmpty(userName, "No 
username"),
+        homeDirs.put(ValidateUtils.hasContent(userName, "No username"),
                 Objects.requireNonNull(userHomeDir, "No home dir"));
     }
 
     public Path getUserHomeDir(String userName) {
-        return homeDirs.get(ValidateUtils.checkNotNullAndNotEmpty(userName, 
"No username"));
+        return homeDirs.get(ValidateUtils.hasContent(userName, "No username"));
     }
 
     @Override
diff --git 
a/sshd-common/src/main/java/org/apache/sshd/common/keyprovider/AbstractResourceKeyPairProvider.java
 
b/sshd-common/src/main/java/org/apache/sshd/common/keyprovider/AbstractResourceKeyPairProvider.java
index 09c863b89..8e9e235a2 100644
--- 
a/sshd-common/src/main/java/org/apache/sshd/common/keyprovider/AbstractResourceKeyPairProvider.java
+++ 
b/sshd-common/src/main/java/org/apache/sshd/common/keyprovider/AbstractResourceKeyPairProvider.java
@@ -85,7 +85,7 @@ public abstract class AbstractResourceKeyPairProvider<R> 
extends AbstractKeyPair
             }
 
             for (Object r : resources) {
-                String resourceKey = 
ValidateUtils.checkNotNullAndNotEmpty(Objects.toString(r, null), "No resource 
key value");
+                String resourceKey = 
ValidateUtils.hasContent(Objects.toString(r, null), "No resource key value");
                 if (cacheMap.containsKey(resourceKey)) {
                     continue;
                 }
@@ -126,7 +126,7 @@ public abstract class AbstractResourceKeyPairProvider<R> 
extends AbstractKeyPair
         IoResource<?> ioResource
                 = ValidateUtils.checkNotNull(getIoResource(session, resource), 
"No I/O resource available for %s", resource);
         String resourceKey
-                = ValidateUtils.checkNotNullAndNotEmpty(ioResource.getName(), 
"No resource string value for %s", resource);
+                = ValidateUtils.hasContent(ioResource.getName(), "No resource 
string value for %s", resource);
         Iterable<KeyPair> ids;
         synchronized (cacheMap) {
             // check if lucky enough to have already loaded this file
diff --git a/sshd-common/src/main/java/org/apache/sshd/common/util/OsUtils.java 
b/sshd-common/src/main/java/org/apache/sshd/common/util/OsUtils.java
index 166bb6ba7..8790e4bd7 100644
--- a/sshd-common/src/main/java/org/apache/sshd/common/util/OsUtils.java
+++ b/sshd-common/src/main/java/org/apache/sshd/common/util/OsUtils.java
@@ -327,7 +327,7 @@ public final class OsUtils {
             }
 
             username = 
getCanonicalUser(System.getProperty(CURRENT_USER_OVERRIDE_PROP, 
System.getProperty("user.name")));
-            ValidateUtils.checkNotNullAndNotEmpty(username, "No username 
available");
+            ValidateUtils.hasContent(username, "No username available");
             CURRENT_USER_HOLDER.set(username);
         }
 
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/server/config/keys/DefaultAuthorizedKeysAuthenticator.java
 
b/sshd-core/src/main/java/org/apache/sshd/server/config/keys/DefaultAuthorizedKeysAuthenticator.java
index 659703f48..a6821bcaa 100644
--- 
a/sshd-core/src/main/java/org/apache/sshd/server/config/keys/DefaultAuthorizedKeysAuthenticator.java
+++ 
b/sshd-core/src/main/java/org/apache/sshd/server/config/keys/DefaultAuthorizedKeysAuthenticator.java
@@ -72,7 +72,7 @@ public class DefaultAuthorizedKeysAuthenticator extends 
AuthorizedKeysAuthentica
 
     public DefaultAuthorizedKeysAuthenticator(String user, Path path, boolean 
strict, LinkOption... options) {
         super(path, options);
-        this.user = ValidateUtils.checkNotNullAndNotEmpty(user, "No username 
provided");
+        this.user = ValidateUtils.hasContent(user, "No username provided");
         this.strict = strict;
     }
 
diff --git 
a/sshd-git/src/main/java/org/apache/sshd/git/pack/GitPackCommand.java 
b/sshd-git/src/main/java/org/apache/sshd/git/pack/GitPackCommand.java
index 0da77d7a7..4f1eac8a2 100644
--- a/sshd-git/src/main/java/org/apache/sshd/git/pack/GitPackCommand.java
+++ b/sshd-git/src/main/java/org/apache/sshd/git/pack/GitPackCommand.java
@@ -121,7 +121,7 @@ public class GitPackCommand extends AbstractGitCommand {
             pathArg = pathArg.substring(1);
         }
 
-        ValidateUtils.checkNotNullAndNotEmpty(pathArg, "No %s command sub-path 
specified", args[0]);
+        ValidateUtils.hasContent(pathArg, "No %s command sub-path specified", 
args[0]);
         return rootDir.resolve(pathArg);
     }
 
diff --git 
a/sshd-putty/src/main/java/org/apache/sshd/putty/PuttyKeyPairResourceParser.java
 
b/sshd-putty/src/main/java/org/apache/sshd/putty/PuttyKeyPairResourceParser.java
index 82999be9c..5398940f6 100644
--- 
a/sshd-putty/src/main/java/org/apache/sshd/putty/PuttyKeyPairResourceParser.java
+++ 
b/sshd-putty/src/main/java/org/apache/sshd/putty/PuttyKeyPairResourceParser.java
@@ -143,10 +143,10 @@ public interface PuttyKeyPairResourceParser<PUB extends 
PublicKey, PRV extends P
             Map<String, String> headers)
             throws GeneralSecurityException {
         Objects.requireNonNull(prvBytes, "No encrypted key bytes");
-        ValidateUtils.checkNotNullAndNotEmpty(algName, "No encryption 
algorithm", GenericUtils.EMPTY_OBJECT_ARRAY);
+        ValidateUtils.checkNotNullAndNotEmpty(algName, "No encryption 
algorithm");
         ValidateUtils.checkTrue(numBits > 0, "Invalid encryption key size: 
%d", numBits);
-        ValidateUtils.checkNotNullAndNotEmpty(algMode, "No encryption mode", 
GenericUtils.EMPTY_OBJECT_ARRAY);
-        ValidateUtils.checkNotNullAndNotEmpty(password, "No encryption 
password", GenericUtils.EMPTY_OBJECT_ARRAY);
+        ValidateUtils.checkNotNullAndNotEmpty(algMode, "No encryption mode");
+        ValidateUtils.hasContent(password, "No encryption password");
 
         if (!"AES".equalsIgnoreCase(algName)) {
             throw new NoSuchAlgorithmException("decodePrivateKeyBytes(" + 
algName + "-" + numBits + "-" + algMode + ") N/A");
diff --git 
a/sshd-scp/src/main/java/org/apache/sshd/scp/client/AbstractScpClient.java 
b/sshd-scp/src/main/java/org/apache/sshd/scp/client/AbstractScpClient.java
index 1930ef8a4..5ca5f180f 100644
--- a/sshd-scp/src/main/java/org/apache/sshd/scp/client/AbstractScpClient.java
+++ b/sshd-scp/src/main/java/org/apache/sshd/scp/client/AbstractScpClient.java
@@ -59,7 +59,7 @@ public abstract class AbstractScpClient extends 
AbstractLoggingBean implements S
 
     @Override
     public void download(String[] remote, String local, Collection<Option> 
options) throws IOException {
-        local = ValidateUtils.checkNotNullAndNotEmpty(local, "Invalid argument 
local: %s", local);
+        local = ValidateUtils.hasContent(local, "Invalid argument local: %s", 
local);
         remote = ValidateUtils.checkNotNullAndNotEmpty(remote, "Invalid 
argument remote: %s", (Object) remote);
 
         if (remote.length > 1) {
@@ -87,7 +87,7 @@ public abstract class AbstractScpClient extends 
AbstractLoggingBean implements S
     @Override
     public void download(String remote, Path local, Collection<Option> 
options) throws IOException {
         local = ValidateUtils.checkNotNull(local, "Invalid argument local: 
%s", local);
-        remote = ValidateUtils.checkNotNullAndNotEmpty(remote, "Invalid 
argument remote: %s", remote);
+        remote = ValidateUtils.hasContent(remote, "Invalid argument remote: 
%s", remote);
 
         LinkOption[] opts = IoUtils.getLinkOptions(true);
         if (Files.isDirectory(local, opts)) {
@@ -114,7 +114,7 @@ public abstract class AbstractScpClient extends 
AbstractLoggingBean implements S
 
     @Override
     public void download(String remote, String local, Collection<Option> 
options) throws IOException {
-        local = ValidateUtils.checkNotNullAndNotEmpty(local, "Invalid argument 
local: %s", local);
+        local = ValidateUtils.hasContent(local, "Invalid argument local: %s", 
local);
 
         ClientSession session = getClientSession();
         FactoryManager manager = session.getFactoryManager();
diff --git 
a/sshd-scp/src/main/java/org/apache/sshd/scp/client/DefaultScpClient.java 
b/sshd-scp/src/main/java/org/apache/sshd/scp/client/DefaultScpClient.java
index d9223d455..dd956b903 100644
--- a/sshd-scp/src/main/java/org/apache/sshd/scp/client/DefaultScpClient.java
+++ b/sshd-scp/src/main/java/org/apache/sshd/scp/client/DefaultScpClient.java
@@ -104,10 +104,10 @@ public class DefaultScpClient extends AbstractScpClient {
     public void upload(
             InputStream local, String remote, long size, 
Collection<PosixFilePermission> perms, ScpTimestampCommandDetails time)
             throws IOException {
-        int namePos = ValidateUtils.checkNotNullAndNotEmpty(remote, "No remote 
location specified").lastIndexOf('/');
+        int namePos = ValidateUtils.hasContent(remote, "No remote location 
specified").lastIndexOf('/');
         String name = (namePos < 0)
                 ? remote
-                : 
ValidateUtils.checkNotNullAndNotEmpty(remote.substring(namePos + 1), "No name 
value in remote=%s", remote);
+                : ValidateUtils.hasContent(remote.substring(namePos + 1), "No 
name value in remote=%s", remote);
         Collection<Option> options = (time != null) ? 
EnumSet.of(Option.PreserveAttributes) : Collections.emptySet();
         String cmd = ScpClient.createSendCommand(remote, options);
         ClientSession session = getClientSession();
@@ -134,7 +134,7 @@ public class DefaultScpClient extends AbstractScpClient {
             String remote, Collection<Option> options, Collection<T> local, 
AbstractScpClient.ScpOperationExecutor<T> executor)
             throws IOException {
         local = ValidateUtils.checkNotNullAndNotEmpty(local, "Invalid argument 
local: %s", local);
-        remote = ValidateUtils.checkNotNullAndNotEmpty(remote, "Invalid 
argument remote: %s", remote);
+        remote = ValidateUtils.hasContent(remote, "Invalid argument remote: 
%s", remote);
         if (local.size() > 1) {
             options = addTargetIsDirectory(options);
         }
diff --git a/sshd-scp/src/main/java/org/apache/sshd/scp/client/ScpClient.java 
b/sshd-scp/src/main/java/org/apache/sshd/scp/client/ScpClient.java
index c262ad65b..660f5ec25 100644
--- a/sshd-scp/src/main/java/org/apache/sshd/scp/client/ScpClient.java
+++ b/sshd-scp/src/main/java/org/apache/sshd/scp/client/ScpClient.java
@@ -103,7 +103,7 @@ public interface ScpClient extends 
SessionHolder<ClientSession>, ClientSessionHo
     }
 
     default void upload(String local, String remote, Collection<Option> 
options) throws IOException {
-        upload(new String[] { ValidateUtils.checkNotNullAndNotEmpty(local, 
"Invalid argument local: %s", local) }, remote,
+        upload(new String[] { ValidateUtils.hasContent(local, "Invalid 
argument local: %s", local) }, remote,
                 options);
     }
 
diff --git 
a/sshd-sftp/src/main/java/org/apache/sshd/sftp/client/SftpClient.java 
b/sshd-sftp/src/main/java/org/apache/sshd/sftp/client/SftpClient.java
index 98f065782..0adf2e41b 100644
--- a/sshd-sftp/src/main/java/org/apache/sshd/sftp/client/SftpClient.java
+++ b/sshd-sftp/src/main/java/org/apache/sshd/sftp/client/SftpClient.java
@@ -148,7 +148,7 @@ public interface SftpClient extends SubsystemClient {
 
         Handle(String path, byte[] id) {
             // clone the original so the handle is immutable
-            this.path = ValidateUtils.checkNotNullAndNotEmpty(path, "No remote 
path");
+            this.path = ValidateUtils.hasContent(path, "No remote path");
             this.id = ValidateUtils.checkNotNullAndNotEmpty(id, "No handle 
ID").clone();
         }
 
diff --git 
a/sshd-sftp/src/main/java/org/apache/sshd/sftp/client/fs/SftpClientDirectoryScanner.java
 
b/sshd-sftp/src/main/java/org/apache/sshd/sftp/client/fs/SftpClientDirectoryScanner.java
index bb8997f85..a6c0dd08a 100644
--- 
a/sshd-sftp/src/main/java/org/apache/sshd/sftp/client/fs/SftpClientDirectoryScanner.java
+++ 
b/sshd-sftp/src/main/java/org/apache/sshd/sftp/client/fs/SftpClientDirectoryScanner.java
@@ -99,7 +99,7 @@ public class SftpClientDirectoryScanner extends 
PathScanningMatcher {
      *                form when scanning. May not be {@code null}/empty
      */
     public void setBasedir(String basedir) {
-        this.basedir = ValidateUtils.checkNotNullAndNotEmpty(basedir, "No base 
directory provided");
+        this.basedir = ValidateUtils.hasContent(basedir, "No base directory 
provided");
     }
 
     @Override
diff --git 
a/sshd-sftp/src/main/java/org/apache/sshd/sftp/client/fs/SftpFileSystemProvider.java
 
b/sshd-sftp/src/main/java/org/apache/sshd/sftp/client/fs/SftpFileSystemProvider.java
index 98c030c98..4157e2114 100644
--- 
a/sshd-sftp/src/main/java/org/apache/sshd/sftp/client/fs/SftpFileSystemProvider.java
+++ 
b/sshd-sftp/src/main/java/org/apache/sshd/sftp/client/fs/SftpFileSystemProvider.java
@@ -1568,7 +1568,7 @@ public class SftpFileSystemProvider extends 
FileSystemProvider {
     }
 
     public static String encodeCredentials(String username, String password) {
-        ValidateUtils.checkNotNullAndNotEmpty(username, "No username 
provided");
+        ValidateUtils.hasContent(username, "No username provided");
 
         /*
          * There is no way to properly encode/decode credentials that already 
contain colon. See also
diff --git 
a/sshd-sftp/src/main/java/org/apache/sshd/sftp/client/impl/SftpRemotePathChannel.java
 
b/sshd-sftp/src/main/java/org/apache/sshd/sftp/client/impl/SftpRemotePathChannel.java
index bf36154e6..e1a97a471 100644
--- 
a/sshd-sftp/src/main/java/org/apache/sshd/sftp/client/impl/SftpRemotePathChannel.java
+++ 
b/sshd-sftp/src/main/java/org/apache/sshd/sftp/client/impl/SftpRemotePathChannel.java
@@ -78,7 +78,7 @@ public class SftpRemotePathChannel extends FileChannel {
                                  Collection<OpenMode> modes)
             throws IOException {
         this.log = LoggerFactory.getLogger(getClass());
-        this.path = ValidateUtils.checkNotNullAndNotEmpty(path, "No remote 
file path specified");
+        this.path = ValidateUtils.hasContent(path, "No remote file path 
specified");
         this.modes = Collections.unmodifiableSet(EnumSet.copyOf(modes));
         if (this.modes.isEmpty()) {
             throw new IllegalArgumentException("At least one OpenMode is 
required for a SftpRemotePathChannel");
diff --git 
a/sshd-spring-sftp/src/main/java/org/apache/sshd/sftp/spring/integration/ApacheSshdSftpSessionFactory.java
 
b/sshd-spring-sftp/src/main/java/org/apache/sshd/sftp/spring/integration/ApacheSshdSftpSessionFactory.java
index 76e1aa7ab..ac71b1b5d 100644
--- 
a/sshd-spring-sftp/src/main/java/org/apache/sshd/sftp/spring/integration/ApacheSshdSftpSessionFactory.java
+++ 
b/sshd-spring-sftp/src/main/java/org/apache/sshd/sftp/spring/integration/ApacheSshdSftpSessionFactory.java
@@ -135,7 +135,7 @@ public class ApacheSshdSftpSessionFactory
      */
     @Override
     public void setUsername(String user) {
-        this.userValue = ValidateUtils.checkNotNullAndNotEmpty(user, "No user 
specified: %s", user);
+        this.userValue = ValidateUtils.hasContent(user, "No user specified: 
%s", user);
     }
 
     @Override
@@ -447,7 +447,7 @@ public class ApacheSshdSftpSessionFactory
 
     protected ClientSession createClientSession() throws Exception {
         String hostname = ValidateUtils.checkNotNullAndNotEmpty(getHost(), 
"Host must not be empty");
-        String username = ValidateUtils.checkNotNullAndNotEmpty(getUsername(), 
"User must not be empty");
+        String username = ValidateUtils.hasContent(getUsername(), "User must 
not be empty");
         ClientSession session
                 = createClientSession(hostname, username, getPort(), 
getEffectiveTimeoutValue(getConnectTimeout()));
         try {

Reply via email to