summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/server
diff options
context:
space:
mode:
authorNils Schwabe2014-04-24 15:26:58 +0200
committerNils Schwabe2014-04-24 15:26:58 +0200
commit87d2abae6355cfb9993edb89cc60912d0d8230a5 (patch)
tree148279b45dc791d2bd6b19e690cff8740158b0dc /src/main/java/org/openslx/imagemaster/server
parentReformat all files with simon's new layout (diff)
downloadmasterserver-87d2abae6355cfb9993edb89cc60912d0d8230a5.tar.gz
masterserver-87d2abae6355cfb9993edb89cc60912d0d8230a5.tar.xz
masterserver-87d2abae6355cfb9993edb89cc60912d0d8230a5.zip
Add FTPS to MasterFtpServer
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/server')
-rw-r--r--src/main/java/org/openslx/imagemaster/server/ApiServer.java11
-rw-r--r--src/main/java/org/openslx/imagemaster/server/FtpCredentialsScheduler.java11
-rw-r--r--src/main/java/org/openslx/imagemaster/server/MasterFtpServer.java16
3 files changed, 23 insertions, 15 deletions
diff --git a/src/main/java/org/openslx/imagemaster/server/ApiServer.java b/src/main/java/org/openslx/imagemaster/server/ApiServer.java
index 30fb0a8..c88bd05 100644
--- a/src/main/java/org/openslx/imagemaster/server/ApiServer.java
+++ b/src/main/java/org/openslx/imagemaster/server/ApiServer.java
@@ -4,6 +4,7 @@ import java.io.File;
import org.apache.log4j.Logger;
import org.apache.thrift.TException;
+import org.openslx.imagemaster.App;
import org.openslx.imagemaster.Globals;
import org.openslx.imagemaster.db.DbSatellite;
import org.openslx.imagemaster.db.ImageProcessor;
@@ -100,7 +101,7 @@ public class ApiServer
}
// create new user
- FtpCredentials ftpCredentials = Globals.ftpServer.addUser( serverSessionId );
+ FtpCredentials ftpCredentials = App.ftpServer.addUser( serverSessionId );
if ( ftpCredentials == null ) {
log.error( "Could not create ftp credentials" );
@@ -108,7 +109,7 @@ public class ApiServer
}
if ( !ImageProcessor.addImageDataToProcess( imageDescription, ftpCredentials.username ) ) {
- Globals.ftpServer.removeUser( serverSessionId );
+ App.ftpServer.removeUser( serverSessionId );
throw new TException( "ImageData is not valid." );
}
@@ -179,7 +180,7 @@ public class ApiServer
}
// process the image
- String username = Globals.ftpServer.getCredentialsFromSessionId( serverSessionId ).username;
+ String username = App.ftpServer.getCredentialsFromSessionId( serverSessionId ).username;
File userDirectory = new File( Globals.getPropertyString( Globals.PropString.FTPBASEDIR ) + "/" + username );
File[] list = userDirectory.listFiles();
@@ -190,12 +191,12 @@ public class ApiServer
log.info( username + " is done with upload" );
// remove user that is not needed anymore
- Globals.ftpServer.removeUser( username );
+ App.ftpServer.removeUser( username );
log.info( "Removed user: " + username );
ImageProcessor.processImageAfterUpload( username, list[0].getName() );
- Globals.ftpServer.removeUser( serverSessionId );
+ App.ftpServer.removeUser( serverSessionId );
return true;
}
diff --git a/src/main/java/org/openslx/imagemaster/server/FtpCredentialsScheduler.java b/src/main/java/org/openslx/imagemaster/server/FtpCredentialsScheduler.java
index c5fad4f..ba88f33 100644
--- a/src/main/java/org/openslx/imagemaster/server/FtpCredentialsScheduler.java
+++ b/src/main/java/org/openslx/imagemaster/server/FtpCredentialsScheduler.java
@@ -7,6 +7,7 @@ import java.util.Timer;
import java.util.TimerTask;
import org.apache.log4j.Logger;
+import org.openslx.imagemaster.App;
import org.openslx.imagemaster.Globals;
import org.openslx.imagemaster.thrift.iface.FtpCredentials;
import org.openslx.imagemaster.util.Util;
@@ -21,7 +22,7 @@ public class FtpCredentialsScheduler extends TimerTask
public void run()
{
// check all folders
- for ( Map.Entry<String, FtpCredentials> entry : Globals.ftpServer.users.entrySet() ) {
+ for ( Map.Entry<String, FtpCredentials> entry : App.ftpServer.users.entrySet() ) {
String sessionId = entry.getKey();
String username = entry.getValue().username;
File dir = new File( Globals.getPropertyString( Globals.PropString.FTPBASEDIR ) + "/" + username );
@@ -32,18 +33,18 @@ public class FtpCredentialsScheduler extends TimerTask
if ( ( new Date().getTime() - list[0].lastModified() ) >= timeout ) {
log.info( username + "'s files are too old. Deleting him and his folder." );
Util.deleteFolder( dir );
- Globals.ftpServer.removeUser( sessionId );
+ App.ftpServer.removeUser( sessionId );
}
} else if ( list.length > 1 ) {
log.info( username + " uploaded too many files. Deleting his account and his folder." );
Util.deleteFolder( dir );
- Globals.ftpServer.removeUser( sessionId );
+ App.ftpServer.removeUser( sessionId );
} else {
// check the creation time of the user
- if ( ( new Date().getTime() - Globals.ftpServer.timeouts.get( username ).getTime() ) >= timeout ) {
+ if ( ( new Date().getTime() - App.ftpServer.timeouts.get( username ).getTime() ) >= timeout ) {
// remove user and his folder
Util.deleteFolder( dir );
- Globals.ftpServer.removeUser( sessionId );
+ App.ftpServer.removeUser( sessionId );
log.info( username + " did nothing for too long. Deleting him and his folder" );
}
}
diff --git a/src/main/java/org/openslx/imagemaster/server/MasterFtpServer.java b/src/main/java/org/openslx/imagemaster/server/MasterFtpServer.java
index f68e909..de0d758 100644
--- a/src/main/java/org/openslx/imagemaster/server/MasterFtpServer.java
+++ b/src/main/java/org/openslx/imagemaster/server/MasterFtpServer.java
@@ -13,6 +13,7 @@ import org.apache.ftpserver.ftplet.FtpException;
import org.apache.ftpserver.ftplet.Ftplet;
import org.apache.ftpserver.ftplet.UserManager;
import org.apache.ftpserver.listener.ListenerFactory;
+import org.apache.ftpserver.ssl.SslConfigurationFactory;
import org.apache.ftpserver.usermanager.PropertiesUserManagerFactory;
import org.apache.ftpserver.usermanager.SaltedPasswordEncryptor;
import org.apache.ftpserver.usermanager.impl.BaseUser;
@@ -40,8 +41,17 @@ public class MasterFtpServer implements Runnable
FtpServerFactory serverFactory = new FtpServerFactory();
ListenerFactory factory = new ListenerFactory();
+
+ // config ssl
+ SslConfigurationFactory sslConfigFactory = new SslConfigurationFactory();
+ sslConfigFactory.setKeystoreFile( new File( "./keyfiles/ftp.jks" ) );
+ sslConfigFactory.setKeyAlias( "ftp" );
+ sslConfigFactory.setKeystorePassword( "password" );
+
// set the port of the listener
factory.setPort( port );
+ factory.setSslConfiguration( sslConfigFactory.createSslConfiguration() );
+ factory.setImplicitSsl( true );
// replace the default listener
serverFactory.addListener( "default", factory.createListener() );
@@ -51,9 +61,6 @@ public class MasterFtpServer implements Runnable
userManagerFactory.setFile( new File( "src/main/properties/ftp.properties" ) );
userManagerFactory.setPasswordEncryptor( new SaltedPasswordEncryptor() );
userManager = userManagerFactory.createUserManager();
-
- // create new admin user
- //addUser(adminUsername, adminPassword, ftproot, true);
serverFactory.setUserManager( userManager );
// add the Ftplet
@@ -63,12 +70,11 @@ public class MasterFtpServer implements Runnable
// start the server
server = serverFactory.createServer();
+ ini = true;
}
public FtpCredentials addUser( final String serverSessionId )
{
- // TODO: enable SSL
-
FtpCredentials ftpCredentials = null;
String generatedUser = RandomString.generate( 10, false );