diff options
| author | Nils Schwabe | 2014-04-22 18:18:09 +0200 |
|---|---|---|
| committer | Nils Schwabe | 2014-04-22 18:18:09 +0200 |
| commit | aa76ff75e6830b35ca2b7171c8c3a81e96ff937c (patch) | |
| tree | 2fd580518077d4703a45557409172fd7a6ab37ab /src/main/java/org/openslx/imagemaster/server | |
| parent | Add code styling settings for eclipse (diff) | |
| download | masterserver-aa76ff75e6830b35ca2b7171c8c3a81e96ff937c.tar.gz masterserver-aa76ff75e6830b35ca2b7171c8c3a81e96ff937c.tar.xz masterserver-aa76ff75e6830b35ca2b7171c8c3a81e96ff937c.zip | |
Added FtpCredentialsScheduler to periodically remove old files and ftp users
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/server')
| -rw-r--r-- | src/main/java/org/openslx/imagemaster/server/ApiServer.java | 3 | ||||
| -rw-r--r-- | src/main/java/org/openslx/imagemaster/server/MasterFtpServer.java | 10 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/main/java/org/openslx/imagemaster/server/ApiServer.java b/src/main/java/org/openslx/imagemaster/server/ApiServer.java index fc1d9b0..1fcfa49 100644 --- a/src/main/java/org/openslx/imagemaster/server/ApiServer.java +++ b/src/main/java/org/openslx/imagemaster/server/ApiServer.java @@ -1,9 +1,7 @@ package org.openslx.imagemaster.server; import java.io.File; -import java.util.HashMap; -import org.apache.ftpserver.ftplet.FtpException; import org.apache.log4j.Logger; import org.apache.thrift.TException; import org.openslx.imagemaster.Globals; @@ -29,7 +27,6 @@ import org.openslx.imagemaster.thrift.iface.ServerAuthenticationException; import org.openslx.imagemaster.thrift.iface.ServerSessionData; import org.openslx.imagemaster.thrift.iface.SessionData; import org.openslx.imagemaster.thrift.iface.UserInfo; -import org.openslx.imagemaster.util.RandomString; /** * API Server This is where all the requests from the outside arrive. We don't 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<String, FtpCredentials> users = new HashMap<>(); + // key: serverSessionId, value: FtpCredentials + public final HashMap<String, FtpCredentials> users = new HashMap<>(); + // key: ftpUsername, value: createTime + public final HashMap<String, Date> 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; |
