package com.pollex.pam.web.rest; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.IOException; import javax.imageio.ImageIO; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.pollex.pam.business.service.util.VerifyCodeUtil; @RestController @RequestMapping("/api/login/validate") public class ConsultantLoginValidateResource { @GetMapping("/get_img_code") public void getVerifyCodeImg(HttpServletResponse response, HttpServletRequest request) { try { String code = VerifyCodeUtil.createcode(); BufferedImage image = VerifyCodeUtil.createimage(code); // Return to the client in a stream response.setContentType("image/jpeg"); // response.setContentType("image/bmp"); ByteArrayOutputStream bt = new ByteArrayOutputStream(); // Convert pictures to byte stream ImageIO.write(image, "jpeg", bt); ServletOutputStream outputStream = response.getOutputStream(); outputStream.write(bt.toByteArray()); HttpSession session = request.getSession(); session.setAttribute("img_code", code); } catch (IOException e) { e.printStackTrace(); } } @GetMapping("/verify_img_code/{imgCode}") public boolean verifyImgCode(HttpServletResponse response, HttpServletRequest request, @PathVariable String imgCode) { HttpSession session = request.getSession(); String sessionImpCode = (String) session.getAttribute("img_code"); if (!StringUtils.hasText(sessionImpCode) || !StringUtils.hasText(imgCode)) { return false; } if (imgCode.equals(sessionImpCode)) { return true; } return false; } }