diff options
| author | Nils Schwabe | 2014-04-10 15:49:18 +0200 |
|---|---|---|
| committer | Nils Schwabe | 2014-04-10 15:49:18 +0200 |
| commit | 298f7ca2b7e8861a70e31da237a775f45d77b597 (patch) | |
| tree | c838288c443d976251a216f6a9318f4860907785 /src/main | |
| parent | added some comments (diff) | |
| download | masterserver-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')
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 |
