From d58dd405acd083b54be3b8bd053c74b107da810e Mon Sep 17 00:00:00 2001 From: maxime Date: Tue, 28 May 2019 13:17:42 +0200 Subject: [PATCH 1/7] adding indetation formatting refractoring --- .../springproject/project/WebMvcConfig.java | 2 +- .../project/WebSecurityConfig.java | 31 ------------------- .../project/controller/BucketController.java | 3 -- .../project/controller/FrontController.java | 2 +- .../project/controller/GalleryController.java | 10 +++--- .../project/controller/UserController.java | 8 ++--- .../springproject/project/model/Image.java | 4 +-- .../springproject/project/model/User.java | 14 ++++----- .../project/model/bundle/ABundle.java | 4 +-- .../project/model/bundle/GoldBundle.java | 2 -- .../project/service/ImageService.java | 5 ++- .../springproject/project/service/Logger.java | 9 +++--- .../project/service/UserService.java | 8 +++-- .../service/aspect/ThrowerAccessAspect.java | 1 - 14 files changed, 35 insertions(+), 68 deletions(-) diff --git a/src/main/java/springproject/project/WebMvcConfig.java b/src/main/java/springproject/project/WebMvcConfig.java index f630f93..cac99d7 100644 --- a/src/main/java/springproject/project/WebMvcConfig.java +++ b/src/main/java/springproject/project/WebMvcConfig.java @@ -16,7 +16,7 @@ public class WebMvcConfig implements WebMvcConfigurer { @Bean public BCryptPasswordEncoder passwordEncoder() { - return new BCryptPasswordEncoder(); + return new BCryptPasswordEncoder(); } @Bean diff --git a/src/main/java/springproject/project/WebSecurityConfig.java b/src/main/java/springproject/project/WebSecurityConfig.java index b6e6d8b..f91c6dd 100644 --- a/src/main/java/springproject/project/WebSecurityConfig.java +++ b/src/main/java/springproject/project/WebSecurityConfig.java @@ -28,22 +28,6 @@ @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { - /* - TODO - Error cant find out the problem and btw the solution - - @Autowired - private ConnectionFactoryLocator connectionFactoryLocator; - - @Autowired - private UsersConnectionRepository usersConnectionRepository; - - @Autowired - private FacebookSignUpService facebookSignUpService; - */ - - - @Autowired private BCryptPasswordEncoder bCryptPasswordEncoder; @@ -85,21 +69,6 @@ protected void configure(HttpSecurity http) throws Exception { .accessDeniedPage("/access-denied"); } - /* - TODO - Same as before - - @Bean - public ProviderSignInController providerSignInController() { - ((InMemoryUsersConnectionRepository) usersConnectionRepository) - .setConnectionSignUp(facebookSignUpService); - - return new ProviderSignInController( - connectionFactoryLocator, - usersConnectionRepository, - new FacebookSignInAdapterService()); - }*/ - @Override public void configure(WebSecurity web) throws Exception { web diff --git a/src/main/java/springproject/project/controller/BucketController.java b/src/main/java/springproject/project/controller/BucketController.java index 89a0b4d..a5d2fe3 100644 --- a/src/main/java/springproject/project/controller/BucketController.java +++ b/src/main/java/springproject/project/controller/BucketController.java @@ -18,8 +18,6 @@ public class BucketController { @Autowired private UserService userService; - @Autowired - @GetMapping(value = "/bucket") public ModelAndView getBucket() { ModelAndView _new = new ModelAndView(); @@ -33,7 +31,6 @@ public RedirectView applyBucket(@PathVariable(value = "type") String type) { Authentication auth = SecurityContextHolder.getContext().getAuthentication(); User user = userService.findUserByEmail(auth.getName()); - user.setBundle(type); userService.validate(user); return new RedirectView("/home"); diff --git a/src/main/java/springproject/project/controller/FrontController.java b/src/main/java/springproject/project/controller/FrontController.java index 5191dfe..540cc51 100644 --- a/src/main/java/springproject/project/controller/FrontController.java +++ b/src/main/java/springproject/project/controller/FrontController.java @@ -15,7 +15,7 @@ public class FrontController { @Autowired private ImageService imageService; - @GetMapping(value= {"/", "/home"}) + @GetMapping(value = {"/", "/home"}) public ModelAndView homePage() { ModelAndView _new = new ModelAndView(); diff --git a/src/main/java/springproject/project/controller/GalleryController.java b/src/main/java/springproject/project/controller/GalleryController.java index 538170a..49fed53 100644 --- a/src/main/java/springproject/project/controller/GalleryController.java +++ b/src/main/java/springproject/project/controller/GalleryController.java @@ -97,14 +97,14 @@ public RedirectView deletePhoto(@PathVariable(value = "imgId") int id) { return new RedirectView("/gallery"); } - @GetMapping(value = "download/{imgId}", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE) + @GetMapping(value = "download/{imgId}", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE) @ResponseBody public FileSystemResource downloadPhoto(@PathVariable(value = "imgId") int id, - HttpServletResponse response) { + HttpServletResponse response) { Image img = imageService.getById(id); - File initialFile = new File(imageService.getImagePath() + img.getUser().getId() + "/" + img.getFilename()); - return new FileSystemResource(initialFile); - } + File initialFile = new File(imageService.getImagePath() + img.getUser().getId() + "/" + img.getFilename()); + return new FileSystemResource(initialFile); + } @GetMapping(value = "details/{imageId}") public ModelAndView detailsPhoto(@PathVariable(value = "imageId") int id) throws IOException { diff --git a/src/main/java/springproject/project/controller/UserController.java b/src/main/java/springproject/project/controller/UserController.java index 3e2604a..8d0d254 100644 --- a/src/main/java/springproject/project/controller/UserController.java +++ b/src/main/java/springproject/project/controller/UserController.java @@ -27,8 +27,8 @@ public ModelAndView login() { return modelAndView; } - @GetMapping(value="/registration") - public ModelAndView registration(){ + @GetMapping(value = "/registration") + public ModelAndView registration() { ModelAndView modelAndView = new ModelAndView(); User user = new User(); modelAndView.addObject("user", user); @@ -57,7 +57,7 @@ public ModelAndView createNewUser(@Valid User user, BindingResult bindingResult) return modelAndView; } - @PostMapping(value= "/update") + @PostMapping(value = "/update") public ModelAndView updateUser(@Valid User user, BindingResult bindingResult) { User userExists = userService.findUserByEmail(user.getEmail()); ModelAndView modelAndView = new ModelAndView(); @@ -75,7 +75,7 @@ public ModelAndView updateUser(@Valid User user, BindingResult bindingResult) { return modelAndView; } - @GetMapping(value="/profile") + @GetMapping(value = "/profile") public ModelAndView profile(Model model) { ModelAndView modelAndView = new ModelAndView(); diff --git a/src/main/java/springproject/project/model/Image.java b/src/main/java/springproject/project/model/Image.java index bc22279..0d511cc 100644 --- a/src/main/java/springproject/project/model/Image.java +++ b/src/main/java/springproject/project/model/Image.java @@ -13,7 +13,7 @@ @Data @Entity @Table(name = "image") -@EqualsAndHashCode(exclude="user") +@EqualsAndHashCode(exclude = "user") public class Image { @Id @@ -44,7 +44,7 @@ public class Image { @JsonIgnore @ManyToOne - @JoinColumn(name="user_id", nullable=false) + @JoinColumn(name = "user_id", nullable = false) private User user; public boolean isIsPublic() { diff --git a/src/main/java/springproject/project/model/User.java b/src/main/java/springproject/project/model/User.java index 441d357..5ac3236 100644 --- a/src/main/java/springproject/project/model/User.java +++ b/src/main/java/springproject/project/model/User.java @@ -15,7 +15,7 @@ @Data @Entity @Table(name = "\"user\"") -@EqualsAndHashCode(exclude="images") +@EqualsAndHashCode(exclude = "images") public class User { @Id @@ -44,16 +44,16 @@ public class User { @Column(name = "active") private int active; - @Column(name="city") - @NotEmpty(message= "Provide your city please") + @Column(name = "city") + @NotEmpty(message = "Provide your city please") private String city; - @Column(name= "username") - @NotEmpty(message= "Provide an username please") + @Column(name = "username") + @NotEmpty(message = "Provide an username please") private String username; @JsonIgnore - @Column(name= "bundle") + @Column(name = "bundle") private String bundle = "classic"; @JsonIgnore @@ -64,7 +64,7 @@ public class User { @JoinTable(name = "user_role", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "role_id")) private Set roles; - @OneToMany(mappedBy="user", cascade = CascadeType.ALL, orphanRemoval = true) + @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true) private Set images; private void bundleReset() { diff --git a/src/main/java/springproject/project/model/bundle/ABundle.java b/src/main/java/springproject/project/model/bundle/ABundle.java index 7e563f4..8833da7 100644 --- a/src/main/java/springproject/project/model/bundle/ABundle.java +++ b/src/main/java/springproject/project/model/bundle/ABundle.java @@ -15,8 +15,8 @@ public static ABundle create(String bundleName) { return new GoldBundle(); case "platinum": return new PlatinumBundle(); - default: - return null; + default: + return null; } } } diff --git a/src/main/java/springproject/project/model/bundle/GoldBundle.java b/src/main/java/springproject/project/model/bundle/GoldBundle.java index b7f73ae..f2f1af6 100644 --- a/src/main/java/springproject/project/model/bundle/GoldBundle.java +++ b/src/main/java/springproject/project/model/bundle/GoldBundle.java @@ -14,8 +14,6 @@ public String getName() { return "gold"; } - - @Override public boolean asFilterAccess(String filter) { return filters.contains(filter); diff --git a/src/main/java/springproject/project/service/ImageService.java b/src/main/java/springproject/project/service/ImageService.java index 67fc36a..c072ea0 100644 --- a/src/main/java/springproject/project/service/ImageService.java +++ b/src/main/java/springproject/project/service/ImageService.java @@ -34,7 +34,7 @@ public ImageService(ImageRepository imageRepository, } public Image getByUserAndFilename(int id, String name) { - return imageRepository.findByUserIdAndFilename(id, name); + return imageRepository.findByUserIdAndFilename(id, name); } public Image getById(int id) { @@ -117,8 +117,7 @@ public void removeImageById(int id) { imageRepository.flush(); } - public void updateImage(Image actual, Image newDetails) - { + public void updateImage(Image actual, Image newDetails) { actual.setTitle(newDetails.getTitle()); actual.setIsPublic(newDetails.isIsPublic()); actual.setDescription(newDetails.getDescription()); diff --git a/src/main/java/springproject/project/service/Logger.java b/src/main/java/springproject/project/service/Logger.java index 1a7819c..9877e61 100644 --- a/src/main/java/springproject/project/service/Logger.java +++ b/src/main/java/springproject/project/service/Logger.java @@ -14,16 +14,17 @@ private Logger() { try { FileWriter fw = new FileWriter(logFile); writer = new PrintWriter(fw, true); - } catch (IOException e) {} + } catch (IOException e) { + } } - public static synchronized Logger getInstance(){ - if(logger == null) + public static synchronized Logger getInstance() { + if (logger == null) logger = new Logger(); return logger; } - public void logCreate (String msg) { + public void logCreate(String msg) { writer.println("##############"); writer.println("Creating: " + msg); writer.println("##############"); diff --git a/src/main/java/springproject/project/service/UserService.java b/src/main/java/springproject/project/service/UserService.java index ec92695..06f7521 100644 --- a/src/main/java/springproject/project/service/UserService.java +++ b/src/main/java/springproject/project/service/UserService.java @@ -46,7 +46,9 @@ public List findByPartialEmail(String email) { return userRepository.findAllByEmailContaining(email); } - public void validate(User user) { userRepository.saveAndFlush(user); } + public void validate(User user) { + userRepository.saveAndFlush(user); + } public void saveUser(User user) { Logger logger = Logger.getInstance(); @@ -79,7 +81,9 @@ public List findEmailWithPackage(String name) { List users = userRepository.findByBundle(name); List emails = new ArrayList<>(); - for (User user : users) { emails.add(user.getEmail()); } + for (User user : users) { + emails.add(user.getEmail()); + } return emails; } diff --git a/src/main/java/springproject/project/service/aspect/ThrowerAccessAspect.java b/src/main/java/springproject/project/service/aspect/ThrowerAccessAspect.java index 9d43abf..c704565 100644 --- a/src/main/java/springproject/project/service/aspect/ThrowerAccessAspect.java +++ b/src/main/java/springproject/project/service/aspect/ThrowerAccessAspect.java @@ -1,6 +1,5 @@ package springproject.project.service.aspect; -import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterThrowing; import org.aspectj.lang.annotation.Aspect; import org.springframework.stereotype.Component; From 8db3ace4536415c5b7f2cf35d3176f8ce47a6e5a Mon Sep 17 00:00:00 2001 From: maxime Date: Tue, 28 May 2019 13:35:52 +0200 Subject: [PATCH 2/7] refracto from field injection to constructor based dependancy injection --- .../project/controller/BucketController.java | 6 +++++- .../project/controller/FrontController.java | 7 +++++-- .../project/controller/GalleryController.java | 16 +++++++++------- .../project/controller/RestAdminController.java | 9 +++++++-- .../project/controller/UserController.java | 6 +++++- 5 files changed, 31 insertions(+), 13 deletions(-) diff --git a/src/main/java/springproject/project/controller/BucketController.java b/src/main/java/springproject/project/controller/BucketController.java index a5d2fe3..3107cb2 100644 --- a/src/main/java/springproject/project/controller/BucketController.java +++ b/src/main/java/springproject/project/controller/BucketController.java @@ -15,9 +15,13 @@ @Controller public class BucketController { - @Autowired private UserService userService; + @Autowired + public BucketController(UserService userService) { + this.userService = userService; + } + @GetMapping(value = "/bucket") public ModelAndView getBucket() { ModelAndView _new = new ModelAndView(); diff --git a/src/main/java/springproject/project/controller/FrontController.java b/src/main/java/springproject/project/controller/FrontController.java index 540cc51..4e5621e 100644 --- a/src/main/java/springproject/project/controller/FrontController.java +++ b/src/main/java/springproject/project/controller/FrontController.java @@ -12,11 +12,14 @@ @Controller public class FrontController { - @Autowired private ImageService imageService; - @GetMapping(value = {"/", "/home"}) + @Autowired + public FrontController(ImageService imageService) { + this.imageService = imageService; + } + @GetMapping(value = {"/", "/home"}) public ModelAndView homePage() { ModelAndView _new = new ModelAndView(); diff --git a/src/main/java/springproject/project/controller/GalleryController.java b/src/main/java/springproject/project/controller/GalleryController.java index 49fed53..9ef3848 100644 --- a/src/main/java/springproject/project/controller/GalleryController.java +++ b/src/main/java/springproject/project/controller/GalleryController.java @@ -1,12 +1,10 @@ package springproject.project.controller; -import org.apache.tomcat.util.http.fileupload.IOUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.FileSystemResource; import org.springframework.http.MediaType; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.stereotype.Controller; import org.springframework.web.multipart.MultipartFile; @@ -21,23 +19,27 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.File; -import java.io.FileInputStream; import java.io.IOException; -import java.io.InputStream; import java.nio.file.Files; @Controller public class GalleryController { - @Autowired private ImageService imageService; - @Autowired private UserService userService; - @Autowired private ImageEditor imageEditor; + @Autowired + public GalleryController(ImageService imageService, + UserService userService, + ImageEditor imageEditor) { + this.imageEditor = imageEditor; + this.imageService = imageService; + this.userService = userService; + } + @GetMapping(value = "/gallery") public ModelAndView getGallery() { ModelAndView _new = new ModelAndView(); diff --git a/src/main/java/springproject/project/controller/RestAdminController.java b/src/main/java/springproject/project/controller/RestAdminController.java index e163434..dfacd3b 100644 --- a/src/main/java/springproject/project/controller/RestAdminController.java +++ b/src/main/java/springproject/project/controller/RestAdminController.java @@ -29,12 +29,17 @@ @Validated public class RestAdminController { - @Autowired private UserService userService; - @Autowired private ImageService imageService; + @Autowired + public RestAdminController(UserService userService, + ImageService imageService) { + this.userService = userService; + this.imageService = imageService; + } + @RequestMapping("/rest/user") public Object userInfo(@TokenConstraint @RequestHeader("token") String token, @RequestParam(value = "id", defaultValue = "0") int id) { diff --git a/src/main/java/springproject/project/controller/UserController.java b/src/main/java/springproject/project/controller/UserController.java index 8d0d254..d00b531 100644 --- a/src/main/java/springproject/project/controller/UserController.java +++ b/src/main/java/springproject/project/controller/UserController.java @@ -17,9 +17,13 @@ @Controller public class UserController { - @Autowired private UserService userService; + @Autowired + public UserController(UserService userService) { + this.userService = userService; + } + @GetMapping(value = "/login") public ModelAndView login() { ModelAndView modelAndView = new ModelAndView(); From dfe6943cd026fd81f5268c3c64f5d2717031d346 Mon Sep 17 00:00:00 2001 From: maxime Date: Tue, 28 May 2019 13:46:41 +0200 Subject: [PATCH 3/7] remove reduncant parameter & import in controllers --- .../project/controller/BucketController.java | 1 - .../project/controller/GalleryController.java | 2 +- .../controller/RestAdminController.java | 20 +------------------ 3 files changed, 2 insertions(+), 21 deletions(-) diff --git a/src/main/java/springproject/project/controller/BucketController.java b/src/main/java/springproject/project/controller/BucketController.java index 3107cb2..8103e7e 100644 --- a/src/main/java/springproject/project/controller/BucketController.java +++ b/src/main/java/springproject/project/controller/BucketController.java @@ -9,7 +9,6 @@ import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.view.RedirectView; import springproject.project.model.User; -import springproject.project.model.bundle.ABundle; import springproject.project.service.UserService; @Controller diff --git a/src/main/java/springproject/project/controller/GalleryController.java b/src/main/java/springproject/project/controller/GalleryController.java index 9ef3848..4edf574 100644 --- a/src/main/java/springproject/project/controller/GalleryController.java +++ b/src/main/java/springproject/project/controller/GalleryController.java @@ -109,7 +109,7 @@ public FileSystemResource downloadPhoto(@PathVariable(value = "imgId") int id, } @GetMapping(value = "details/{imageId}") - public ModelAndView detailsPhoto(@PathVariable(value = "imageId") int id) throws IOException { + public ModelAndView detailsPhoto(@PathVariable(value = "imageId") int id) { ModelAndView _new = new ModelAndView(); Authentication auth = SecurityContextHolder.getContext().getAuthentication(); diff --git a/src/main/java/springproject/project/controller/RestAdminController.java b/src/main/java/springproject/project/controller/RestAdminController.java index dfacd3b..58ba317 100644 --- a/src/main/java/springproject/project/controller/RestAdminController.java +++ b/src/main/java/springproject/project/controller/RestAdminController.java @@ -4,14 +4,12 @@ import java.io.IOException; import java.nio.file.Files; import java.util.Base64; -import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.util.FileCopyUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import springproject.project.model.Image; @@ -20,11 +18,6 @@ import springproject.project.service.UserService; import springproject.project.validator.TokenConstraint; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.validation.Valid; - @org.springframework.web.bind.annotation.RestController @Validated public class RestAdminController { @@ -125,10 +118,7 @@ public Object getUserBundle(@RequestParam(value = "name", defaultValue = "") Str produces = MediaType.IMAGE_JPEG_VALUE ) public ResponseEntity imageById(@TokenConstraint @RequestHeader("token") String token, - @RequestParam(value = "id", defaultValue = "0") int id, - HttpServletResponse response) throws IOException { - String path = imageService.getPathById(id); - + @RequestParam(value = "id", defaultValue = "0") int id) throws IOException { File serverFile = new File(imageService.getPathById(id)); byte[] bytes = Files.readAllBytes(serverFile.toPath()); @@ -137,12 +127,4 @@ public ResponseEntity imageById(@TokenConstraint @RequestHeader("token") .contentType(MediaType.IMAGE_JPEG) .body(bytes); } - - - public ResponseEntity key(HttpServletRequest request) { - if (request.getHeader("authorization") != "toto") { - return new ResponseEntity(HttpStatus.BAD_REQUEST); - } - return new ResponseEntity(HttpStatus.OK); - } } From 0f977d91445d4ca6d93621ee6e2a0992600f998c Mon Sep 17 00:00:00 2001 From: maxime Date: Tue, 28 May 2019 17:12:23 +0200 Subject: [PATCH 4/7] refracto of import and useless parameter on the overall code --- .../springproject/project/WebSecurityConfig.java | 10 ---------- .../project/controller/UserController.java | 2 +- .../java/springproject/project/model/User.java | 1 - .../project/model/bundle/ClassicBundle.java | 1 - .../project/model/bundle/GoldBundle.java | 1 - .../project/model/bundle/PlatinumBundle.java | 2 -- .../project/repository/ImageRepository.java | 2 -- .../project/repository/UserRepository.java | 1 - .../springproject/project/service/ImageEditor.java | 14 ++++++-------- .../project/service/ImageService.java | 10 +--------- .../project/validator/TokenValidator.java | 2 +- 11 files changed, 9 insertions(+), 37 deletions(-) diff --git a/src/main/java/springproject/project/WebSecurityConfig.java b/src/main/java/springproject/project/WebSecurityConfig.java index f91c6dd..9ced27a 100644 --- a/src/main/java/springproject/project/WebSecurityConfig.java +++ b/src/main/java/springproject/project/WebSecurityConfig.java @@ -2,7 +2,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; @@ -12,15 +11,6 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.web.util.matcher.AntPathRequestMatcher; -import springproject.project.service.FacebookSignUpService; -import springproject.project.service.FacebookSignInAdapterService; - -import org.springframework.social.connect.ConnectionFactoryLocator; -import org.springframework.social.connect.UsersConnectionRepository; -import org.springframework.social.connect.mem.InMemoryUsersConnectionRepository; -import org.springframework.social.connect.web.ProviderSignInController; - - import javax.sql.DataSource; diff --git a/src/main/java/springproject/project/controller/UserController.java b/src/main/java/springproject/project/controller/UserController.java index d00b531..bb16890 100644 --- a/src/main/java/springproject/project/controller/UserController.java +++ b/src/main/java/springproject/project/controller/UserController.java @@ -80,7 +80,7 @@ public ModelAndView updateUser(@Valid User user, BindingResult bindingResult) { } @GetMapping(value = "/profile") - public ModelAndView profile(Model model) { + public ModelAndView profile() { ModelAndView modelAndView = new ModelAndView(); Authentication auth = SecurityContextHolder.getContext().getAuthentication(); diff --git a/src/main/java/springproject/project/model/User.java b/src/main/java/springproject/project/model/User.java index 5ac3236..417b144 100644 --- a/src/main/java/springproject/project/model/User.java +++ b/src/main/java/springproject/project/model/User.java @@ -4,7 +4,6 @@ import lombok.Data; import lombok.EqualsAndHashCode; import org.hibernate.validator.constraints.Length; -import springproject.project.model.bundle.ClassicBundle; import springproject.project.model.bundle.ABundle; import javax.persistence.*; diff --git a/src/main/java/springproject/project/model/bundle/ClassicBundle.java b/src/main/java/springproject/project/model/bundle/ClassicBundle.java index 9c8b0ce..c927d42 100644 --- a/src/main/java/springproject/project/model/bundle/ClassicBundle.java +++ b/src/main/java/springproject/project/model/bundle/ClassicBundle.java @@ -1,6 +1,5 @@ package springproject.project.model.bundle; -import javax.persistence.DiscriminatorValue; import java.util.Arrays; import java.util.List; diff --git a/src/main/java/springproject/project/model/bundle/GoldBundle.java b/src/main/java/springproject/project/model/bundle/GoldBundle.java index f2f1af6..94fa5b1 100644 --- a/src/main/java/springproject/project/model/bundle/GoldBundle.java +++ b/src/main/java/springproject/project/model/bundle/GoldBundle.java @@ -1,6 +1,5 @@ package springproject.project.model.bundle; -import javax.persistence.DiscriminatorValue; import java.util.Arrays; import java.util.List; diff --git a/src/main/java/springproject/project/model/bundle/PlatinumBundle.java b/src/main/java/springproject/project/model/bundle/PlatinumBundle.java index bcc2eac..ef94b6b 100644 --- a/src/main/java/springproject/project/model/bundle/PlatinumBundle.java +++ b/src/main/java/springproject/project/model/bundle/PlatinumBundle.java @@ -1,7 +1,5 @@ package springproject.project.model.bundle; -import javax.persistence.DiscriminatorValue; - public class PlatinumBundle extends ABundle { private int files = 1000000; diff --git a/src/main/java/springproject/project/repository/ImageRepository.java b/src/main/java/springproject/project/repository/ImageRepository.java index 59d671c..f75ce4b 100644 --- a/src/main/java/springproject/project/repository/ImageRepository.java +++ b/src/main/java/springproject/project/repository/ImageRepository.java @@ -15,8 +15,6 @@ public interface ImageRepository extends JpaRepository { Image findById(int id); - Void deleteById(int id); - ArrayList findAllByIsPublic(boolean isPublic); ArrayList findAllByIsPublicAndDescriptionContaining(boolean isPublic, String filter); diff --git a/src/main/java/springproject/project/repository/UserRepository.java b/src/main/java/springproject/project/repository/UserRepository.java index b6efb79..2ae982e 100644 --- a/src/main/java/springproject/project/repository/UserRepository.java +++ b/src/main/java/springproject/project/repository/UserRepository.java @@ -4,7 +4,6 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; -import java.util.ArrayList; import java.util.List; @Repository("userRepository") diff --git a/src/main/java/springproject/project/service/ImageEditor.java b/src/main/java/springproject/project/service/ImageEditor.java index be8e4ef..04b0b1c 100644 --- a/src/main/java/springproject/project/service/ImageEditor.java +++ b/src/main/java/springproject/project/service/ImageEditor.java @@ -1,8 +1,6 @@ package springproject.project.service; -import marvin.gui.MarvinImagePanel; import marvin.image.MarvinImage; -import marvin.image.MarvinImageMask; import marvin.io.MarvinImageIO; import marvin.plugin.MarvinImagePlugin; import marvin.util.MarvinPluginLoader; @@ -16,21 +14,21 @@ public void apply(String path, String filter, int value) { sepiaAction(path, value); break; case "blur": - blurAction(path, value); + blurAction(path); break; case "grayscale": grayscaleAction(path); break; case "invert": - invertAction(path, value); + invertAction(path); break; case "pixelize": - pixelizeAction(path, value); + pixelizeAction(path); break; } } - private void invertAction(String path, int value) { + private void invertAction(String path) { MarvinImage image = MarvinImageIO.loadImage(path); MarvinImagePlugin imagePlugin = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.color.invert.jar"); @@ -40,7 +38,7 @@ private void invertAction(String path, int value) { MarvinImageIO.saveImage(image, path); } - private void pixelizeAction(String path, int value) { + private void pixelizeAction(String path) { MarvinImage image = MarvinImageIO.loadImage(path); MarvinImagePlugin imagePlugin = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.blur.pixelize.jar"); @@ -50,7 +48,7 @@ private void pixelizeAction(String path, int value) { MarvinImageIO.saveImage(image, path); } - private void blurAction(String path, int value) { + private void blurAction(String path) { MarvinImage image = MarvinImageIO.loadImage(path); MarvinImagePlugin imagePlugin = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.blur.gaussianBlur.jar"); diff --git a/src/main/java/springproject/project/service/ImageService.java b/src/main/java/springproject/project/service/ImageService.java index c072ea0..af116da 100644 --- a/src/main/java/springproject/project/service/ImageService.java +++ b/src/main/java/springproject/project/service/ImageService.java @@ -1,6 +1,5 @@ package springproject.project.service; -import org.springframework.core.io.Resource; import org.springframework.core.io.ResourceLoader; import org.springframework.util.FileCopyUtils; import org.springframework.web.multipart.MultipartFile; @@ -24,18 +23,12 @@ public class ImageService { private static String IMAGE_PATH = "user-images/"; private ImageRepository imageRepository; - private ResourceLoader resourceLoader; @Autowired - public ImageService(ImageRepository imageRepository, - ResourceLoader resourceLoader) { + public ImageService(ImageRepository imageRepository) { this.imageRepository = imageRepository; - this.resourceLoader = resourceLoader; } - public Image getByUserAndFilename(int id, String name) { - return imageRepository.findByUserIdAndFilename(id, name); - } public Image getById(int id) { return imageRepository.findById(id); @@ -85,7 +78,6 @@ public void createImageFromRest(byte[] file, Image image, String filename) throw destFile.getParentFile().mkdirs(); destFile.createNewFile(); - Path destPath = destFile.toPath(); FileCopyUtils.copy(file, destFile); image.setFilename(filename); imageRepository.save(image); diff --git a/src/main/java/springproject/project/validator/TokenValidator.java b/src/main/java/springproject/project/validator/TokenValidator.java index 25c908e..8f41709 100644 --- a/src/main/java/springproject/project/validator/TokenValidator.java +++ b/src/main/java/springproject/project/validator/TokenValidator.java @@ -6,7 +6,7 @@ public class TokenValidator implements ConstraintValidator { - String auth = "this-is-token"; + private String auth = "this-is-token"; @Override public void initialize(TokenConstraint token) { From e1fb98155e2b78d41c756929cef056b69face951 Mon Sep 17 00:00:00 2001 From: maxime Date: Wed, 29 May 2019 14:30:28 +0200 Subject: [PATCH 5/7] remove duplicate code to get authentification --- .../project/controller/BucketController.java | 5 +---- .../project/controller/GalleryController.java | 12 ++++-------- .../project/controller/RestAdminController.java | 1 - .../project/controller/UserController.java | 6 +----- .../springproject/project/service/ImageService.java | 1 - .../springproject/project/service/UserService.java | 7 +++++++ 6 files changed, 13 insertions(+), 19 deletions(-) diff --git a/src/main/java/springproject/project/controller/BucketController.java b/src/main/java/springproject/project/controller/BucketController.java index 8103e7e..e344da3 100644 --- a/src/main/java/springproject/project/controller/BucketController.java +++ b/src/main/java/springproject/project/controller/BucketController.java @@ -1,8 +1,6 @@ package springproject.project.controller; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; @@ -31,8 +29,7 @@ public ModelAndView getBucket() { @GetMapping(value = "/bucket/{type}") public RedirectView applyBucket(@PathVariable(value = "type") String type) { - Authentication auth = SecurityContextHolder.getContext().getAuthentication(); - User user = userService.findUserByEmail(auth.getName()); + User user = userService.getLoggedUser(); user.setBundle(type); userService.validate(user); diff --git a/src/main/java/springproject/project/controller/GalleryController.java b/src/main/java/springproject/project/controller/GalleryController.java index 4edf574..107faf9 100644 --- a/src/main/java/springproject/project/controller/GalleryController.java +++ b/src/main/java/springproject/project/controller/GalleryController.java @@ -44,8 +44,7 @@ public GalleryController(ImageService imageService, public ModelAndView getGallery() { ModelAndView _new = new ModelAndView(); - Authentication auth = SecurityContextHolder.getContext().getAuthentication(); - User user = userService.findUserByEmail(auth.getName()); + User user = userService.getLoggedUser(); Image image = new Image(); _new.addObject("image", image); @@ -58,8 +57,7 @@ public ModelAndView getGallery() { @PostMapping(value = "/upload") public RedirectView addPhoto(@Valid Image image, @RequestParam("file") MultipartFile file) { - Authentication auth = SecurityContextHolder.getContext().getAuthentication(); - User user = userService.findUserByEmail(auth.getName()); + User user = userService.getLoggedUser(); if (user.imageCounter() >= user.getBundleObject().numberOfFile()) return new RedirectView("gallery"); @@ -85,8 +83,7 @@ public RedirectView editPhoto(Image image) { @GetMapping(value = "delete/{imgId}") public RedirectView deletePhoto(@PathVariable(value = "imgId") int id) { - Authentication auth = SecurityContextHolder.getContext().getAuthentication(); - User user = userService.findUserByEmail(auth.getName()); + User user = userService.getLoggedUser(); Image image = imageService.getById(id); userService.deleteImage(user, image); @@ -112,8 +109,7 @@ public FileSystemResource downloadPhoto(@PathVariable(value = "imgId") int id, public ModelAndView detailsPhoto(@PathVariable(value = "imageId") int id) { ModelAndView _new = new ModelAndView(); - Authentication auth = SecurityContextHolder.getContext().getAuthentication(); - User user = userService.findUserByEmail(auth.getName()); + User user = userService.getLoggedUser(); Image image = imageService.getById(id); _new.addObject("image", image); diff --git a/src/main/java/springproject/project/controller/RestAdminController.java b/src/main/java/springproject/project/controller/RestAdminController.java index 58ba317..28a7f91 100644 --- a/src/main/java/springproject/project/controller/RestAdminController.java +++ b/src/main/java/springproject/project/controller/RestAdminController.java @@ -106,7 +106,6 @@ public Object addImage(@TokenConstraint @RequestHeader("token") String token, @RequestMapping(value = "/rest/bundle", produces = "application/json") public Object getUserBundle(@RequestParam(value = "name", defaultValue = "") String name) { - System.out.println("A request is received with: " + name); if (name.isEmpty()) return null; diff --git a/src/main/java/springproject/project/controller/UserController.java b/src/main/java/springproject/project/controller/UserController.java index bb16890..432a05c 100644 --- a/src/main/java/springproject/project/controller/UserController.java +++ b/src/main/java/springproject/project/controller/UserController.java @@ -2,14 +2,11 @@ import javax.validation.Valid; -import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import springproject.project.model.User; import springproject.project.service.UserService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.servlet.ModelAndView; @@ -83,8 +80,7 @@ public ModelAndView updateUser(@Valid User user, BindingResult bindingResult) { public ModelAndView profile() { ModelAndView modelAndView = new ModelAndView(); - Authentication auth = SecurityContextHolder.getContext().getAuthentication(); - User user = userService.findUserByEmail(auth.getName()); + User user = userService.getLoggedUser(); modelAndView.addObject("user", user); modelAndView.setViewName("user/profile"); diff --git a/src/main/java/springproject/project/service/ImageService.java b/src/main/java/springproject/project/service/ImageService.java index af116da..cd6315a 100644 --- a/src/main/java/springproject/project/service/ImageService.java +++ b/src/main/java/springproject/project/service/ImageService.java @@ -103,7 +103,6 @@ public Image findById(int id) { } public void removeImageById(int id) { - System.out.println("in delete method"); Image image = imageRepository.findById(id); imageRepository.delete(image); imageRepository.flush(); diff --git a/src/main/java/springproject/project/service/UserService.java b/src/main/java/springproject/project/service/UserService.java index 06f7521..514f166 100644 --- a/src/main/java/springproject/project/service/UserService.java +++ b/src/main/java/springproject/project/service/UserService.java @@ -1,5 +1,7 @@ package springproject.project.service; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; import springproject.project.model.Image; import springproject.project.model.Role; import springproject.project.model.User; @@ -50,6 +52,11 @@ public void validate(User user) { userRepository.saveAndFlush(user); } + public User getLoggedUser() { + Authentication auth = SecurityContextHolder.getContext().getAuthentication(); + return this.findUserByEmail(auth.getName()); + } + public void saveUser(User user) { Logger logger = Logger.getInstance(); From c70d100307ce0f5ea94e81bc546c89bb9d67cfee Mon Sep 17 00:00:00 2001 From: maxime Date: Wed, 29 May 2019 15:49:43 +0200 Subject: [PATCH 6/7] refracto code dupplication imageFilter --- .../project/service/ImageEditor.java | 65 ++++--------------- 1 file changed, 14 insertions(+), 51 deletions(-) diff --git a/src/main/java/springproject/project/service/ImageEditor.java b/src/main/java/springproject/project/service/ImageEditor.java index 04b0b1c..6ba4b54 100644 --- a/src/main/java/springproject/project/service/ImageEditor.java +++ b/src/main/java/springproject/project/service/ImageEditor.java @@ -9,71 +9,34 @@ @Service("imageEditor") public class ImageEditor { public void apply(String path, String filter, int value) { + MarvinImage image = MarvinImageIO.loadImage(path); + MarvinImagePlugin imagePlugin; + switch (filter) { case "sepia": - sepiaAction(path, value); + imagePlugin = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.color.sepia.jar"); + imagePlugin.setAttribute("hsIntensidade", value); break; case "blur": - blurAction(path); + imagePlugin = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.blur.gaussianBlur.jar"); break; case "grayscale": - grayscaleAction(path); + imagePlugin = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.color.grayScale.jar"); break; case "invert": - invertAction(path); + imagePlugin = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.color.invert.jar"); break; case "pixelize": - pixelizeAction(path); + imagePlugin = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.blur.pixelize.jar"); break; + default: + return; } + this.applyPlugin(path, image, imagePlugin); } - private void invertAction(String path) { - MarvinImage image = MarvinImageIO.loadImage(path); - MarvinImagePlugin imagePlugin = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.color.invert.jar"); - - imagePlugin.process(image, image); - image.update(); - - MarvinImageIO.saveImage(image, path); - } - - private void pixelizeAction(String path) { - MarvinImage image = MarvinImageIO.loadImage(path); - MarvinImagePlugin imagePlugin = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.blur.pixelize.jar"); - - imagePlugin.process(image, image); - image.update(); - - MarvinImageIO.saveImage(image, path); - } - - private void blurAction(String path) { - MarvinImage image = MarvinImageIO.loadImage(path); - MarvinImagePlugin imagePlugin = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.blur.gaussianBlur.jar"); - - imagePlugin.process(image, image); - image.update(); - - MarvinImageIO.saveImage(image, path); - } - - private void grayscaleAction(String path) { - MarvinImage image = MarvinImageIO.loadImage(path); - MarvinImagePlugin imagePlugin = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.color.grayScale.jar"); - - imagePlugin.process(image, image); - image.update(); - - MarvinImageIO.saveImage(image, path); - } - - private void sepiaAction(String path, int value) { - MarvinImage image = MarvinImageIO.loadImage(path); - MarvinImagePlugin imagePlugin = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.color.sepia.jar"); - - imagePlugin.setAttribute("hsIntensidade", value); - imagePlugin.process(image, image); + private void applyPlugin(String path, MarvinImage image, MarvinImagePlugin plugin) { + plugin.process(image, image); image.update(); MarvinImageIO.saveImage(image, path); From c57dcfb564386995d1535e06eca4d25a3ef993ae Mon Sep 17 00:00:00 2001 From: maxime Date: Wed, 29 May 2019 16:06:23 +0200 Subject: [PATCH 7/7] remove reduncant import in test --- src/test/java/springproject/project/PageTest.java | 7 ------- .../java/springproject/project/browser/BrowserTesting.java | 2 -- .../project/repository/ImageRepositoryTest.java | 3 --- src/test/java/springproject/project/rest/RestTest.java | 2 -- 4 files changed, 14 deletions(-) diff --git a/src/test/java/springproject/project/PageTest.java b/src/test/java/springproject/project/PageTest.java index 1b7e55a..c6e635b 100644 --- a/src/test/java/springproject/project/PageTest.java +++ b/src/test/java/springproject/project/PageTest.java @@ -1,8 +1,5 @@ package springproject.project; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.contains; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import org.junit.Test; @@ -10,14 +7,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.http.MediaType; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; -import springproject.project.service.UserService; -import java.beans.Transient; @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK) diff --git a/src/test/java/springproject/project/browser/BrowserTesting.java b/src/test/java/springproject/project/browser/BrowserTesting.java index f04b9a5..25ab935 100644 --- a/src/test/java/springproject/project/browser/BrowserTesting.java +++ b/src/test/java/springproject/project/browser/BrowserTesting.java @@ -1,7 +1,5 @@ package springproject.project.browser; - -import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/src/test/java/springproject/project/repository/ImageRepositoryTest.java b/src/test/java/springproject/project/repository/ImageRepositoryTest.java index ebc95c1..a96b233 100644 --- a/src/test/java/springproject/project/repository/ImageRepositoryTest.java +++ b/src/test/java/springproject/project/repository/ImageRepositoryTest.java @@ -22,9 +22,6 @@ public class ImageRepositoryTest { @Autowired private TestEntityManager entityManager; - @Autowired - private UserRepository userRepository; - @Autowired private ImageRepository imageRepository; diff --git a/src/test/java/springproject/project/rest/RestTest.java b/src/test/java/springproject/project/rest/RestTest.java index e936be8..c045eec 100644 --- a/src/test/java/springproject/project/rest/RestTest.java +++ b/src/test/java/springproject/project/rest/RestTest.java @@ -9,9 +9,7 @@ import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.Import; import org.springframework.http.HttpHeaders; -import org.springframework.security.test.context.support.WithMockUser; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;