diff --git a/mozen/src/main/java/mozen/business/IUserManager.java b/mozen/src/main/java/mozen/business/IUserManager.java index 68ab58890de09cf65af15355368eb6a44135d6a7..d2dc292334f5f136fe0a85e29efdc6cf18005fc7 100644 --- a/mozen/src/main/java/mozen/business/IUserManager.java +++ b/mozen/src/main/java/mozen/business/IUserManager.java @@ -15,7 +15,4 @@ public interface IUserManager { User getUserByUsername(String username); void setAdmin(Long id, User user) throws Exception; - - boolean resetPassword(String email); - boolean changePassword(String token, String password); } \ No newline at end of file diff --git a/mozen/src/main/java/mozen/business/LayerManager.java b/mozen/src/main/java/mozen/business/LayerManager.java index a5017073b9d1fc2f19be6c7e10462fa5081bd8b6..9d6461fe57b6713b0b2f23ccdec15e29b1a2ed13 100644 --- a/mozen/src/main/java/mozen/business/LayerManager.java +++ b/mozen/src/main/java/mozen/business/LayerManager.java @@ -1,8 +1,5 @@ package mozen.business; -import java.util.zip.CRC32; -import java.util.zip.Checksum; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; @@ -36,14 +33,12 @@ public class LayerManager implements ILayerManager{ throw new Exception("Unknown model"); if (!UserHelper.isAuthor(model.getAuthor(), user)) throw new Exception("Not the author"); - - Checksum crc32 = new CRC32(); - crc32.update(file.getBytes(), 0, file.getBytes().length); CustomLayer layer = new CustomLayer(); layer.setName(name); layer.setChecksum(Md5Utils.getMD5(file)); layer.setFile(file.getBytes()); + layer.setFileName(file.getOriginalFilename()); layer.setFileType(file.getContentType()); layer.setModel(model); diff --git a/mozen/src/main/java/mozen/business/ModelManager.java b/mozen/src/main/java/mozen/business/ModelManager.java index 349ad188bc724ef42ded9e03622fe75bacf8d636..cdb7f5fa8d5d4010aa620b5913cb27cf9d02deb8 100644 --- a/mozen/src/main/java/mozen/business/ModelManager.java +++ b/mozen/src/main/java/mozen/business/ModelManager.java @@ -86,6 +86,7 @@ public class ModelManager implements IModelManager { model.setChecksum(Md5Utils.getMD5(file)); model.setFile(file.getBytes()); + model.setFileName(file.getOriginalFilename()); model.setFileType(file.getContentType()); modelRepo.save(model); diff --git a/mozen/src/main/java/mozen/business/UserManager.java b/mozen/src/main/java/mozen/business/UserManager.java index c579f22f623ec15f83fd88ddfa0525e1d275358e..38eb22e4f36528a4e42972e6bad10c3049c181a2 100644 --- a/mozen/src/main/java/mozen/business/UserManager.java +++ b/mozen/src/main/java/mozen/business/UserManager.java @@ -54,18 +54,6 @@ public class UserManager implements IUserManager { else return null; } - @Override - public boolean resetPassword(String email) { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean changePassword(String token, String password) { - // TODO Auto-generated method stub - return false; - } - @Override public User getUserByUsername(String username) { return repo.findByUsername(username); diff --git a/mozen/src/main/java/mozen/model/CustomLayer.java b/mozen/src/main/java/mozen/model/CustomLayer.java index d6b35ce6fd3b794171ee2114fb9677e463e91290..721c54970f098bddcf7f757bc37d20a69e56dc24 100644 --- a/mozen/src/main/java/mozen/model/CustomLayer.java +++ b/mozen/src/main/java/mozen/model/CustomLayer.java @@ -33,6 +33,10 @@ public class CustomLayer implements Serializable{ @Column(columnDefinition="BLOB") private byte[] file; + @Basic + @Column + private String fileName; + @Basic @Column private String fileType; @@ -48,10 +52,11 @@ public class CustomLayer implements Serializable{ public CustomLayer() { } - public CustomLayer(Long id, String name, byte[] file, String fileType, String checksum, Model model) { + public CustomLayer(Long id, String name, byte[] file, String fileName, String fileType, String checksum, Model model) { this.id = id; this.name = name; this.file = file; + this.fileName = fileName; this.fileType = fileType; this.checksum = checksum; this.model = model; @@ -108,4 +113,13 @@ public class CustomLayer implements Serializable{ this.checksum = checksum; } + public String getFileName() { + return this.fileName; + } + + public void setFileName(String fileName) { + this.fileName = fileName; + } + + } \ No newline at end of file diff --git a/mozen/src/main/java/mozen/model/Model.java b/mozen/src/main/java/mozen/model/Model.java index 8ba18c82d10765501a1cf4dc63c4eb490dfc6e1f..077b0ba0759008e10a790945a34571bea401f405 100644 --- a/mozen/src/main/java/mozen/model/Model.java +++ b/mozen/src/main/java/mozen/model/Model.java @@ -88,6 +88,10 @@ public class Model implements Serializable{ @Column private String fileType; + @Basic + @Column + private String fileName; + @Basic @Column private String checksum; @@ -117,7 +121,7 @@ public class Model implements Serializable{ public Model() { } - public Model(Long id, String name, String shortDescription, String longDescription, Date added, Date lastModified, int votes, double performance, String performanceUnit, double performanceIndex, int parameterCount, byte[] file, String fileType, String checksum, boolean isVerified, User author, Set<Tag> tags, Set<CustomLayer> customLayers, Set<Comment> comments) { + public Model(Long id, String name, String shortDescription, String longDescription, Date added, Date lastModified, int votes, double performance, String performanceUnit, double performanceIndex, int parameterCount, byte[] file, String fileType, String fileName, String checksum, boolean isVerified, User author, Set<Tag> tags, Set<CustomLayer> customLayers, Set<Comment> comments) { this.id = id; this.name = name; this.shortDescription = shortDescription; @@ -131,6 +135,7 @@ public class Model implements Serializable{ this.parameterCount = parameterCount; this.file = file; this.fileType = fileType; + this.fileName = fileName; this.checksum = checksum; this.isVerified = isVerified; this.author = author; @@ -298,4 +303,13 @@ public class Model implements Serializable{ this.isVerified = isVerified; } + public String getFileName() { + return this.fileName; + } + + public void setFileName(String fileName) { + this.fileName = fileName; + } + + } \ No newline at end of file diff --git a/mozen/src/main/java/mozen/web/CustomLayerController.java b/mozen/src/main/java/mozen/web/CustomLayerController.java index 85678a6a7cf26e9a7ee7a459d1d9b35e7f147b46..ce3e2dfeebd792fe51d5a6cbc88238e1d655017c 100644 --- a/mozen/src/main/java/mozen/web/CustomLayerController.java +++ b/mozen/src/main/java/mozen/web/CustomLayerController.java @@ -5,9 +5,6 @@ import org.springframework.core.io.ByteArrayResource; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.security.authentication.AnonymousAuthenticationToken; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -19,6 +16,7 @@ import mozen.business.IUserManager; import mozen.model.CustomLayer; import mozen.messages.ResponseMessage; import mozen.model.User; +import mozen.utils.UserHelper; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -46,9 +44,8 @@ public class CustomLayerController { } catch (Exception e) { response.setError(true); response.setMessage(e.getMessage()); + return ResponseEntity.badRequest().body(response); } - - return ResponseEntity.ok(response); } @PostMapping("/upload") @@ -57,33 +54,21 @@ public class CustomLayerController { @RequestParam(value = "id", required = true) Long id, @RequestParam(value = "name", required = true) String name) { ResponseMessage response = new ResponseMessage(false, ""); - User user = getCurrentUser(); + User user = UserHelper.getCurrentUser(userManager); if(user == null) { response.setError(true); response.setMessage("User unknown"); - return ResponseEntity.ok(response); + return ResponseEntity.badRequest().body(response); } try { System.err.println("[MODEL CONTROLLER] layer file upload f:"+file.getName()+" n:"+name); layerManager.addLayerFile(file, id, name, user); + return ResponseEntity.ok(response); } catch (Exception e) { response.setError(true); response.setMessage(e.getMessage()); - } - - return ResponseEntity.ok(response); - } - - private User getCurrentUser() { - Authentication auth = SecurityContextHolder.getContext().getAuthentication(); - - if (!(auth instanceof AnonymousAuthenticationToken)) { - if (auth.getPrincipal() instanceof org.springframework.security.core.userdetails.User) return null; - String username = (String) auth.getPrincipal(); - return userManager.getUserByUsername(username); - } else { - return null; + return ResponseEntity.badRequest().body(response); } } } \ No newline at end of file diff --git a/mozen/src/main/java/mozen/web/ModelController.java b/mozen/src/main/java/mozen/web/ModelController.java index 0933527188064bc9d69cfde7b95d10caa140dde8..11d6b47bafbbbf602a02396667b2cce4596c52e8 100644 --- a/mozen/src/main/java/mozen/web/ModelController.java +++ b/mozen/src/main/java/mozen/web/ModelController.java @@ -63,13 +63,12 @@ public class ModelController { try { long modelId = modelManager.addModel(message, user).getId(); response.setMessage(Long.toString(modelId)); + return ResponseEntity.ok(response); } catch (Exception e) { response.setError(true); response.setMessage(e.getMessage()); return ResponseEntity.badRequest().body(response); } - - return ResponseEntity.ok(response); } @PutMapping("") @@ -84,13 +83,12 @@ public class ModelController { try { modelManager.updateModel(message, id, user); + return ResponseEntity.ok(response); } catch (Exception e) { response.setError(true); response.setMessage(e.getMessage()); return ResponseEntity.badRequest().body(response); } - - return ResponseEntity.ok(response); } @DeleteMapping("") @@ -105,13 +103,12 @@ public class ModelController { try { modelManager.removeModel(id, user); + return ResponseEntity.ok(response); } catch (Exception e) { response.setError(true); response.setMessage(e.getMessage()); return ResponseEntity.badRequest().body(response); } - - return ResponseEntity.ok(response); } @GetMapping("/setVerified") @@ -126,13 +123,12 @@ public class ModelController { try { modelManager.setVerified(id, user); + return ResponseEntity.ok(response); } catch (Exception e) { response.setError(true); response.setMessage(e.getMessage()); return ResponseEntity.badRequest().body(response); } - - return ResponseEntity.ok(response); } @GetMapping("/list") @@ -153,13 +149,12 @@ public class ModelController { try { System.err.println("[MODEL CONTROLLER] model file upload n:"+file.getName()+" id:"+id); modelManager.addModelFile(file, id, user); + return ResponseEntity.ok(response); } catch (Exception e) { response.setError(true); response.setMessage(e.getMessage()); return ResponseEntity.badRequest().body(response); } - - return ResponseEntity.ok(response); } @GetMapping("/download") diff --git a/mozen/src/main/resources/application.properties b/mozen/src/main/resources/application.properties index 8904fb7a6e3894b9a500295f6dc4695c0968b145..eb021a5f4350993619f1dd704a728cd33b308fc1 100644 --- a/mozen/src/main/resources/application.properties +++ b/mozen/src/main/resources/application.properties @@ -15,12 +15,7 @@ spring.jpa.database-platform=org.hibernate.dialect.H2Dialect #spring.datasource.driver-class-name=com.mysql.jdbc.Driver #spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect -spring.jackson.serialization.fail-on-empty-beans=false +spring.servlet.multipart.max-file-size=10GB +spring.servlet.multipart.max-request-size=10GB -spring.mail.host=ssl0.ovh.net -spring.mail.port=587 -spring.mail.username=boobook@gltronic.ovh -spring.mail.password=123456789 -spring.mail.properties.mail.smtp.auth=true -spring.mail.properties.mail.smtp.starttls.enable=true -spring.mail.test-connection=false \ No newline at end of file +spring.jackson.serialization.fail-on-empty-beans=false \ No newline at end of file