summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/server
diff options
context:
space:
mode:
authorNils Schwabe2014-04-22 18:18:09 +0200
committerNils Schwabe2014-04-22 18:18:09 +0200
commitaa76ff75e6830b35ca2b7171c8c3a81e96ff937c (patch)
tree2fd580518077d4703a45557409172fd7a6ab37ab /src/main/java/org/openslx/imagemaster/server
parentAdd code styling settings for eclipse (diff)
downloadmasterserver-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.java3
-rw-r--r--src/main/java/org/openslx/imagemaster/server/MasterFtpServer.java10
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;