VerifyCodeFrontController.java 2.94 KB
package com.lhcredit.project.webbusiness.controller;

import com.lhcredit.common.utils.VerifyCodeUtils;
import com.lhcredit.framework.web.controller.BaseController;
import com.lhcredit.framework.web.domain.ResponseVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

/**
 * 验证码
 * @author zhaobh
 *
 */
@RequestMapping("/web/web_verifyCodeFrontController")
@Controller
public class VerifyCodeFrontController extends BaseController {

//	private static final Logger logger = LoggerFactory.getLogger(VerifyCodeFrontController.class);

	/**
	 * 登录/注册- 获取验证码图片流zhaobh
	 * @param request
	 * @param response
	 * @throws IOException
	 */
//	@DevelopingLogAnnotation(interfaceName="web_verifyCodeController/web_getImage.form")
	@RequestMapping("/web_getImage.form")
	public void getImage(HttpServletRequest request, HttpServletResponse response) throws IOException{
		response.setHeader("Pragma", "No-cache"); 
	    response.setHeader("Cache-Control", "no-cache"); 
        response.setDateHeader("Expires", 0); 
        response.setContentType("image/jpeg"); 
           
        //生成随机字串 
        String verifyCode = VerifyCodeUtils.generateVerifyCode(4);
        //存入会话session 
        HttpSession session = request.getSession(true);
        //删除以前的
        //session.removeAttribute("verCode");
        session.setAttribute("verCode", verifyCode.toLowerCase()); 
        
        //生成图片 
        int w = 100, h = 30;   
        VerifyCodeUtils.outputImage(w, h, response.getOutputStream(), verifyCode);
	}
	
	/**
	 * 登录/注册- 验证输入验证码是否正确 zhaobh
	 * @param request
	 * @param response 
	 * @param code  必传参数
	 * @throws IOException
	 */
//	@DevelopingLogAnnotation(interfaceName="web_verifyCodeController/web_testCode.form")
	@RequestMapping("/web_testCode.form")
	@ResponseBody
	public ResponseVo testCode(HttpServletRequest request, HttpServletResponse response, String code) throws IOException{

		ResponseVo responseVo=new ResponseVo("5000","验证码输入错误",null);
		//boolean success = true;

        try {
			String returnCode="2000";
			String msg = "验证码输入正确";
			HttpSession session = request.getSession(true);
			String verCode = session.getAttribute("verCode").toString();
			if (!verCode.toLowerCase().equals(code.toLowerCase())) {
				//success = false;
				returnCode="2010";
				msg = "验证码输入错误";
			}
			responseVo.setCode(returnCode);
			responseVo.setMsg(msg);

		} catch (Exception e) {
			e.printStackTrace();
		}
        return responseVo;
	}
}