生成验证码

@RestController
@Api(value = "公共接口",description = "公共接口")
public class CommonController {

private static Logger logger = LogManager.getLogger(CommonController.class);

/**
* 生成验证码
* @param request
* @param response
*/
@ApiOperation(value = "生成验证码")
@GetMapping("/captcha")
public void generateImg(HttpServletRequest request,HttpServletResponse response) {
// 设置相应类型,告诉浏览器输出的内容为图片
response.setContentType("image/jpeg");
// 不缓存此内容
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expire", 0);
try {
StringBuffer code = new StringBuffer();
BufferedImage image = CaptchaUtil.getInstance().genRandomCodeImage(code);
request.getSession().removeAttribute(ConstParams.KEY_CAPTCHA);
request.getSession().setAttribute(ConstParams.KEY_CAPTCHA, code.toString().toLowerCase());
// 将内存中的图片通过流动形式输出到客户端
ImageIO.write(image, "JPEG", response.getOutputStream());
logger.info("生成验证码:"+code.toString()+" session:"+request.getSession().getId());
} catch (Exception e) {
logger.error("生成验证码失败",e);
}
}
}
posted @ 2019-11-25 16:04  猿码哥  阅读(120)  评论(0编辑  收藏  举报