Login controller:logincontroller

From , 5 Years ago, written in Java, viewed 193 times.
URL https://pastebin.vip/view/ab541d87
  1. package com.liang.bike.controller.login;
  2.  
  3. import javax.annotation.Resource;
  4. import javax.imageio.ImageIO;
  5. import javax.servlet.ServletOutputStream;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import javax.servlet.http.HttpSession;
  9.  
  10. import com.alibaba.fastjson.JSONObject;
  11. import com.google.code.kaptcha.Constants;
  12. import com.google.code.kaptcha.Producer;
  13. import com.liang.bike.bean.base.UserBase;
  14. import com.liang.bike.service.rent.IRentBikeService;
  15. import com.liang.bike.service.user.IUserService;
  16. import org.apache.shiro.SecurityUtils;
  17. import org.apache.shiro.authc.UsernamePasswordToken;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.stereotype.Controller;
  20. import org.springframework.web.bind.annotation.RequestMapping;
  21. import org.springframework.web.bind.annotation.RequestMethod;
  22. import org.springframework.web.bind.annotation.RequestParam;
  23. import org.springframework.web.bind.annotation.ResponseBody;
  24. import org.springframework.web.multipart.MultipartFile;
  25. import org.springframework.web.servlet.ModelAndView;
  26.  
  27. import java.awt.image.BufferedImage;
  28. import java.io.IOException;
  29.  
  30. /**
  31.  * Created by Administrator on 2017/3/2.
  32.  */
  33. @Controller
  34. @RequestMapping("/login")
  35. public class LoginController {
  36.  
  37.     @Resource
  38.     private Producer kaptchaProducer;
  39.  
  40.     @Autowired
  41.     private IRentBikeService rentBikeService;
  42.  
  43.     @Autowired
  44.     private IUserService userService;
  45.  
  46.     /**
  47.      * 跳转到登录页面
  48.      *
  49.      * @return login.jsp
  50.      */
  51.     @RequestMapping(value = "/loginTurn")
  52.     public String loginTurn() {
  53.         return "user/login";
  54.     }
  55.  
  56.     /**
  57.      * 获取验证码图片
  58.      *
  59.      * @param request
  60.      * @param response
  61.      * @return
  62.      * @throws java.io.IOException Created        2017年1月17日 下午5:07:28
  63.      * @author ccg
  64.      */
  65.     @RequestMapping("/getkaptchaCode")
  66.     public ModelAndView getKaptchaCode(HttpServletRequest request, HttpServletResponse response) throws IOException {
  67.         HttpSession session = request.getSession();
  68.  
  69.         response.setDateHeader("Expires", 0);
  70.         response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
  71.         response.addHeader("Cache-Control", "post-check=0, pre-check=0");
  72.         response.setHeader("Pragma", "no-cache");
  73.         response.setContentType("image/jpeg");
  74.  
  75.         //生成验证码文本
  76.         String capText = kaptchaProducer.createText();
  77.         session.setAttribute(Constants.KAPTCHA_SESSION_KEY, capText);
  78.         System.out.println("生成验证码文本====" + capText);
  79.         //利用生成的字符串构建图片
  80.         BufferedImage bi = kaptchaProducer.createImage(capText);
  81.         ServletOutputStream out = response.getOutputStream();
  82.         ImageIO.write(bi, "jpg", out);
  83.  
  84.         try {
  85.             out.flush();
  86.         } finally {
  87.             out.close();
  88.         }
  89.         return null;
  90.     }
  91.  
  92.     /**
  93.      * check:ajax异步校验验证码. <br/>
  94.      *
  95.      * @param request
  96.      * @return 校验结果
  97.      * @author
  98.      */
  99.     @RequestMapping(value = "/check", method = RequestMethod.POST)
  100.     @ResponseBody
  101.     public JSONObject loginCheck(HttpServletRequest request, String kaptcha) {
  102.         JSONObject json = new JSONObject();
  103.         boolean kaptchaFlag = this.checkKaptcha(request, kaptcha);
  104.         json.put("kaptchaFlag", kaptchaFlag);
  105.         return json;
  106.     }
  107.  
  108.     //校验验证码是否正确
  109.     public boolean checkKaptcha(HttpServletRequest request, String kaptcha) {
  110.         String kaptchaExpected = (String) request.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY);
  111.         System.out.println("kaptcha = [" + kaptcha + "]");
  112.         boolean kaptchaFlag = false;
  113.         if (kaptcha != null && kaptcha.equals(kaptchaExpected)) {
  114.             kaptchaFlag = true;
  115.         }
  116.         return kaptchaFlag;
  117.     }
  118.  
  119.     /**
  120.      * login:ajax异步校验登录请求. <br/>
  121.      *
  122.      * @param request
  123.      * @return 校验结果
  124.      * @author
  125.      */
  126.     @RequestMapping(value = "/login", method = RequestMethod.POST)
  127.     @ResponseBody
  128.     public JSONObject login(/*@RequestParam(value = "file", required = false) MultipartFile file,*/ HttpServletRequest request, String userPhone, String kaptcha) {
  129.         //String fileName = file.getOriginalFilename();
  130.         String path = request.getSession().getServletContext().getRealPath("login");
  131.         //System.out.println(path + fileName);
  132.         JSONObject json = new JSONObject();
  133.         boolean kaptchaFlag = this.checkKaptcha(request, kaptcha);
  134.         json.put("kaptchaFlag", kaptchaFlag);
  135.         if (kaptchaFlag) {
  136.             UserBase userBase = new UserBase();
  137.             userBase.setUserPhone(userPhone);
  138.             UserBase user = rentBikeService.selectUserByUserPhone(userBase);
  139.             boolean userFlag = false;
  140.             if (user != null) {
  141.                 userFlag = true;
  142.                 request.getSession().setAttribute("user", user);
  143.                 SecurityUtils.getSubject().login(new UsernamePasswordToken(user.getUserPhone(), user.getPassword()));
  144.             }
  145.             json.put("userFlag", userFlag);
  146.         }
  147.         return json;
  148.     }
  149.  
  150.     /**
  151.      * 跳转到注册页面
  152.      *
  153.      * @return login.jsp
  154.      */
  155.     @RequestMapping(value = "/registerTurn")
  156.     public String registerTurn() {
  157.         return "user/register";
  158.     }
  159.  
  160.     /**
  161.      * login:ajax异步校验注册请求. <br/>
  162.      *
  163.      * @param request
  164.      * @return 校验结果
  165.      * @author
  166.      */
  167.     @RequestMapping(value = "/register", method = RequestMethod.POST)
  168.     @ResponseBody
  169.     public JSONObject register(HttpServletRequest request, UserBase userBase, String kaptcha) {
  170.         JSONObject json = new JSONObject();
  171.  
  172.         //校验验证码
  173.         Boolean kaptchaFlag = this.checkKaptcha(request, kaptcha);
  174.         json.put("kaptchaFlag", kaptchaFlag);
  175.         if (!kaptchaFlag) {
  176.             return json;
  177.         }
  178.  
  179.         //校验手机号是否存在
  180.         UserBase user = rentBikeService.selectUserByUserPhone(userBase);
  181.         boolean userFlag = Boolean.FALSE;
  182.         if (user != null) {
  183.             json.put("userFlag", userFlag);
  184.             return json;
  185.         }
  186.         userFlag = Boolean.TRUE;
  187.         json.put("userFlag", userFlag);
  188.  
  189.         //注册
  190.         Boolean registerFlag = Boolean.FALSE;
  191.         int i = userService.insertSelective(userBase);
  192.         if (i == 0) {
  193.             json.put("registerFlag", registerFlag);
  194.             return json;
  195.         }
  196.         registerFlag = Boolean.TRUE;
  197.         json.put("registerFlag", registerFlag);
  198.  
  199.         return json;
  200.     }
  201. }
  202.  

Reply to "Login controller:logincontroller"

Here you can reply to the paste above

captcha

https://burned.cc - Burn After Reading Website