当前位置: 首页 > news >正文

武冈 网站建设电脑优化设置

武冈 网站建设,电脑优化设置,南宁网站建设托管,网站刷流量有用吗目录一、前言1.Kaptcha 简介2.Kaptcha 详细配置表二、实现1.整合kaptcha,创建kaptcha的工具类1.1 添加依赖1.2 创建KaptchaConfig工具类2 编写接口,在接口中使用 kaptcha 工具类来生成验证码图片(验证码信息)并返回3 登录时从sess…

目录

  • 一、前言
    • 1.Kaptcha 简介
    • 2.Kaptcha 详细配置表
  • 二、实现
    • 1.整合kaptcha,创建kaptcha的工具类
      • 1.1 添加依赖
      • 1.2 创建KaptchaConfig工具类
    • 2 编写接口,在接口中使用 kaptcha 工具类来生成验证码图片(验证码信息)并返回
    • 3 登录时从session中获取验证码进行校验
    • 4.测试
      • 4.1 测试获取验证码图片的接口
      • 4.2 登录接口(校验验证码)
  • 三、完整代码

一、前言

kaptcha 是一个很有用的验证码生成工具,由于它有许多可配置项,所以用它可以简单快捷的生成各式各样的验证码。

1.Kaptcha 简介

Kaptcha谷歌验证码) 是一个可高度配置的实用验证码生成工具,可自由配置的选项如:

  • 验证码的字体
  • 验证码字体的大小
  • 验证码字体的字体颜色
  • 验证码内容的范围(数字,字母,中文汉字!)
  • 验证码图片的大小,边框,边框粗细,边框颜色
  • 验证码的干扰线
  • 验证码的样式(鱼眼样式、3D、普通模糊、…)

2.Kaptcha 详细配置表

在这里插入图片描述

二、实现

实现思路:
1.整合kaptcha,创建kaptcha的工具类
2.编写接口,在接口中使用 kaptcha 工具类来生成验证码图片(验证码信息)并返回
3.登录时从 session 中获取验证码进行校验
4.测试获取验证码图片(验证码信息)接口

1.整合kaptcha,创建kaptcha的工具类

1.1 添加依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--谷歌 验证码-->
<dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</artifactId><version>2.3.2</version>
</dependency>

1.2 创建KaptchaConfig工具类

package com.example.validationcodedemo.config;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;/*** 谷歌验证码配置文件* @author qzz*/
@Configuration
public class KaptchaConfig {@Bean(name = "kaptchaProducer")public DefaultKaptcha getKaptchaBean(){DefaultKaptcha defaultKaptcha = new DefaultKaptcha();Properties properties = new Properties();//是否有边框 默认true 也可以自己设置yes,noproperties.setProperty("kaptcha.border", "no");//验证码文本字符颜色 默认为Color.BLACKproperties.setProperty("kaptcha.textproducer.font.color", "black");// 验证码图片宽度 默认为200properties.setProperty("kaptcha.image.width", "160");// 验证码图片高度 默认为50properties.setProperty("kaptcha.image.height", "60");// 验证码文本字符大小 默认为40properties.setProperty("kaptcha.textproducer.font.size", "38");//存储在session中值的keyproperties.setProperty("kaptcha.session.key", "kaptchaCode");// 验证码文本字符长度 默认为5properties.setProperty("kaptcha.textproducer.char.length", "4");// 验证码文本字体样式 默认为new Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize)properties.setProperty("kaptcha.textproducer.font.names", "Arial,Courier");// 图片样式 水纹com.google.code.kaptcha.impl.WaterRipple 鱼眼com.google.code.kaptcha.impl.FishEyeGimpy 阴影com.google.code.kaptcha.impl.ShadowGimpyproperties.setProperty("kaptcha.obscurificator.impl", "com.google.code.kaptcha.impl.ShadowGimpy");Config config = new Config(properties);defaultKaptcha.setConfig(config);return defaultKaptcha;}@Bean(name = "kaptchaProducerMath")public DefaultKaptcha getKaptchaBeanMath(){DefaultKaptcha defaultKaptcha = new DefaultKaptcha();Properties properties = new Properties();//是否有边框 默认true 也可以自己设置yes,noproperties.setProperty("kaptcha.border", "yes");//边框颜色properties.setProperty("kaptcha.border.color", "105,179,90");//验证码文本字符颜色 默认为Color.BLACKproperties.setProperty("kaptcha.textproducer.font.color", "black");// 验证码图片宽度 默认为200properties.setProperty("kaptcha.image.width", "160");// 验证码图片高度 默认为50properties.setProperty("kaptcha.image.height", "60");// 验证码文本字符大小 默认为40properties.setProperty("kaptcha.textproducer.font.size", "38");//存储在session中值的keyproperties.setProperty("kaptcha.session.key", "kaptchaCodeMath");//验证码文本生成器properties.setProperty("kaptcha.textproducer.impl","com.tonglei.config.KaptchaTextCreator");// 验证码文本字符间距 默认为2properties.setProperty("kaptcha.textproducer.char.space", "3");// 验证码文本字符长度 默认为5properties.setProperty("kaptcha.textproducer.char.length", "4");// 验证码文本字体样式 默认为new Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize)properties.setProperty("kaptcha.textproducer.font.names", "Arial,Courier");// 图片样式 水纹com.google.code.kaptcha.impl.WaterRipple 鱼眼com.google.code.kaptcha.impl.FishEyeGimpy 阴影com.google.code.kaptcha.impl.ShadowGimpyproperties.setProperty("kaptcha.obscurificator.impl", "com.google.code.kaptcha.impl.ShadowGimpy");// 验证码噪点颜色 默认为Color.BLACKproperties.setProperty("kaptcha.noise.color", "black");// 干扰实现类  DefaultNoise\NoNoiseproperties.setProperty("kaptcha.noise.impl", "com.google.code.kaptcha.impl.DefaultNoise");Config config = new Config(properties);defaultKaptcha.setConfig(config);return defaultKaptcha;}
}

2 编写接口,在接口中使用 kaptcha 工具类来生成验证码图片(验证码信息)并返回

编写获取验证码图片或者验证码信息功能接口:

package com.example.validationcodedemo.controller;import com.google.code.kaptcha.Producer;
import org.apache.tomcat.util.http.fileupload.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.IOException;/*** 验证码* @author qzz*/
@RestController
public class ValidationCodeController {@Autowiredprivate Producer kaptchaProducer;@Autowiredprivate Producer kaptchaProducerMath;/*** 生成验证码图片* @param request* @param response*/@RequestMapping("/createKaptchaCodeImg")public void createKaptchaCode(HttpServletRequest request, HttpServletResponse response) throws IOException {response.setHeader("Cache-Control","no-store");response.setContentType("image/jpeg");//文本验证码String text = kaptchaProducer.createText();//图片验证码BufferedImage image = kaptchaProducer.createImage(text);//保存验证码到sessionrequest.getSession().setAttribute("kaptchaCode",text);ServletOutputStream outputStream = response.getOutputStream();//设置写出图片的格式ImageIO.write(image,"jpg",outputStream);//关闭输出流IOUtils.closeQuietly(outputStream);}/*** 生成验证码图片(有边框)* @param request* @param response*/@RequestMapping("/createKaptchaCodeImg2")public void createKaptchaCode2(HttpServletRequest request, HttpServletResponse response) throws IOException {response.setHeader("Cache-Control","no-store");response.setContentType("image/jpeg");//文本验证码String text = kaptchaProducer.createText();//图片验证码BufferedImage image = kaptchaProducerMath.createImage(text);//保存验证码到sessionrequest.getSession().setAttribute("kaptchaCodeMath",text);ServletOutputStream outputStream = response.getOutputStream();//设置写出图片的格式ImageIO.write(image,"jpg",outputStream);//关闭输出流IOUtils.closeQuietly(outputStream);}

3 登录时从session中获取验证码进行校验

    /*** 用户登录 校验验证码*/@PostMapping("/login")public Result login(@RequestBody UserLoginRequestJson requestJson,HttpServletRequest request){Result result = new Result();//从session中获取验证码String kaptchaCode = String.valueOf(request.getSession().getAttribute("kaptchaCode"));//用户输入和session获取的验证码进行验证if (!requestJson.getCode().equals(kaptchaCode)){//验证码验证失败return Result.fail(10910,"验证码不正确,请重新输入");}//登录流程...(省略)return Result.success();}

注意:从session中获取验证码时,key值一定要和前面生成验证码时存储的key保持一致。

4.测试

4.1 测试获取验证码图片的接口

在这里插入图片描述

4.2 登录接口(校验验证码)

验证码输入错误:
在这里插入图片描述

验证码输入正确:
在这里插入图片描述

三、完整代码

可点击此处下载

http://www.hengruixuexiao.com/news/17744.html

相关文章:

  • 建设银行网站登录不上网站设计就业
  • 最好的企业网站个人友情链接推广
  • 成都专业网站建设哪家好百度网盘免费下载
  • 企业网站功能模块长尾关键词
  • 公司架设网站费用怎么做分录seo文章优化方法
  • 河南做网站 河南网站建设域名解析ip地址
  • 自建网站去除html谷歌seo
  • wordpress企业网站制作seo提升关键词排名
  • 百度提交网站收录入口seo优化网络推广
  • 网站做推广页需要什么软件有哪些搜索引擎简称seo
  • 集团公司网站设计小程序开发教程全集免费
  • 哪个汽车网站汽贸店免费做国外免费域名申请
  • 网站推广的正确方式类似凡科建站的平台
  • 吉大建设工程学院官方网站seo软件资源
  • 2015做啥网站能致富地推拉新app推广接单平台
  • 博彩游戏网站开发设计菲律宾百度竞价排名收费标准
  • 如何自建网站做淘客新手如何做网上销售
  • 宝鸡有做网站的吗网站策划方案案例
  • wordpress 上传网站百度官网下载电脑版
  • 沧州网站域名注册服务公司兰州关键词快速上首页排名
  • 山西大同专业网站建设制作价格查询网址域名ip地址
  • 贵阳政府网站建设招聘沧州网站建设
  • 网页游戏开服表怎么删深圳seo优化服务
  • 合肥市城乡建设委员网站seo零基础教学
  • 做海报一般都去什么网站看平台推广销售话术
  • 专业做企业活动的趴网站西安网红
  • 湖南省军区强军网网站群建设项目seo营销论文
  • jsp系统网站建设带源代码百度开户推广
  • 企业网站策划方案书郑州百度推广托管
  • 临清市住房和城乡建设局网站青岛网站开发公司