X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.support.simple%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fjsch%2FSimpleUserInfo.java;h=872f17b290716561749837bf5f84206abc7227fa;hb=6926b1fc72b36a5d8ec188a4981665fb7554a7d9;hp=3691bb6756e0600181e58be87767a3573950166f;hpb=e7ddf0b3a271a2f22108ee5b9fba69888f5c78ec;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/jsch/SimpleUserInfo.java b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/jsch/SimpleUserInfo.java index 3691bb675..872f17b29 100644 --- a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/jsch/SimpleUserInfo.java +++ b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/jsch/SimpleUserInfo.java @@ -13,17 +13,27 @@ import com.jcraft.jsch.UserInfo; public class SimpleUserInfo implements UserInfo { private Boolean permissive = true; + private Boolean verbose = false; + private final static Log log = LogFactory.getLog(SimpleUserInfo.class); private String password; private char[] passwordSafe; + private String passphrase; + private char[] passphraseSafe; public void setPassword(String password) { this.password = password; } + public void setPassphrase(String passphrase) { + this.passphrase = passphrase; + } + public String getPassphrase() { - return null; + if (passphraseSafe != null) + return new String(passphraseSafe); + return passphrase; } public String getPassword() { @@ -33,14 +43,20 @@ public class SimpleUserInfo implements UserInfo { } public boolean promptPassphrase(String message) { - return true; + if (permissive) + return true; + else { + log.info(message); + passwordSafe = readPassword(System.in); + return passwordSafe != null; + } } public boolean promptPassword(String message) { - log.info(message); if (permissive) return true; else { + log.info(message); passwordSafe = readPassword(System.in); return passwordSafe != null; } @@ -49,7 +65,8 @@ public class SimpleUserInfo implements UserInfo { public boolean promptYesNo(String message) { String msg = message + " (y/n): "; if (permissive) { - log.info(msg + "y"); + if (verbose) + log.info(msg + "y"); return true; } else { log.info(msg); @@ -74,12 +91,16 @@ public class SimpleUserInfo implements UserInfo { this.permissive = permissive; } + public void setVerbose(Boolean verbose) { + this.verbose = verbose; + } + protected char[] readPassword(InputStream in) { try { char[] lineBuffer; char[] buf; - //int i; + // int i; buf = lineBuffer = new char[128];