FTPClient登录方法从服务器回复530 PASS命令失败

时间:2015-10-08 12:17:32

标签: ftp command server mainframe

 FTPClient client = new FTPClient();
    try
    {
        client.connect(currentServerHostname);
        System.out.println("Connection is successful");
        System.out.println("Reply String: " + client.getReplyString());
        client.login(currentServerUser, currentServerPass);
        System.out.println("login ok");             
        System.out.println("Reply String: " + client.getReplyString());
    }
    catch (Exception e) {
      System.out.println("No connection was established");
    }

此代码在行client.login()方法中显示530 Pass命令失败等错误。

1 个答案:

答案 0 :(得分:1)

也许您尝试使用具有RACF帐户的用户登录,但该用户(可能)没有在OMVS段中定义UID。

看看这是否有帮助:

<强>问题(摘要)

FTP客户端用户尝试登录z / OS FTP服务器。输入正确的密码进行用户验证后,将收到以下服务器回复:

530 PASS command failed

诊断问题

为FTP服务器指定了ACC和FLO DEBUG选项(请参阅&#34; FTP服务器问题和#34的文档;在Technote MustGather中:收集z / OS Communications Server的FTP故障排除数据以获取说明在启动FTP服务器跟踪时),FTP服务器跟踪中包含以下消息:

RA0786 pass: use __passwd() to verify the user 
RA0809 pass: __passwd() failed - EDC5163I SAF/RACF extract error. (errno2=0x090C1C00) 
RA0888 pass: The username access has been revoked 
SR2910 reply: entered 
SR2947 reply: --> 530 PASS command failed

在v1r12及更高版本中,消息显示为:

RA0862 pass: use __passwd() to verify the user
RA1100 pass: getpwnam() failed - EDC5163I SAF/RACF extract error. (errno2=0B490808)
SR3360 reply: entered
SR3397 reply: --> 530 PASS command failed

考虑将ACCESSERRORMSGS TRUE语句添加到服务器使用的FTP.DATA输入中(通常通过启动过程中的SYSFTPD DD引用)。这将导致服务器向最终用户提供有关任何登录失败性质的更多信息(除了&#39; 530 PASS命令失败&#39;)。一些网站&#39;安全策略限制在这些情况下提供更多信息,这是ACCESSERRORMSGS默认为FALSE。

解决问题

登录FTP服务器的每个用户必须在用户的OMVS段中定义UID。在这种情况下,登录的用户没有在OMVS段中定义的UID,导致PASS命令失败。要解决此问题,请在用户的OMVS段中定义UID。