千家信息网

SpringBoot结合kaptcha验证码工具是怎样的

发表于:2025-01-26 作者:千家信息网编辑
千家信息网最后更新 2025年01月26日,本篇文章为大家展示了SpringBoot结合kaptcha验证码工具是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。首先,在pom.xml中加入kapt
千家信息网最后更新 2025年01月26日SpringBoot结合kaptcha验证码工具是怎样的

本篇文章为大家展示了SpringBoot结合kaptcha验证码工具是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

首先,在pom.xml中加入kaptcha的依赖

                                        com.github.penggle                        kaptcha                                                                                                javax.servlet-api                                        javax.servlet                                                                        

其次,在项目中创建CaptchaConfig类,对验证码进行配置。

@Configurationpublic class CaptchaConfig{    @Bean(name = "captchaProducer")    public DefaultKaptcha getKaptchaBean()    {        DefaultKaptcha defaultKaptcha = new DefaultKaptcha();        Properties properties = new Properties();            // 是否有边框        properties.setProperty(KAPTCHA_BORDER, "no");        // 验证码文本字符颜色        properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_COLOR, "black");        // 验证码文本字符大小        properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_SIZE, "38");        // KAPTCHA_SESSION_KEY        properties.setProperty(KAPTCHA_SESSION_CONFIG_KEY, "kaptchaCode");        // 验证码文本字符长度        properties.setProperty(KAPTCHA_TEXTPRODUCER_CHAR_LENGTH, "4");        // 验证码文本字体样式         properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_NAMES, "Arial,Courier");        // 图片样式         properties.setProperty(KAPTCHA_OBSCURIFICATOR_IMPL, "com.google.code.kaptcha.impl.ShadowGimpy");        Config config = new Config(properties);        defaultKaptcha.setConfig(config);        return defaultKaptcha;    }}

接着,编写Controller类,生成验证码。

@Controllerpublic class CaptchaController {                private static final Logger log = LoggerFactory.getLogger(CaptchaController.class);        @Resource(name = "captchaProducer")//配置类中的bean        private Producer captchaProducer;        @RequestMapping("/captcha")        public ModelAndView captcha(HttpServletRequest request, HttpServletResponse response) {                ServletOutputStream out = null;                try {                        HttpSession session = request.getSession();                        response.setDateHeader("Expires", 0);                        response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");                        response.addHeader("Cache-Control", "post-check=0, pre-check=0");                        response.setHeader("Pragma", "no-cache");                        response.setContentType("image/jpeg");                                                String capStr = null;                        String code = null;                        BufferedImage bi = null;                        capStr = code = captchaProducer.createText();                        bi = captchaProducer.createImage(capStr);                        log.info("验证码:"+code);                        session.setAttribute(Constants.KAPTCHA_SESSION_KEY, code);                        out = response.getOutputStream();                        ImageIO.write(bi, "jpg", out);                        out.flush();                } catch (Exception e) {                        e.printStackTrace();                } finally {                        try {                                if (out != null) {                                        out.close();                                }                        } catch (IOException e) {                                e.printStackTrace();                        }                }                return null;        }}

然后,编写页面代码,本样例使用layui。




最后,运行项目,查看效果,并且确认页面的验证码与实际输出验证码一致。

日志输出:

INFO  c.p.a.w.c.CaptchaController - [captcha,47] - 验证码:pfcd

上述内容就是SpringBoot结合kaptcha验证码工具是怎样的,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

0