diff options
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHUserInfo.java')
-rw-r--r-- | framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHUserInfo.java | 217 |
1 files changed, 217 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHUserInfo.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHUserInfo.java new file mode 100644 index 00000000..54e70293 --- /dev/null +++ b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHUserInfo.java @@ -0,0 +1,217 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.tools.ant.taskdefs.optional.ssh; + +import com.jcraft.jsch.UIKeyboardInteractive; +import com.jcraft.jsch.UserInfo; + + +/** + * Class containing information on an SSH user. + */ +public class SSHUserInfo implements UserInfo, UIKeyboardInteractive { + + private String name; + private String password = null; + private String keyfile; + private String passphrase = null; + private boolean trustAllCertificates; + + /** Constructor for SSHUserInfo. */ + public SSHUserInfo() { + super(); + this.trustAllCertificates = false; + } + + /** + * Constructor for SSHUserInfo. + * @param password the user's password + * @param trustAllCertificates if true trust hosts whose identity is unknown + */ + public SSHUserInfo(String password, boolean trustAllCertificates) { + super(); + this.password = password; + this.trustAllCertificates = trustAllCertificates; + } + + /** + * Gets the user name. + * @return the user name + */ + public String getName() { + return name; + } + + /** + * Gets the pass phrase of the user. + * @param message a message + * @return the passphrase + */ + public String getPassphrase(String message) { + return passphrase; + } + + /** + * Gets the user's password. + * @return the user's password + */ + public String getPassword() { + return password; + } + + /** + * Prompts a string. + * @param str the string + * @return whether the string was prompted + */ + public boolean prompt(String str) { + return false; + } + + /** + * Indicates whether a retry was done. + * @return whether a retry was done + */ + public boolean retry() { + return false; + } + + /** + * Sets the name. + * @param name The name to set + */ + public void setName(String name) { + this.name = name; + } + + /** + * Sets the passphrase. + * @param passphrase The passphrase to set + */ + public void setPassphrase(String passphrase) { + this.passphrase = passphrase; + } + + /** + * Sets the password. + * @param password The password to set + */ + public void setPassword(String password) { + this.password = password; + } + + /** + * Sets the trust. + * @param trust whether to trust or not. + */ + public void setTrust(boolean trust) { + this.trustAllCertificates = trust; + } + + /** + * @return whether to trust or not. + */ + public boolean getTrust() { + return this.trustAllCertificates; + } + + /** + * Returns the passphrase. + * @return String + */ + public String getPassphrase() { + return passphrase; + } + + /** + * Returns the keyfile. + * @return String + */ + public String getKeyfile() { + return keyfile; + } + + /** + * Sets the keyfile. + * @param keyfile The keyfile to set + */ + public void setKeyfile(String keyfile) { + this.keyfile = keyfile; + } + + /** + * Implement the UserInfo interface. + * @param message ignored + * @return true always + */ + public boolean promptPassphrase(String message) { + return true; + } + + /** + * Implement the UserInfo interface. + * @param passwordPrompt ignored + * @return true the first time this is called, false otherwise + */ + public boolean promptPassword(String passwordPrompt) { + return true; + } + + /** + * Implement the UserInfo interface. + * @param message ignored + * @return the value of trustAllCertificates + */ + public boolean promptYesNo(String message) { + return trustAllCertificates; + } + +//why do we do nothing? + /** + * Implement the UserInfo interface (noop). + * @param message ignored + */ + public void showMessage(String message) { + //log(message, Project.MSG_DEBUG); + } + + /** + * Implementation of UIKeyboardInteractive#promptKeyboardInteractive. + * @param destination not used. + * @param name not used. + * @param instruction not used. + * @param prompt the method checks if this is one in length. + * @param echo the method checks if the first element is false. + * @return the password in an size one array if there is a password + * and if the prompt and echo checks pass. + */ + public String[] promptKeyboardInteractive(String destination, + String name, + String instruction, + String[] prompt, + boolean[] echo) { + if (prompt.length != 1 || echo[0] || this.password == null) { + return null; + } + String[] response = new String[1]; + response[0] = this.password; + return response; + } + +} |