我正在使用JSch编写应用程序。此应用程序应该对用户进行一次身份验证,然后将用户名和密码存储在该会话中。 因此,我只需要连接到服务器进行身份验证。 我稍后只会从服务器读取文件,因此只需要SFTP权限。
从现在开始,我将通过读取预定义文件的内容来验证用户身份。但这对性能不利,文件必须存在于服务器上。还有其他更好的解决方案吗?
修改 我会在这里澄清我的问题,所以如果你不明白我想做什么,请继续阅读。
我想拥有的内容:我有一个应用程序,您必须先登录。当用户登录时,用户名和密码将存储在用户会话中,并将用于所有请求。登录后,用户可以从服务器读取一些文件。使用先前保存的凭据通过SFTP访问这些文件。
问题:我不知道如何在登录到应用程序时验证用户凭据,而无需访问服务器上的文件。
我的解决方法:我尝试解决问题,在登录期间从服务器读取预定义的小文件,并在可以读取文件时接受凭据。
我的问题:我想知道,如果有更好的解决方案,比如只是在服务器上验证用户的功能,那么我可以肯定,输入的凭据是正确的。或者,甚至更好的是,当用户登录时,我可以打开与服务器的连接,并使用此连接进行进一步的请求,而无需发送凭据。
答案 0 :(得分:2)
只需创建一个新的Session
并致电.connect()
。
Session session = jsch.getSession("username", "host");
session.setPassword("password");
session.connect();
session.disconnect();
您必须已为传输准备此代码。
无论如何,你是对的,一个更好的解决方案肯定是保持会话开放。
只需连接,保留对Session
实例的引用,并将其重新用于将来的所有传输。