summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/App.java
diff options
context:
space:
mode:
authorNils Schwabe2014-04-09 15:40:16 +0200
committerNils Schwabe2014-04-09 15:40:16 +0200
commitb30da021d491ace47c1b6a7b5ad11e595a2399c9 (patch)
treea90ccc1f2a7833df6727c181a885cc56dc2e463a /src/main/java/org/openslx/imagemaster/App.java
parentfixed config dir (examples etc) (diff)
downloadmasterserver-b30da021d491ace47c1b6a7b5ad11e595a2399c9.tar.gz
masterserver-b30da021d491ace47c1b6a7b5ad11e595a2399c9.tar.xz
masterserver-b30da021d491ace47c1b6a7b5ad11e595a2399c9.zip
Added Globals.java and global properties
Added Ftpserver test Created some ftp testign in App.java (needs to be removed) Added Ftplet to trigger on FTP Commands
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/App.java')
-rw-r--r--src/main/java/org/openslx/imagemaster/App.java83
1 files changed, 68 insertions, 15 deletions
diff --git a/src/main/java/org/openslx/imagemaster/App.java b/src/main/java/org/openslx/imagemaster/App.java
index 9a5fd15..62e06a4 100644
--- a/src/main/java/org/openslx/imagemaster/App.java
+++ b/src/main/java/org/openslx/imagemaster/App.java
@@ -1,5 +1,10 @@
package org.openslx.imagemaster;
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.List;
@@ -7,33 +12,78 @@ import org.apache.log4j.Logger;
import org.openslx.imagemaster.server.MasterFtpServer;
import org.openslx.imagemaster.thrift.server.BinaryListener;
-/**
- * Hello world!
- *
- */
-public class App
-{
- private static Logger log = Logger.getLogger( App.class );
+public class App {
+ private static Logger log = Logger.getLogger(App.class);
private static List<Thread> servers = new ArrayList<>();
- public static void main( String[] args )
- {
+ public static void main(String[] args) {
// Init logging
- log.info( "Starting Application" );
-
+ log.info("Starting Application");
+
+ // Load properties
+ boolean error = false;
+ BufferedInputStream stream = null;
+ try {
+ stream = new BufferedInputStream(new FileInputStream(
+ "config/global.properties"));
+ Globals.properties.load(stream);
+ } catch (IOException e) {
+ log.error("Could not load config file. Quitting.");
+ error = true;
+ } finally {
+ if (stream != null) {
+ try {
+ stream.close();
+ } catch (IOException e) {
+ }
+ }
+ if (error)
+ System.exit(1);
+ log.info("Loaded config file");
+ }
+
// Create binary listener
Thread t;
t = new Thread(new BinaryListener(), "BinaryListener");
servers.add(t);
t.start();
-
+
// Create Ftp Server
Thread f;
- f = new Thread(new MasterFtpServer(2221, "admin", "admin", "/home/nils/ftp"), "FtpServer");
+ MasterFtpServer ftpServer = new MasterFtpServer(2221, "admin",
+ "SI*HoZCC!]V)p>B2", Globals.properties.getProperty("ftp_base_dir"));
+ f = new Thread(ftpServer, "FtpServer");
servers.add(f);
f.start();
+ /*
+ * FTP Users can be added later with:
+ * ftpServer.addUser(username, password, ftp_root);
+ *
+ * And removed with:
+ * removeUser(username);
+ */
+
+ ////////////////////////////////////////////////
+ SecureRandom random = new SecureRandom();
+ String lettersP="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890+-$%&/()=?@";
+ String lettersU="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
+ String generatedUser = "";
+ String generatedPass = "";
+ for (int i = 0; i < 16; i++) {
+ int index = (int)(random.nextDouble()*lettersU.length());
+ generatedUser += lettersU.substring(index, index + 1);
+ index = (int)(random.nextDouble()*lettersP.length());
+ generatedPass += lettersP.substring(index, index + 1);
+ }
+ String dir = Globals.properties.getProperty("ftp_base_dir") + "/" + generatedUser + "/";
+ if (new File(dir).mkdir()) {
+ ftpServer.addUser(generatedUser, generatedPass, dir, true);
+ log.info("Generated user/pass: " + generatedUser + "\t" + generatedPass + "\n with home dir: " + dir);
+ }
+ ////////////////////////////////////////////////
+
// Run more servers
// ...
// Wait for all servers to die
@@ -43,11 +93,14 @@ public class App
try {
wait.join();
success = true;
- } catch ( InterruptedException e ) {
+ } catch (InterruptedException e) {
// Do nothing...
}
}
}
- log.info( "All Servers shut down, exiting..." );
+
+ ftpServer.removeUser(generatedUser);
+
+ log.info("All Servers shut down, exiting...");
}
}