当前位置: 首页 > 面试题库 >

UserInfo传递的是,单击以起作用

晁国发
2023-03-14
问题内容

我正在使用ssh工具建立与学校服务器的ssh连接,该示例是我使用源中建立ssh连接的示例。我的问题是我不希望任何用户输入提示,但是弹出一个提示,提示无法建立主机的真实性,并且用户需要按是才能继续,如何编码该代码以使程序接受提示?本身。

Session session = jsch.getSession(user, host, 22);
//username and host I can input directly into program so thats not a problem
// username and password will be given via UserInfo interface.
UserInfo ui = new MyUserInfo();

//this is the part that uses the UserInfo, which pulls up a prompt
//how can I code the prompt to automatically choose yes?    
session.setUserInfo(ui);
session.setPassword("password");
session.connect();
String command = JOptionPane.showInputDialog("Enter command", "set|grep SSH");

问题答案:

我们使用以下代码:

try {
    session = jsch.getSession(user, host, port);
}
catch (JSchException e) {
    throw new TransferException("Failed to open session - " + params, e);
}

session.setPassword(password);

//  Create UserInfo instance in order to support SFTP connection to any machine 
//  without a key username and password will be given via UserInfo interface.
UserInfo userInfo = new SftpUserInfo();
session.setUserInfo(userInfo);

try {
    session.connect(connectTimeout);
}
catch (JSchException e) {
    throw new TransferException("Failed to connect to session - " + params, e);
}

boolean isSessionConnected = session.isConnected();

最重要的是:

/**
 * Implements UserInfo instance in order to support SFTP connection to any machine without a key.
 */
class SftpUserInfo implements UserInfo {

    String password = null;

    @Override
    public String getPassphrase() {
        return null;
    }

    @Override
    public String getPassword() {
        return password;
    }

    public void setPassword(String passwd) {
        password = passwd;
    }

    @Override
    public boolean promptPassphrase(String message) {
        return false;
    }

    @Override
    public boolean promptPassword(String message) {
        return false;
    }

    @Override
    public boolean promptYesNo(String message) {
        return true;
    }

    @Override
    public void showMessage(String message) {
    }
}


 类似资料:
  • 我已经可以切换到iframe,然后点击图像选择[如图1所示]然后不能点击div-预览按钮[如图2-蓝色按钮]这是“应用和关闭”。 知道吗?

  • 本文向大家介绍String类型传递是值传递,char[]类型传递是引用传递的实现,包括了String类型传递是值传递,char[]类型传递是引用传递的实现的使用技巧和注意事项,需要的朋友参考一下 如下所示: 结果是:str任然是hello,ch的第一个元素a变为c 以上就是小编为大家带来的String类型传递是值传递,char[]类型传递是引用传递的实现的全部内容了,希望对大家有所帮助,多多支持呐

  • 我有一个库项目,我用它来为我的其他项目保存一些设置,这些项目有很多实用程序分类,也包括实用程序库。因此,我将库的build.gradle中的所有“实现”调用都改为“API”调用,这样我就不需要一次又一次地重新导入依赖项。在构建库并将jar从我的library文件夹移动到主项目中的lib文件夹后,我可以访问库中的所有类,但是传递依赖项在主项目中不可用。 我还尝试使用实现和transivive=tru

  • 我想只发送图像作为多部分和其余的作为。有任何可能的方法吗?甚至我试图在我的交易模型中添加TypedFile,但无法用@part进行注释

  • 问题内容: 我在我的角度web应用程序。 当我在浏览器中键入内容时,它会重定向到我期望的位置,但是当我单击时,它不会重定向,而是停留在url上。 我的控制台没有错误,我也不知道为什么。 当不再工作时 我在这里看到了一个类似的问题AngularUI-Router$urlRouterProvider。我尝试了答案,但它仍然对我不起作用。 这是我的coffeescript代码: 问题答案: 先前的解决方

  • 问题内容: 我正在尝试使用Python和Selenium在LinkedIn上添加联系人。我试图通过在“网络”选项卡(https://www.linkedin.com/mynetwork)中添加LinkedIn提出的联系建议来实现此目的,该选项具有无限滚动功能。 基本上,我希望脚本找到每个建议的配置文件旁边的“连接”按钮,单击该按钮,然后重复执行直到出现错误为止,从而脚本应向下滚动以加载更多“连接”