KaptchaConfigController.java 1.9 KB
package com.thinkgem.jeesite.common.web;

import com.google.code.kaptcha.Producer;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.IOException;

/**
 * @author
 * @time 2019-10-22 15:51
 */
@Controller
public class KaptchaConfigController {

    @Resource
    private Producer producer;

    @RequestMapping("/servlet/kaptcha")
    public void number(HttpServletRequest request,HttpServletResponse response) throws IOException {
        response.setHeader("Cache-Control", "no-store, no-cache");
        response.setContentType("image/jpeg");

        //生成文字验证码
        String text = producer.createText();

        //数字相加
        String s1 = text.substring(0, 1);
        String s2 = text.substring(1, 2);
        int count = Integer.valueOf(s1).intValue() + Integer.valueOf(s2).intValue();
        request.getSession().setAttribute("checkCode", count);
    //    request.getSession().setAttribute("lockUser", 0);

        //生成图片验证码
        BufferedImage image = producer.createImage(s1 + "+" + s2 + "=?");
        ServletOutputStream out = response.getOutputStream();
        ImageIO.write(image, "jpg", out);
    }

    @RequestMapping("/servlet/ValidateKaptcha")
    @ResponseBody
    public boolean ValidateKaptcha(HttpServletRequest request,String validateCode) throws IOException {
        boolean flag = false;
        int code = Integer.parseInt(validateCode);
        int checkCode = (int)request.getSession().getAttribute("checkCode");
        if (code==checkCode){
            flag = true;
        }
        return flag;
    }
}