【问题标题】:Java username password checkJava用户名密码检查
【发布时间】:2013-02-06 03:04:19
【问题描述】:

有一个特定的服务器 IP 地址需要身份验证我通常通过 cmd 行“ftp xyz0”访问输入我的 u/n,输入我的 p/w 并进入。我想让我的程序询问用户凭据,检查他们是否可以登录到此服务器/IP 地址,如果可以,则返回 true,否则返回 false。我不拥有这台服务器,也不是很了解它,我只需要知道我的应用程序的最终用户是否可以访问它。我不想使用任何外部包,如果可能的话,只使用标准 java 库中可用的包。对此的任何帮助表示赞赏。

我最近的尝试:

 URL url = new URL("ftp://1.0.0.0/");
 URLConnection uc = url.openConnection();
 String userpass = username + ":" + password;
 String basicAuth = "Basic " + javax.xml.bind.DatatypeConverter.printBase64Binary(userpass.getBytes());
 uc.setRequestProperty ("Authorization", basicAuth);
 InputStream in = uc.getInputStream();

不确定它到底在做什么,但无论我为用户名和密码字符串输入什么,它似乎都会给出相同的响应。

【问题讨论】:

  • 我知道你提到你不想使用外部包,但这里有一个使用 Apache commons-net 库的类似问题,可能有用:stackoverflow.com/questions/13836989/…
  • 这是实现 HTTP 基本身份验证的方法,但您正在尝试连接到 FTP 服务器。

标签: java network-programming authorization


【解决方案1】:

为了通过尝试连接到 FTP 服务器来检查登录,您需要使用套接字并进行大量 FTP 协议和身份验证的解析。所以我建议使用Commons Net,它也可以让你通过HTTP/NNTP/等处理其他身份验证。

【讨论】:

  • 如果@Op还想自己动手,那他可以参考FTPClient的实现
  • 是的,他可以借用一些代码,但我想重用现有的东西会更容易。
  • 我在这件事上所做的每一次搜索似乎都是使用 apache commons net 包最简单的。看起来我将不得不使用它,因为检查登录能力要简单得多。一旦连接,我实际上在服务器上没有任何事情要做,这只是一个检查。多谢帮忙,看来没有外接包太麻烦了,有点浪费时间。
猜你喜欢
  • 1970-01-01
  • 2017-11-29
  • 2010-09-28
  • 2010-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-12
相关资源
最近更新 更多