From 13dab02ca0734f05cdf2020649b6857d9bea0143 Mon Sep 17 00:00:00 2001 From: Nils Schwabe Date: Thu, 19 Jun 2014 15:10:35 +0200 Subject: Fix problems with thrift connection --- .../java/org/openslx/imagemaster/db/DbImage.java | 16 ++++++--------- .../openslx/imagemaster/ftp/ImageProcessor.java | 23 +++++++++------------- .../org/openslx/imagemaster/ftp/MasterFtplet.java | 4 ---- 3 files changed, 15 insertions(+), 28 deletions(-) diff --git a/src/main/java/org/openslx/imagemaster/db/DbImage.java b/src/main/java/org/openslx/imagemaster/db/DbImage.java index 59701e4..5d22e33 100644 --- a/src/main/java/org/openslx/imagemaster/db/DbImage.java +++ b/src/main/java/org/openslx/imagemaster/db/DbImage.java @@ -47,7 +47,7 @@ public class DbImage } public DbImage(String UUID, int imageVersion, String imageName, String imagePath, - Timestamp imageCreateTime, Timestamp imageUpdateTime, int imageOwner, String contentOperatingSystem, + Timestamp imageCreateTime, Timestamp imageUpdateTime, String imageOwner, String contentOperatingSystem, boolean isValid, boolean isDeleted, String shortDescription, String longDescription, Timestamp timestamp, String ftpUser, long fileSize) { @@ -57,7 +57,7 @@ public class DbImage this.imagePath = imagePath; this.imageCreateTime = imageCreateTime; this.imageUpdateTime = imageUpdateTime; - this.imageOwner = DbUser.getUserNameById( imageOwner ); + this.imageOwner = imageOwner; this.contentOperatingSystem = contentOperatingSystem; this.isValid = isValid; this.isDeleted = isDeleted; @@ -76,9 +76,7 @@ public class DbImage */ public static boolean exists( ImageData imageData ) { - if ( MySQL.findUniqueOrNull( DbImage.class, - "SELECT images.UUID FROM images WHERE images.UUID = ?", - imageData.uuid ) == null ) { + if ( MySQL.findUniqueOrNull( DbImage.class, "SELECT images.UUID FROM images WHERE images.UUID = ?", imageData.uuid ) == null ) { return false; } else { return true; @@ -98,16 +96,14 @@ public class DbImage Date timestamp = new Date( ts ); SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ); - int ownerId = DbUser.getUserIdByName( imageData.imageOwner ); - return MySQL .update( - "INSERT INTO images (UUID, image_version, image_name, image_path, image_createTime, image_updateTime, image_owner, content_operatingSystem, status_isValid, status_isDeleted, image_shortDescription, image_longDescription, timestamp, ftpUser, ftpPassword, fileSize) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", + "INSERT INTO images (UUID, image_version, image_name, image_path, image_createTime, image_updateTime, image_owner, content_operatingSystem, status_isValid, status_isDeleted, image_shortDescription, image_longDescription, timestamp, ftpUser, fileSize) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", imageData.uuid, imageData.imageVersion, imageData.imageName, "!uploading!", - sdf.format( createTime ), sdf.format( updateTime ), ownerId, + sdf.format( createTime ), sdf.format( updateTime ), imageData.imageOwner, imageData.conentOperatingSystem, imageData.statusIsValid, imageData.statusIsDeleted, imageData.imageShortDescription, - imageData.imageLongDescription, sdf.format( timestamp ), ftpUser, ftpPassword, imageData.fileSize ); + imageData.imageLongDescription, sdf.format( timestamp ), ftpUser, imageData.fileSize ); } public String getUUID() diff --git a/src/main/java/org/openslx/imagemaster/ftp/ImageProcessor.java b/src/main/java/org/openslx/imagemaster/ftp/ImageProcessor.java index 20772ff..a9a7fc4 100644 --- a/src/main/java/org/openslx/imagemaster/ftp/ImageProcessor.java +++ b/src/main/java/org/openslx/imagemaster/ftp/ImageProcessor.java @@ -43,8 +43,6 @@ public class ImageProcessor DbImage.delete( dbImage.UUID ); log.info( "Deleted dbimage from db: " + dbImage.UUID + " due to timeout"); } else { - log.info( "Added user '" + dbImage.ftpUser + "' to list again." ); - // add image to process list again ImageData imageData = new ImageData( dbImage.UUID, dbImage.imageVersion, dbImage.imageName, dbImage.imageCreateTime.getTime(), dbImage.imageUpdateTime.getTime(), dbImage.imageOwner, dbImage.contentOperatingSystem, dbImage.isValid, dbImage.isDeleted, dbImage.shortDescription, dbImage.longDescription, dbImage.fileSize ); images.put( dbImage.ftpUser, imageData ); @@ -105,6 +103,13 @@ public class ImageProcessor public static void addImageDataToProcess( ImageData imageData, String username, String password ) throws ImageDataException { log.info( "Adding image to process list: " + imageData.imageName + ", submitted by " + username ); + + if ( imageData.uuid == null || imageData.imageName == null + || imageData.imageOwner == null || imageData.conentOperatingSystem == null + || imageData.imageShortDescription == null + || imageData.imageLongDescription == null ) { + throw new ImageDataException(ImageDataError.INVALID_DATA, "Missing arguments."); + } if ( imageData.uuid.isEmpty() || imageData.imageName.isEmpty() || imageData.imageOwner.isEmpty() || imageData.conentOperatingSystem.isEmpty() @@ -115,23 +120,13 @@ public class ImageProcessor if (!imageData.uuid.matches( "^[0-9a-f]{8}\\-[0-9a-f]{4}\\-[0-9a-f]{4}\\-[0-9a-f]{4}\\-[0-9a-f]{12}$" )) { throw new ImageDataException(ImageDataError.INVALID_DATA, "UUID not valid."); - } else if (!imageData.imageName.matches( "^[a-zA-Z0-9_\\-]{5,50}$" )) { + } else if (imageData.imageName.length() < 5 || imageData.imageName.length() > 50) { throw new ImageDataException(ImageDataError.INVALID_DATA, "ImageName not valid. (Length must be 5 to 50)"); } else if (DbUser.getUserIdByName( imageData.imageOwner ) != 0) { throw new ImageDataException(ImageDataError.INVALID_DATA, "ImageOwner not valid."); - } else if (!imageData.conentOperatingSystem.matches( "^[\\w][-0-9a-zA-Z]{3,20}$" )) { - throw new ImageDataException(ImageDataError.INVALID_DATA, "ContentOperatingSystem not valid. (Length must be 3 to 20)"); - } else if (!imageData.imageShortDescription.matches( "^[-\\w!\"§$%&/()=?+*#'^]$" )) { - throw new ImageDataException(ImageDataError.INVALID_DATA, "ImageShortDescription is not valid."); - } else if (!imageData.imageLongDescription.matches( "^[-\\w!\"§$%&/()=?+*#'^]$" )) { - throw new ImageDataException(ImageDataError.INVALID_DATA, "ImageLongDescription is not valid."); } else if ( imageData.fileSize <= 0 ) { throw new ImageDataException(ImageDataError.INVALID_DATA, "Filesize needs to be greater than 0."); - } - - - // TODO: check some more regex - + } if ( DbImage.exists( imageData ) ) { throw new ImageDataException( ImageDataError.INVALID_DATA, "Image with this UUID is already existing." ); diff --git a/src/main/java/org/openslx/imagemaster/ftp/MasterFtplet.java b/src/main/java/org/openslx/imagemaster/ftp/MasterFtplet.java index ce4a2e6..c514f5e 100644 --- a/src/main/java/org/openslx/imagemaster/ftp/MasterFtplet.java +++ b/src/main/java/org/openslx/imagemaster/ftp/MasterFtplet.java @@ -1,9 +1,6 @@ package org.openslx.imagemaster.ftp; import java.io.IOException; -import java.util.Iterator; -import java.util.Map; -import java.util.Map.Entry; import org.apache.ftpserver.ftplet.FtpException; import org.apache.ftpserver.ftplet.FtpReply; @@ -14,7 +11,6 @@ import org.apache.ftpserver.ftplet.FtpletContext; import org.apache.ftpserver.ftplet.FtpletResult; import org.apache.log4j.Logger; import org.openslx.imagemaster.App; -import org.openslx.imagemaster.ftp.MasterFtpServer.Infos; import org.openslx.imagemaster.serversession.ServerSessionManager; public class MasterFtplet implements Ftplet -- cgit v1.2.3-55-g7522