summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster
diff options
context:
space:
mode:
authorNils Schwabe2014-04-10 15:49:18 +0200
committerNils Schwabe2014-04-10 15:49:18 +0200
commit298f7ca2b7e8861a70e31da237a775f45d77b597 (patch)
treec838288c443d976251a216f6a9318f4860907785 /src/main/java/org/openslx/imagemaster
parentadded some comments (diff)
downloadmasterserver-298f7ca2b7e8861a70e31da237a775f45d77b597.tar.gz
masterserver-298f7ca2b7e8861a70e31da237a775f45d77b597.tar.xz
masterserver-298f7ca2b7e8861a70e31da237a775f45d77b597.zip
tried to implement the server auth. (did not work)
added ImageProcessor to process image after ftp upload
Diffstat (limited to 'src/main/java/org/openslx/imagemaster')
-rw-r--r--src/main/java/org/openslx/imagemaster/server/ApiServer.java3
-rw-r--r--src/main/java/org/openslx/imagemaster/server/ImageProcessor.java14
-rw-r--r--src/main/java/org/openslx/imagemaster/server/MasterFtpServer.java2
-rw-r--r--src/main/java/org/openslx/imagemaster/server/MasterFtplet.java24
-rw-r--r--src/main/java/org/openslx/imagemaster/serversession/ServerAuthenticator.java34
-rw-r--r--src/main/java/org/openslx/imagemaster/thrift/server/ImageServerHandler.java2
6 files changed, 57 insertions, 22 deletions
diff --git a/src/main/java/org/openslx/imagemaster/server/ApiServer.java b/src/main/java/org/openslx/imagemaster/server/ApiServer.java
index 2c49a0d..258c490 100644
--- a/src/main/java/org/openslx/imagemaster/server/ApiServer.java
+++ b/src/main/java/org/openslx/imagemaster/server/ApiServer.java
@@ -103,6 +103,9 @@ public class ApiServer {
*
* And removed with: removeUser(username);
*/
+ if (ServerSessionManager.getSession(serverSessionData.sessionId) == null) {
+ throw new AuthenticationException(AuthenticationError.GENERIC_ERROR, "No valid serverSessionData");
+ }
String generatedUser = RandomString.generate(10, false);
String generatedPass = RandomString.generate(16, true);
diff --git a/src/main/java/org/openslx/imagemaster/server/ImageProcessor.java b/src/main/java/org/openslx/imagemaster/server/ImageProcessor.java
new file mode 100644
index 0000000..e10ea21
--- /dev/null
+++ b/src/main/java/org/openslx/imagemaster/server/ImageProcessor.java
@@ -0,0 +1,14 @@
+package org.openslx.imagemaster.server;
+
+import org.apache.log4j.Logger;
+
+public class ImageProcessor {
+
+ private static Logger log = Logger.getLogger(ImageProcessor.class);
+ public static void processImageAfterUpload(String username, String filename) {
+ /*
+ * TODO: Process the image after download
+ */
+
+ }
+}
diff --git a/src/main/java/org/openslx/imagemaster/server/MasterFtpServer.java b/src/main/java/org/openslx/imagemaster/server/MasterFtpServer.java
index 9ec5cf7..973c768 100644
--- a/src/main/java/org/openslx/imagemaster/server/MasterFtpServer.java
+++ b/src/main/java/org/openslx/imagemaster/server/MasterFtpServer.java
@@ -19,7 +19,7 @@ import org.apache.ftpserver.usermanager.impl.WritePermission;
import org.apache.log4j.Logger;
public class MasterFtpServer implements Runnable {
- private static Logger log = Logger.getLogger( ApiServer.class );
+ private static Logger log = Logger.getLogger( MasterFtpServer.class );
private FtpServer server;
private UserManager userManager;
diff --git a/src/main/java/org/openslx/imagemaster/server/MasterFtplet.java b/src/main/java/org/openslx/imagemaster/server/MasterFtplet.java
index 73d69d2..a1b9a90 100644
--- a/src/main/java/org/openslx/imagemaster/server/MasterFtplet.java
+++ b/src/main/java/org/openslx/imagemaster/server/MasterFtplet.java
@@ -10,29 +10,25 @@ import org.apache.ftpserver.ftplet.Ftplet;
import org.apache.ftpserver.ftplet.FtpletContext;
import org.apache.ftpserver.ftplet.FtpletResult;
import org.apache.log4j.Logger;
-import org.openslx.imagemaster.App;
public class MasterFtplet implements Ftplet {
- private static Logger log = Logger.getLogger(App.class);
+ private static Logger log = Logger.getLogger(Ftplet.class);
@Override
public void init(FtpletContext ftpletContext) throws FtpException {
- // TODO Auto-generated method stub
-
+ // not used
}
@Override
public void destroy() {
- // TODO Auto-generated method stub
-
+ // not used
}
@Override
public FtpletResult beforeCommand(FtpSession session, FtpRequest request)
throws FtpException, IOException {
- if (session.getUser() != null && request.getCommand() == "QUIT") {
- // TODO: tell server that user finished uploading
- String user = session.getUser().getName();
+ if (session.getUser() != null) {
+ log.info(session.getUser().getName() + " issued command: " + request.getRequestLine());
}
return null;
}
@@ -40,21 +36,25 @@ public class MasterFtplet implements Ftplet {
@Override
public FtpletResult afterCommand(FtpSession session, FtpRequest request,
FtpReply reply) throws FtpException, IOException {
- // TODO Auto-generated method stub
+ if (session.getUser() != null) {
+ log.info(session.getUser().getName() + " is done with command: " + request.getRequestLine());
+ // TODO: delete temporary user
+ ImageProcessor.processImageAfterUpload(session.getUser().getName(), request.getRequestLine().split(" ")[1]);
+ }
return null;
}
@Override
public FtpletResult onConnect(FtpSession session) throws FtpException,
IOException {
- // TODO Auto-generated method stub
+ // not used
return null;
}
@Override
public FtpletResult onDisconnect(FtpSession session) throws FtpException,
IOException {
- // TODO Auto-generated method stub
+ // not used
return null;
}
diff --git a/src/main/java/org/openslx/imagemaster/serversession/ServerAuthenticator.java b/src/main/java/org/openslx/imagemaster/serversession/ServerAuthenticator.java
index b0fd72f..d57eb36 100644
--- a/src/main/java/org/openslx/imagemaster/serversession/ServerAuthenticator.java
+++ b/src/main/java/org/openslx/imagemaster/serversession/ServerAuthenticator.java
@@ -2,28 +2,37 @@ package org.openslx.imagemaster.serversession;
import java.util.HashMap;
+import org.apache.log4j.Logger;
import org.apache.thrift.TException;
import org.openslx.imagemaster.thrift.iface.AuthenticationException;
import org.openslx.imagemaster.util.RandomString;
public class ServerAuthenticator {
+ private static Logger log = Logger.getLogger(ServerAuthenticator.class);
// map of currently authenticating servers
private static HashMap<String, String> authenticatingServers = new HashMap<String, String>();
+
/**
* Start the server authentification.
- * @param organization the organization of the server
+ *
+ * @param organization
+ * the organization of the server
* @return encrypted random string
*/
public static String startServerAuthentication(String organization) {
String secret = RandomString.generate(100, false);
synchronized (authenticatingServers) {
authenticatingServers.put(organization, secret);
+ log.info("Server of organinzation '" + organization
+ + "' starts to authenticate. And got string: '" + secret
+ + "'");
}
return secret;
}
-
+
/**
* Authenticate with the challengeResponse
+ *
* @param organization
* @param address
* @param challengeResponse
@@ -31,14 +40,23 @@ public class ServerAuthenticator {
* @throws AuthenticationException
* @throws TException
*/
- public static ServerUser serverAuthenticate(String organization, String address,
- String challengeResponse) throws AuthenticationException,
- TException {
+ public static ServerUser serverAuthenticate(String organization,
+ String address, String challengeResponse)
+ throws AuthenticationException, TException {
/*
- * TODO:
- * Decrypt the given challengeResponse and check whether it was right or not.
- * Authenticate server if so.
+ * TODO: Decrypt the given challengeResponse and check whether it was
+ * right or not. Authenticate server if so.
*/
+ if (!challengeResponse.equals(authenticatingServers.get(organization))) {
+ throw new AuthenticationException();
+ }
+
+ log.info("Server of organinzation '" + organization
+ + " authenticated. With response: '" + challengeResponse
+ + "'");
+
+ authenticatingServers.remove(organization);
+
return new ServerUser(organization, address);
}
}
diff --git a/src/main/java/org/openslx/imagemaster/thrift/server/ImageServerHandler.java b/src/main/java/org/openslx/imagemaster/thrift/server/ImageServerHandler.java
index 858f682..096f63f 100644
--- a/src/main/java/org/openslx/imagemaster/thrift/server/ImageServerHandler.java
+++ b/src/main/java/org/openslx/imagemaster/thrift/server/ImageServerHandler.java
@@ -15,7 +15,7 @@ import org.openslx.imagemaster.thrift.iface.UserInfo;
public class ImageServerHandler implements ImageServer.Iface
{
- private static Logger log = Logger.getLogger( ApiServer.class );
+ private static Logger log = Logger.getLogger( ImageServerHandler.class );
@Override
public boolean ping() throws TException