MesLoginController.java 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package com.jeesite.modules.mes.web;
  2. import com.jeesite.common.codec.DesUtils;
  3. import com.jeesite.common.config.Global;
  4. import com.jeesite.common.entity.Page;
  5. import com.jeesite.common.lang.ObjectUtils;
  6. import com.jeesite.common.lang.StringUtils;
  7. import com.jeesite.common.shiro.authc.FormToken;
  8. import com.jeesite.common.shiro.filter.FormFilter;
  9. import com.jeesite.common.web.BaseController;
  10. import com.jeesite.modules.file.service.FileUploadService;
  11. import com.jeesite.modules.mes.entity.MesApp;
  12. import com.jeesite.modules.mes.entity.MesDevice;
  13. import com.jeesite.modules.mes.service.MesAppService;
  14. import com.jeesite.modules.sys.entity.User;
  15. import com.jeesite.modules.sys.utils.UserUtils;
  16. import org.apache.shiro.authc.AuthenticationException;
  17. import org.apache.shiro.authz.annotation.RequiresPermissions;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.stereotype.Controller;
  20. import org.springframework.ui.Model;
  21. import org.springframework.validation.annotation.Validated;
  22. import org.springframework.web.bind.annotation.ModelAttribute;
  23. import org.springframework.web.bind.annotation.PostMapping;
  24. import org.springframework.web.bind.annotation.RequestMapping;
  25. import org.springframework.web.bind.annotation.ResponseBody;
  26. import javax.annotation.Resource;
  27. import javax.servlet.http.HttpServletRequest;
  28. import javax.servlet.http.HttpServletResponse;
  29. /**
  30. * 登录Controller
  31. * @author hzd
  32. * @version 2023-08-11
  33. */
  34. @Controller
  35. @RequestMapping(value = "${adminPath}/mes/mesLogin")
  36. public class MesLoginController extends BaseController {
  37. @RequestMapping(value = "login")
  38. @ResponseBody
  39. public void login(HttpServletRequest request, HttpServletResponse response) {
  40. try {
  41. String secretKey = Global.getConfig("shiro.loginSubmit.secretKey");
  42. String userCode = DesUtils.decode(request.getParameter("username"), secretKey);
  43. String userCode2 = DesUtils.encode("user2", secretKey);
  44. System.out.println("加密,usercode=" + userCode2);
  45. if(StringUtils.isEmpty(userCode)){
  46. throw new AuthenticationException("登录失败");
  47. }
  48. User user = UserUtils.getByLoginCode(userCode);
  49. if(ObjectUtils.isEmpty(user)){
  50. throw new AuthenticationException("登录失败");
  51. }
  52. if(!user.getStatus().equals("0")){
  53. throw new AuthenticationException("登录失败");
  54. }
  55. // FormToken 构造方法的三个参数:登录名、是否内部登录无条件、请求对象
  56. UserUtils.getSubject().login(new FormToken(user.getLoginCode(), true, request));
  57. System.out.println("登录成功,__sid=" + UserUtils.getSession().getId());
  58. FormFilter.onLoginSuccess(request, response);
  59. } catch (AuthenticationException e) {
  60. FormFilter.onLoginFailure(e, request, response);
  61. }
  62. }
  63. @RequestMapping(value = "qrcode")
  64. public String qrcode(String userCode, Model model) {
  65. User user = UserUtils.get(userCode);
  66. model.addAttribute("user", user);
  67. String secretKey = Global.getConfig("shiro.loginSubmit.secretKey");
  68. userCode = DesUtils.encode(user.getLoginCode(), secretKey);
  69. model.addAttribute("userCode", userCode);
  70. return "modules/sys/user/userQrcode";
  71. }
  72. }