summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/db
diff options
context:
space:
mode:
authorNils Schwabe2014-04-22 16:56:07 +0200
committerNils Schwabe2014-04-22 16:56:07 +0200
commit01e662bdfff823c4f5f0b6a270807fd0a3d2825f (patch)
treedaf063bc84c06781768794c17cc76f08decaa9c3 /src/main/java/org/openslx/imagemaster/db
parentAdded test case for sha512crypt, removed try/catch blocks from other tests, s... (diff)
downloadmasterserver-01e662bdfff823c4f5f0b6a270807fd0a3d2825f.tar.gz
masterserver-01e662bdfff823c4f5f0b6a270807fd0a3d2825f.tar.xz
masterserver-01e662bdfff823c4f5f0b6a270807fd0a3d2825f.zip
added a method to imageserver so that finshed uploads can be signaled
did some todos from simon moved FtpCredentials creation to MasterFtpServer.java moved some options to to config file
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/db')
-rw-r--r--src/main/java/org/openslx/imagemaster/db/ImageProcessor.java21
-rw-r--r--src/main/java/org/openslx/imagemaster/db/LdapUser.java26
2 files changed, 31 insertions, 16 deletions
diff --git a/src/main/java/org/openslx/imagemaster/db/ImageProcessor.java b/src/main/java/org/openslx/imagemaster/db/ImageProcessor.java
index d43b507..8c8bd8c 100644
--- a/src/main/java/org/openslx/imagemaster/db/ImageProcessor.java
+++ b/src/main/java/org/openslx/imagemaster/db/ImageProcessor.java
@@ -12,10 +12,18 @@ public class ImageProcessor {
private static Logger log = Logger.getLogger(ImageProcessor.class);
private static HashMap<String, ImageData> images = new HashMap<>();
- public static void processImageAfterUpload(String username, String filename) {
- /*
- * TODO: Process the image after download
- */
+
+ /**
+ * Processes an image after upload
+ * @param username the user that uploaded the file
+ * @param filename the name of the file that was uploaded (_no_ absolute path)
+ * @return
+ */
+ public static boolean processImageAfterUpload(String username, String filename) {
+ if (!images.containsKey(username)) {
+ return false;
+ }
+
log.info("Will now process '" + filename + "' from user '" + username
+ "'");
@@ -27,7 +35,7 @@ public class ImageProcessor {
if (!imageFile.exists()) {
// image file does not exist
- return;
+ return false;
}
imageFile.renameTo( new File(newFileName) );
@@ -40,6 +48,9 @@ public class ImageProcessor {
// update database
DbImage.update(images.get(username), newFileName);
log.info("Updated db: " + images.get(username).uuid);
+
+ images.remove(username);
+ return true;
}
/**
diff --git a/src/main/java/org/openslx/imagemaster/db/LdapUser.java b/src/main/java/org/openslx/imagemaster/db/LdapUser.java
index 17bf65e..1124696 100644
--- a/src/main/java/org/openslx/imagemaster/db/LdapUser.java
+++ b/src/main/java/org/openslx/imagemaster/db/LdapUser.java
@@ -14,6 +14,7 @@ import org.apache.directory.api.ldap.model.message.SearchScope;
import org.apache.directory.ldap.client.api.LdapConnectionConfig;
import org.apache.directory.ldap.client.api.LdapNetworkConnection;
import org.apache.log4j.Logger;
+import org.openslx.imagemaster.Globals;
import org.openslx.imagemaster.session.User;
import org.openslx.imagemaster.thrift.iface.AuthenticationError;
import org.openslx.imagemaster.thrift.iface.AuthenticationException;
@@ -63,24 +64,27 @@ public class LdapUser extends User
* @param login Login of user in the form "user@organization.com"
* @return instance of LDAPUser for matching entry from LDAP, or null if not found
*/
- @SuppressWarnings("finally")
public static LdapUser forLogin( final String login, final String password ) throws AuthenticationException {
- String username, organization, firstName, lastName, eMail, satelliteAddress;
+ String username, organization, firstName, lastName, eMail, satelliteAddress;
+
+ String[] temp = login.split("@");
+ if (temp.length != 2) throw new AuthenticationException( AuthenticationError.GENERIC_ERROR, "Login must be in form user@organization.com");
+ username = temp[0];
- // TODO: Read connection info from config file
LdapConnectionConfig ldapConfig = new LdapConnectionConfig();
ldapConfig.setTrustManagers(new MyTrustManager());
- ldapConfig.setLdapPort(636);
- ldapConfig.setLdapHost("bv1.ruf.uni-freiburg.de");
- ldapConfig.setUseSsl(true);
+ ldapConfig.setLdapPort(Integer.valueOf(Globals.properties.getProperty(Globals.ldapPort)));
+ ldapConfig.setLdapHost(Globals.properties.getProperty(Globals.ldapHost));
+ ldapConfig.setUseSsl(Boolean.valueOf(Globals.properties.getProperty(Globals.ldapSsl)));
LdapNetworkConnection connection = new LdapNetworkConnection( ldapConfig );
// bind connection
- // TODO: Hard coded stuff here too. binddn, search query etc. need to be configurable
try {
- if ( connection.connect() )
- connection.bind("uid=" + login + ",ou=people,dc=uni-freiburg,dc=de", password);
+ if ( connection.connect() ) {
+ String name = Globals.properties.getProperty(Globals.ldapBindQuery).replace("%", username);
+ connection.bind(name, password);
+ }
} catch (LdapException e1) {
log.warn( "Connection to LDAP failed: " + e1.getMessage() );
}
@@ -108,8 +112,8 @@ public class LdapUser extends User
// make search query
try {
- EntryCursor cursor = connection.search("ou=people,dc=uni-freiburg,dc=de", "(&(objectclass=person)(uid="
- + login + "))", SearchScope.SUBTREE);
+ EntryCursor cursor = connection.search(Globals.properties.getProperty(Globals.ldapSearchBaseDn),
+ Globals.properties.getProperty(Globals.ldapSearchFilter).replace("%", username), SearchScope.SUBTREE);
// only use the first result
cursor.next();
Entry entry = cursor.get();