diff options
author | Nils Schwabe | 2014-05-09 18:28:59 +0200 |
---|---|---|
committer | Nils Schwabe | 2014-05-09 18:28:59 +0200 |
commit | d3a11c39d46f420d832393e10c40d58601a668c9 (patch) | |
tree | eab7bba67200fe91e984946d1d963a94cdb3c7c4 /src/main/java/org | |
parent | Forgot to commit some files. (diff) | |
download | masterserver-d3a11c39d46f420d832393e10c40d58601a668c9.tar.gz masterserver-d3a11c39d46f420d832393e10c40d58601a668c9.tar.xz masterserver-d3a11c39d46f420d832393e10c40d58601a668c9.zip |
Improve ImageProcessor functionallity (and added some regex)
Diffstat (limited to 'src/main/java/org')
-rw-r--r-- | src/main/java/org/openslx/imagemaster/ftp/ImageProcessor.java | 32 | ||||
-rw-r--r-- | src/main/java/org/openslx/imagemaster/server/ApiServer.java | 6 |
2 files changed, 25 insertions, 13 deletions
diff --git a/src/main/java/org/openslx/imagemaster/ftp/ImageProcessor.java b/src/main/java/org/openslx/imagemaster/ftp/ImageProcessor.java index 782d1ff..ffb7e2b 100644 --- a/src/main/java/org/openslx/imagemaster/ftp/ImageProcessor.java +++ b/src/main/java/org/openslx/imagemaster/ftp/ImageProcessor.java @@ -11,6 +11,8 @@ import org.openslx.imagemaster.Globals; import org.openslx.imagemaster.Globals.PropInt; import org.openslx.imagemaster.db.DbImage; import org.openslx.imagemaster.thrift.iface.ImageData; +import org.openslx.imagemaster.thrift.iface.ImageDataError; +import org.openslx.imagemaster.thrift.iface.ImageDataException; public class ImageProcessor { @@ -102,32 +104,41 @@ public class ImageProcessor * * @param imageData * the data for the image to add - * @return false if submit fails + * @exception ImageDataException If the imagedata contains errors */ - public static boolean addImageDataToProcess( ImageData imageData, String username ) + public static void addImageDataToProcess( ImageData imageData, String username ) throws ImageDataException { log.info( "Adding image to process list: " + imageData.imageName + ", submitted by " + username ); if ( imageData.uuid.isEmpty() || imageData.imageName.isEmpty() || imageData.imageOwner.isEmpty() || imageData.conentOperatingSystem.isEmpty() || imageData.imageShortDescription.isEmpty() - || imageData.imageLongDescription.isEmpty() - || imageData.fileSize == 0) { - return false; + || imageData.imageLongDescription.isEmpty() ) { + throw new ImageDataException(ImageDataError.INVALID_DATA, "Missing arguments."); } if (!imageData.uuid.matches( "^[0-9a-f]{8}\\-[0-9a-f]{4}\\-[0-9a-f]{4}\\-[0-9a-f]{4}\\-[0-9a-f]{12}$" )) { - log.debug("UUID not valid"); - return false; + throw new ImageDataException(ImageDataError.INVALID_DATA, "UUID not valid."); } else if (!imageData.imageName.matches( "^[a-zA-Z0-9_\\-]{5,50}$" )) { - log.debug("ImageName not valid"); - return false; + throw new ImageDataException(ImageDataError.INVALID_DATA, "ImageName not valid. (Length must be 5 to 50)"); + } else if (false) { // TODO: check imageowner + 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 ) ) { - return false; + throw new ImageDataException( ImageDataError.INVALID_DATA, "Image with this UUID is already existing." ); } // if everything went fine, add image to db @@ -135,7 +146,6 @@ public class ImageProcessor // and to processinglist images.put( username, imageData ); - return true; } /** diff --git a/src/main/java/org/openslx/imagemaster/server/ApiServer.java b/src/main/java/org/openslx/imagemaster/server/ApiServer.java index 8dd72f8..53ddc71 100644 --- a/src/main/java/org/openslx/imagemaster/server/ApiServer.java +++ b/src/main/java/org/openslx/imagemaster/server/ApiServer.java @@ -110,9 +110,11 @@ public class ApiServer return null; } - if ( !ImageProcessor.addImageDataToProcess( imageDescription, ftpCredentials.username ) ) { + try { + ImageProcessor.addImageDataToProcess( imageDescription, ftpCredentials.username ); + } catch (ImageDataException e) { App.ftpServer.removeUser( serverSessionId ); - throw new ImageDataException( ImageDataError.INVALID_DATA, "ImageData is not valid." ); + throw new ImageDataException( ImageDataError.INVALID_DATA, e.getMessage() ); } return ftpCredentials; |