Advertisement
Filosss

Untitled

May 26th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.70 KB | None | 0 0
  1. package app.controller;
  2.  
  3. import app.controller.dao.AjaxResponseBody;
  4. import app.controller.dao.LoginInput;
  5. import app.controller.services.CryptoService;
  6. import app.controller.services.ICookieService;
  7. import app.controller.services.ICryptoService;
  8. import app.database.entities.Activation;
  9. import app.database.entities.User;
  10. import app.database.infrastructure.IActivationRepository;
  11. import app.database.infrastructure.IRepositoryUser;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.http.ResponseEntity;
  14. import org.springframework.stereotype.Controller;
  15. import org.springframework.ui.Model;
  16. import org.springframework.web.bind.annotation.*;
  17.  
  18. import javax.servlet.http.HttpServletRequest;
  19. import javax.servlet.http.HttpServletResponse;
  20.  
  21. @Controller
  22. public class LoginController {
  23.  
  24. @Autowired
  25. IRepositoryUser service;
  26.  
  27. @GetMapping("disconnect")
  28. public String disconnect(HttpServletRequest request, HttpServletResponse response, @ModelAttribute(name = "input") LoginInput user) {
  29. cookieService.setConfig(request, response);
  30. cookieService.disconnect();
  31. return REDIRECT_LOGIN;
  32. }
  33.  
  34. @GetMapping("/Login")
  35. public String start(HttpServletRequest request, HttpServletResponse response, Model model) {
  36. cookieService.setConfig(request, response);
  37. if (cookieService.isConnected()) return "redirect:/home";
  38. cookieService.createCookie();
  39. model.addAttribute("LoginInput", new LoginInput());
  40. return "Login";
  41. }
  42.  
  43. @GetMapping("/activation")
  44. public String activation(@RequestParam(name = "code") String code) {
  45. activationRepository.deleteByCode(code);
  46. return "redirect:/Login";
  47. }
  48.  
  49. @PostMapping(value = "/goToHome")
  50. public String auth(HttpServletRequest request, HttpServletResponse response, @ModelAttribute LoginInput user) {
  51.  
  52.  
  53. User userDatabase = service.findByUsername(user.getUsername());
  54.  
  55. if (userDatabase == null) return REDIRECT_LOGIN;
  56. if (userDatabase.getUsername().equals(user.getUsername()) && cryptoService.decrypt(userDatabase.getPassword()).equals(user.getPassword())) {
  57. cookieService.setConfig(request, response);
  58. cookieService.setCookie(user.getUsername(), user.isRemainConnected());
  59. return "redirect:/home";
  60. }
  61. return REDIRECT_LOGIN;
  62. }
  63.  
  64. @PostMapping("/api/login")
  65. @ResponseBody
  66. public ResponseEntity<AjaxResponseBody> getMessage(@RequestBody LoginInput user) {
  67. AjaxResponseBody result = new AjaxResponseBody();
  68. User userDatabase = service.findByUsername(user.getUsername());
  69. if (userDatabase != null && matchUser(userDatabase, user, cryptoService)) {
  70. Activation activation = activationRepository.findByEmail(userDatabase.getEmail());
  71. if (activation == null) {
  72. result.setMsg("Corect");
  73. return ResponseEntity.ok(result);
  74. } else {
  75. result.setMsg("email");
  76. return ResponseEntity.ok(result);
  77. }
  78.  
  79. }
  80. result.setMsg("Your password or username is wrong!");
  81. return ResponseEntity.ok(result);
  82. }
  83.  
  84.  
  85. private ICryptoService cryptoService = new CryptoService();
  86.  
  87. @Autowired
  88. IActivationRepository activationRepository;
  89.  
  90. @Autowired
  91. private ICookieService cookieService;
  92. private static final String REDIRECT_LOGIN = "redirect:/Login";
  93.  
  94.  
  95. private static boolean matchUser(User user, LoginInput input, ICryptoService service) {
  96. return user.getUsername().equals(input.getUsername()) && service.decrypt(user.getPassword()).equals(input.getPassword());
  97. }
  98.  
  99.  
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement