java使用谷歌验证码google captcha
一、引入依赖
compile group: 'com.github.penggle', name: 'kaptcha', version: '2.3.2'
二、写controller,返回图片
import com.google.code.kaptcha.Constants;
import com.google.code.kaptcha.Producer;
import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.google.code.kaptcha.util.Config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Properties;/*** 验证码**/
@Controller
@RequestMapping("/api/code")
public class VerificationCodeController {@Autowiredprivate Producer captchaProducer;@Bean(name = "captchaProducer")public DefaultKaptcha getKaptchaBean() {DefaultKaptcha defaultKaptcha = new DefaultKaptcha();Properties properties = new Properties();properties.setProperty("kaptcha.border", "yes");properties.setProperty("kaptcha.border.color", "105,179,90");properties.setProperty("kaptcha.textproducer.font.color", "blue");properties.setProperty("kaptcha.image.width", "125");properties.setProperty("kaptcha.image.height", "45");properties.setProperty("kaptcha.session.key", "code");properties.setProperty("kaptcha.textproducer.char.length", "4");properties.setProperty("kaptcha.textproducer.font.names", "宋体,楷体,微软雅黑");Config config = new Config(properties);defaultKaptcha.setConfig(config);return defaultKaptcha;}/*** 获取图形验证码*/@RequestMapping("/getCaptcha")public void getCaptcha(HttpServletResponse response, HttpSession session) throws IOException {response.setDateHeader("Expires", 0);// Set standard HTTP/1.1 no-cache headers.response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");// Set IE extended HTTP/1.1 no-cache headers (use addHeader).response.addHeader("Cache-Control", "post-check=0, pre-check=0");// Set standard HTTP/1.0 no-cache header.response.setHeader("Pragma", "no-cache");// return a jpegresponse.setContentType("image/jpeg");// create the text for the imageString capText = captchaProducer.createText();// store the text in the session//request.getSession().setAttribute(Constants.KAPTCHA_SESSION_KEY, capText);//将验证码存到sessionsession.setAttribute(Constants.KAPTCHA_SESSION_KEY, capText);// create the image with the textBufferedImage bi = captchaProducer.createImage(capText);ServletOutputStream out = response.getOutputStream();// write the data outImageIO.write(bi, "jpg", out);try {out.flush();} finally {out.close();}}}
java使用谷歌验证码google captcha相关推荐
- java工具谷歌工具-Google guava工具类的介绍和使用
工具类 就是封装平常用的方法,不需要你重复造轮子,节省开发人员时间,提高工作效率.谷歌作为大公司,当然会从日常的工作中提取中很多高效率的方法出来.所以就诞生了guava. guava的优点: 高效设计 ...
- Java 爬虫-谷歌商店(Google play)--应用的版本号
代码 HuToolHttp 这个工具类 在爬下载量的文章里 public static String getLastVersion(String packageName, String proxyTy ...
- 前后端开发-springboot项目/java搭配vue获取谷歌验证码
效果如上 1.添加依赖 <!-- 谷歌验证码依赖--><dependency><groupId>com.github.axet</groupId>< ...
- 谷歌了java集成开发_Spring整合Kaptcha谷歌验证码工具的开发步骤
开发步骤: 1.加入依赖 com.google.code.kaptcha kaptcha 2.3 国内镜像无法下载该依赖,需要手动通过jar包在本地仓库安装一个依赖. 安装命令: mvn instal ...
- Spring 整合 Google Captcha 验证码
文章目录 验证码的作用 Google Captcha简介 Google Captcha 详细配置表 Spring MVC 整合 Google Captcha POM 创建 Spring 配置 Cont ...
- java二维码生成-谷歌(Google.zxing)开源二维码生成学习及实例
java二维码生成-谷歌(Google.zxing)开源二维码生成的实例及介绍 这里我们使用比特矩阵(位矩阵)的QR码编码在缓冲图片上画出二维码 实例有以下一个传入参数 OutputStream o ...
- 手把手使用Python教你破解谷歌(Google)人机验证码—上篇
手把手使用Python教你破解谷歌(Google)人机验证码-上篇 众里寻他千百度.蓦然回首,那人却在,灯火阑珊处. /1 前言/ 今天呢,咱们来说一下Google,我们都知道,Google是目前地表 ...
- 【Spring Boot组件集成实战】集成Kaptcha谷歌验证码
更多精彩内容,请访问 Spring Boot组件集成实战专栏 ! 推荐项目:一套基于Spring Boot+Layui的内容管理系统/快速开发脚手架(含完整的开发文档.演示网址等) 文章目录 1. 验 ...
- 谷歌验证码kaptcha生成工具类
谷歌验证码生成工具类 1.引入依赖 2.验证码配置类 3.controller层 4.测试 5.目录结构 1.引入依赖 <!-- google kaptcha依赖 --> <depe ...
- 谷歌验证码 ReCAPTCHA 的模拟点击破解方案来了!
这是「进击的Coder」的第 631 篇技术分享 作者:崔庆才 大家好,我是崔庆才. 之前的时候我分享过 ReCAPTCHA 的破解方案,那种方案是获取到 ReCAPTCHA 其中的一个 SiteKe ...
最新文章
- Android Studio Intent使用(显式、隐式)
- openSuse 13.1 的触摸板,回来了
- Expected more than 1 value per channel when training, got input size torch.Size
- MySQL查看与修改编码方式(mysql、数据库、表)
- StringBuider 在什么条件下使用效率更高?
- redis从入门到实践
- 3个月的SHELLCODE研究成果-一个最简单的Shellcode
- 新年中国节必备背景素材|传统纹样,这便是中国之美!
- Failed to load ApplicationContext
- CodeLite+TDM-GCC调试C++程序,断点无效问题
- 偶像dd_engi 的学习之路《转》
- linux [1045] Access denied for user 'root'@'localhost' (using password: YES)
- ECMAScript
- 智能优化算法(超全)
- Taylor Swift - Enchanted_20131123141153-pdf
- AI绘画与虚拟人生成实践(二):智能不智障!用chatgpt自动写爆款内容
- oracle设置事务隔离级别为读已提交,oracle的事务隔离级别和读一致性
- Android10.0通知Notification的使用这一篇就够了
- Linux权限drwxrwxrwx是什么意思?
- 中国四大发明是公认的
热门文章
- C++——模板(超详细的模板解析)
- Deepin字体下载与安装
- 为Python IDLE 添加清屏(Ctrl + L )快捷工具(附带解决错误的方法)
- java打字小游戏源码_java实现快速打字游戏
- 离散数学 左孝凌-教材与习题解析-分享
- 完全免费的公众号文章批量下载器
- XLSTransformer 导出
- ZK 数据传输四:BackingBean获取spring层类再获取数据(jsp页面或zul页面)
- Windows命令行netsh winsock reset解决网络连接问题
- SWF 学习笔记 ——《如何在内存中提取出加密的SWF》