From aa76ff75e6830b35ca2b7171c8c3a81e96ff937c Mon Sep 17 00:00:00 2001 From: Nils Schwabe Date: Tue, 22 Apr 2014 18:18:09 +0200 Subject: Added FtpCredentialsScheduler to periodically remove old files and ftp users --- .../java/org/openslx/imagemaster/server/MasterFtpServer.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/main/java/org/openslx/imagemaster/server/MasterFtpServer.java') diff --git a/src/main/java/org/openslx/imagemaster/server/MasterFtpServer.java b/src/main/java/org/openslx/imagemaster/server/MasterFtpServer.java index c6592bc..d1ec14f 100644 --- a/src/main/java/org/openslx/imagemaster/server/MasterFtpServer.java +++ b/src/main/java/org/openslx/imagemaster/server/MasterFtpServer.java @@ -2,6 +2,7 @@ package org.openslx.imagemaster.server; import java.io.File; import java.util.ArrayList; +import java.util.Date; import java.util.HashMap; import java.util.List; @@ -25,7 +26,10 @@ public class MasterFtpServer implements Runnable { private static Logger log = Logger.getLogger( MasterFtpServer.class ); private FtpServer server; private UserManager userManager; - private HashMap users = new HashMap<>(); + // key: serverSessionId, value: FtpCredentials + public final HashMap users = new HashMap<>(); + // key: ftpUsername, value: createTime + public final HashMap timeouts = new HashMap<>(); public MasterFtpServer(int port, String adminUsername, String adminPassword, String ftproot) { FtpServerFactory serverFactory = new FtpServerFactory(); @@ -83,6 +87,7 @@ public class MasterFtpServer implements Runnable { userManager.save(user); ftpCredentials = new FtpCredentials(generatedUser, generatedPass); users.put(serverSessionId, ftpCredentials); + timeouts.put(ftpCredentials.username, new Date()); } catch (FtpException e) { } @@ -97,7 +102,8 @@ public class MasterFtpServer implements Runnable { try { userManager.delete(users.get(serverSessionId).username); - users.remove(serverSessionId); + // remove user from both maps + timeouts.remove(users.remove(serverSessionId).username); return true; } catch (FtpException e) { return false; -- cgit v1.2.3-55-g7522