springboot集成kaptcha生成图片验证码

硅谷探秘者 1071 0 0
pom依赖
<properties>
	<kaptcha.version>0.0.9</kaptcha.version>
</properties>
<dependency>
    <groupId>com.github.axet</groupId>
    <artifactId>kaptcha</artifactId>
    <version>${kaptcha.version}</version>
</dependency>
生成验证码的配置类
import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.google.code.kaptcha.util.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Properties;
/**
 * 生成验证码配置类
 */
@Configuration
public class KaptchaConfig {

    @Bean
    public DefaultKaptcha producer() {
        Properties properties = new Properties();
        properties.put("kaptcha.border", "no");
        properties.put("kaptcha.textproducer.char.space", "5");
        properties.put("kaptcha.textproducer.font.color", "blue");
        properties.put("kaptcha.textproducer.char.length", "4");
        properties.put("kaptcha.image.height", "40");
        properties.put("kaptcha.image.width", "160");
        properties.put("kaptcha.textproducer.font.size", "30");
        Config config = new Config(properties);
        DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
        defaultKaptcha.setConfig(config);
        return defaultKaptcha;
    }
}
获取图片验证码接口
	@Autowired
    private Producer producer;
	
    /**
	 * 获取验证码图片
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(value="/photo",method=RequestMethod.GET)
	 public void captcha(HttpServletResponse response,HttpServletRequest request)throws ServletException, IOException {
		response.setHeader("Cache-Control", "no-store, no-cache");
        response.setContentType("image/jpeg");
        //生成文字验证码
        String text = producer.createText();
        //生成图片验证码
        BufferedImage image = producer.createImage(text);
        //保存到shiro session(注意:如果没有securityManager配置,则暂时无法工作,测试时先注释掉)
        request.getSession().setAttribute("code",text);
        ServletOutputStream out = response.getOutputStream();
        ImageIO.write(image, "jpg", out);
        out.flush();
       return ;
    }
效果


评论区
请写下您的评论...
暂无评论...
猜你喜欢
工具 2063 javaweb1.的作用:防止恶意破解密、刷票、论坛灌水、刷页。有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试,实际上使用是现在很多网站通行的方
搜索 524 writingRSAkey 书文件server.crtD:\tmp\sslopensslx509-req-days365-inserver.csr-signkeyserver.key
工具 3808 java二维跳转链接需要的jar包!--https://mvnrepository.com/artifact/com.google.zxing/core
前端(h5) 2326 js二维跳转链接!DOCTYPEhtmlhtmlhead!--引入jquery,jquery.qrcode--scripttype='text/javascript'src='http
spring/springmvc 3812 springmvcwebsocket环境:spring+springmvc+tomcat8注意:本测试项目运行环境不能低于tomcat81.websocket配置
javascript js html 1240 展示将文章中目标区域的h标签,目录结构具体代下载下来看看吧~
official 774   JS随机(必须包含大小写字母,数字和特殊符号)functionrandomPassword(length){length=Number(length)if(length6){length
工具 1593 java正则表达式同时手机号或电话号importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassPhone
归档
2018-11  12 2018-12  33 2019-01  28 2019-02  28 2019-03  32 2019-04  27 2019-05  33 2019-06  6 2019-07  12 2019-08  12 2019-09  21 2019-10  8 2019-11  15 2019-12  25 2020-01  9 2020-02  5 2020-03  16 2020-04  4 2020-06  1 2020-07  7 2020-08  13 2020-09  9 2020-10  5 2020-12  3 2021-01  1 2021-02  5 2021-03  7 2021-04  4 2021-05  4 2021-06  1 2021-07  7 2021-08  2 2021-09  8 2021-10  9 2021-11  16 2021-12  14 2022-01  7 2022-05  1 2022-08  3 2022-09  2 2022-10  2 2022-12  5 2023-01  3 2023-02  1 2023-03  4 2023-04  2 2023-06  3 2023-07  4 2023-08  1 2023-10  1 2024-02  1 2024-03  1 2024-04  1
标签
算法基础 linux 前端 c++ 数据结构 框架 数据库 计算机基础 储备知识 java基础 ASM 其他 深入理解java虚拟机 nginx git 消息中间件 搜索 maven redis docker dubbo vue 导入导出 软件使用 idea插件 协议 无聊的知识 jenkins springboot mqtt协议 keepalived minio mysql ensp 网络基础 xxl-job rabbitmq haproxy srs 音视频 webrtc javascript
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。