【问题标题】:Android FTP server authenticates onceAndroid FTP 服务器认证一次
【发布时间】:2015-08-16 23:54:44
【问题描述】:

我正在尝试使用Apache FTP server library 在我的应用程序中实现一个 FTP 服务器。

服务器已启动并运行正常,但只有一次。

注意:我现在使用的是硬编码用户。 username: testpassword: test

按顺序:

  1. 应用启动,服务器启动,让所有FTP客户端登录。

  2. 应用被用户杀死。

  3. 用户启动应用程序并启动服务器。回复530 authentication failed 给使用username: testpassword: test 登录的用户

之后它会回复530 authentication failed

下面是我制作服务器的代码:

public void makePropertiesFile(){
    File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/Download/user.properties");
    if(file.exists() == false){
        try {
            file.createNewFile();
            logMessage("user.properties File did not exist, made one");
            properties = file;
            this.addUsers();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    else {
        logMessage("File already exists, no need to recreate");
        userManagerFactory = new PropertiesUserManagerFactory();
        userManagerFactory.setFile(properties);
        userManagerFactory.setPasswordEncryptor(new SaltedPasswordEncryptor());
        org.apache.ftpserver.ftplet.UserManager userManager = userManagerFactory.createUserManager();
        serverFactory.setUserManager(userManager);
    }
}

public void addUsers(){
    userManagerFactory = new PropertiesUserManagerFactory();
    userManagerFactory.setFile(properties);
    userManagerFactory.setPasswordEncryptor(new SaltedPasswordEncryptor());
    baseUser = new BaseUser();
    baseUser.setName("test");
    baseUser.setPassword("test");
    baseUser.setHomeDirectory(Environment.getExternalStorageDirectory().getAbsolutePath());
    baseUser.setEnabled(true);
    List<Authority> authorities = new ArrayList<Authority>();
    authorities.add(new WritePermission());
    baseUser.setAuthorities(authorities);
    org.apache.ftpserver.ftplet.UserManager userManager = userManagerFactory.createUserManager();
    try {
        userManager.save(baseUser);
    } catch (FtpException e) {
        e.printStackTrace();
        logMessage("Could not save User");
    }
    serverFactory.setUserManager(userManager);
}

public void start(){
    serverFactory = new FtpServerFactory();
    listenerFactory = new ListenerFactory();
    listenerFactory.setPort(port);
    serverFactory.addListener("default",listenerFactory.createListener());
    ftpServer = serverFactory.createServer();
    this.makePropertiesFile();
    try {
        ftpServer.start();
        logMessage("Started FTP server on port: " + port);
    } catch (FtpException e) {
        e.printStackTrace();
        logMessage("Failed to start FTP server on port: " + port);
    }

}

【问题讨论】:

    标签: android ftp ftp-server


    【解决方案1】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-02
      • 1970-01-01
      • 2017-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-26
      相关资源
      最近更新 更多