diff options
author | Nils Schwabe | 2014-04-09 15:40:16 +0200 |
---|---|---|
committer | Nils Schwabe | 2014-04-09 15:40:16 +0200 |
commit | b30da021d491ace47c1b6a7b5ad11e595a2399c9 (patch) | |
tree | a90ccc1f2a7833df6727c181a885cc56dc2e463a /src/main/java/org/openslx/imagemaster/App.java | |
parent | fixed config dir (examples etc) (diff) | |
download | masterserver-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.java | 83 |
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..."); } } |