UserController.java 2.4 KB

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