From 5e151ef9d706d1f0e5ea91dd9736d78efe3db887 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Thu, 7 Mar 2024 17:39:59 +0100 Subject: [PATCH] Allow to pass SSH password via an InputStream --- .../src/org/argeo/cms/ssh/AbstractSsh.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/org.argeo.cms.lib.sshd/src/org/argeo/cms/ssh/AbstractSsh.java b/org.argeo.cms.lib.sshd/src/org/argeo/cms/ssh/AbstractSsh.java index c91ab4805..8d9e42e29 100644 --- a/org.argeo.cms.lib.sshd/src/org/argeo/cms/ssh/AbstractSsh.java +++ b/org.argeo.cms.lib.sshd/src/org/argeo/cms/ssh/AbstractSsh.java @@ -2,6 +2,7 @@ package org.argeo.cms.ssh; import java.io.Console; import java.io.IOException; +import java.io.InputStream; import java.net.URI; import java.net.URISyntaxException; import java.util.Arrays; @@ -51,16 +52,20 @@ public abstract class AbstractSsh { } public void authenticate() { + authenticate(System.in); + } + + public void authenticate(InputStream in) { if (sshKeyPair != null) { session.addPublicKeyIdentity(sshKeyPair.asKeyPair()); } else { - if (!passwordSet) { + if (!passwordSet && in != null) { String password; Console console = System.console(); if (console == null) {// IDE System.out.print("Password: "); - try (Scanner s = new Scanner(System.in)) { + try (Scanner s = new Scanner(in)) { password = s.next(); } } else { -- 2.30.2