UserController.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package com.genersoft.iot.vmp.vmanager.user;
  2. import com.genersoft.iot.vmp.conf.security.SecurityUtils;
  3. import com.genersoft.iot.vmp.conf.security.dto.LoginUser;
  4. import com.genersoft.iot.vmp.service.IUserService;
  5. import io.swagger.annotations.Api;
  6. import io.swagger.annotations.ApiImplicitParam;
  7. import io.swagger.annotations.ApiImplicitParams;
  8. import io.swagger.annotations.ApiOperation;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.security.authentication.AuthenticationManager;
  11. import org.springframework.util.DigestUtils;
  12. import org.springframework.web.bind.annotation.*;
  13. import javax.security.sasl.AuthenticationException;
  14. @Api(tags = "用户管理")
  15. @CrossOrigin
  16. @RestController
  17. @RequestMapping("/api/user")
  18. public class UserController {
  19. @Autowired
  20. AuthenticationManager authenticationManager;
  21. @Autowired
  22. IUserService userService;
  23. @ApiOperation("登录")
  24. @ApiImplicitParams({
  25. @ApiImplicitParam(name = "username", value = "用户名", dataTypeClass = String.class),
  26. @ApiImplicitParam(name = "password", value = "密码(32位md5加密)", dataTypeClass = String.class),
  27. })
  28. @GetMapping("/login")
  29. public String login(String username, String password){
  30. LoginUser user = null;
  31. try {
  32. user = SecurityUtils.login(username, password, authenticationManager);
  33. } catch (AuthenticationException e) {
  34. e.printStackTrace();
  35. return "fail";
  36. }
  37. if (user != null) {
  38. return "success";
  39. }else {
  40. return "fail";
  41. }
  42. }
  43. @ApiOperation("修改密码")
  44. @ApiImplicitParams({
  45. @ApiImplicitParam(name = "username", value = "用户名", dataTypeClass = String.class),
  46. @ApiImplicitParam(name = "oldpassword", value = "旧密码(已md5加密的密码)", dataTypeClass = String.class),
  47. @ApiImplicitParam(name = "password", value = "新密码(未md5加密的密码)", dataTypeClass = String.class),
  48. })
  49. @PostMapping("/changePassword")
  50. public String changePassword(String oldpassword, String password){
  51. // 获取当前登录用户id
  52. String username = SecurityUtils.getUserInfo().getUsername();
  53. LoginUser user = null;
  54. try {
  55. user = SecurityUtils.login(username, oldpassword, authenticationManager);
  56. if (user != null) {
  57. int userId = SecurityUtils.getUserId();
  58. boolean result = userService.changePassword(userId, DigestUtils.md5DigestAsHex(password.getBytes()));
  59. if (result) {
  60. return "success";
  61. }
  62. }
  63. } catch (AuthenticationException e) {
  64. e.printStackTrace();
  65. }
  66. return "fail";
  67. }
  68. }