grails验证码插件-JCaptcha

2024-04-04 00:08

本文主要是介绍grails验证码插件-JCaptcha,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、安装

grails install-plugin jcaptcha

 2、现在Config.groovy文件中定义验证码图片样式

Config文件结构:

log4j {
/* log4j config */
}
jcaptchas {
//captcha1 图片的id
captcha1 = … 
captcha2 = … 
}

 一个Example:

jcaptchas {
Random random = new Random(new Date().getTime());
imageCaptcha = new GenericManageableCaptchaService(
new GenericCaptchaEngine(
new GimpyFactory(
//随机字符范围
new RandomWordGenerator(
"加减乘除abcdefghjklmnopqOPQARSTS"
),
new ComposedWordToImage(
//字体
new RandomFontGenerator(
20, // min font size
30, // max font size
[new Font("宋体", 0, 10)] as Font[]
),
//图片背景
new GradientBackgroundGenerator(
200, // width
100, // height
new SingleColorGenerator(new Color(random.nextInt(255), random.nextInt(255), random.nextInt(255))),
new SingleColorGenerator(new Color(random.nextInt(255), random.nextInt(255), random.nextInt(255)))
),
//字符颜色个数限制
new NonLinearTextPaster(
1, // minimal length of text
4, // maximal length of text
new Color(random.nextInt(255), random.nextInt(255), random.nextInt(255))
)
)
)
),
180, // minGuarantedStorageDelayInSeconds
180000 // maxCaptchaStoreSize
)
}

 3、标签引用:

<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head><title>Simple GSP page</title></head>
<body>
<g:form controller="validate" action="valid">
<!--name与config.groovy中定义的一致 -->
<jcaptcha:jpeg name="imageCaptcha"/>
<label>
<input type="text" name="code" value=""/>
</label>
<input type="submit" value="提交"/>
</g:form>
</body>
</html>

 4、验证输入是否正确:

在Controller中定义

package demo
class ValidateController {
//这个是注入的
def jcaptchaService;
def index = {
redirect(action: "valid")
}
def valid = {
println params
println session.id
if (params.size() == 2) {
return render(view: 'code');
}
/*
这里的try catch 是为了防止重复提交,重复提交会报错误
*/
try {
/*
三个参数:name(标签中的name),session.id这个是固定的,用户输入的内容
*/
if (!jcaptchaService.validateResponse("imageCaptcha", session.id, params.code)) {
flash.message = "错误"
} else {
flash.message = "正确"
}
} catch (Exception e) {
log.error(e.message);
flash.message = "拒绝重复提交"
}
return render(view: "message");
}
}

这篇关于grails验证码插件-JCaptcha的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/874334

相关文章

springboot security验证码的登录实例

《springbootsecurity验证码的登录实例》:本文主要介绍springbootsecurity验证码的登录实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录前言代码示例引入依赖定义验证码生成器定义获取验证码及认证接口测试获取验证码登录总结前言在spring

Python实现自动化接收与处理手机验证码

《Python实现自动化接收与处理手机验证码》在移动互联网时代,短信验证码已成为身份验证、账号注册等环节的重要安全手段,本文将介绍如何利用Python实现验证码的自动接收,识别与转发,需要的可以参考下... 目录引言一、准备工作1.1 硬件与软件需求1.2 环境配置二、核心功能实现2.1 短信监听与获取2.

Flask 验证码自动生成的实现示例

《Flask验证码自动生成的实现示例》本文主要介绍了Flask验证码自动生成的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 目录生成图片以及结果处理验证码蓝图html页面展示想必验证码大家都有所了解,但是可以自己定义图片验证码

SpringBoot集成图片验证码框架easy-captcha的详细过程

《SpringBoot集成图片验证码框架easy-captcha的详细过程》本文介绍了如何将Easy-Captcha框架集成到SpringBoot项目中,实现图片验证码功能,Easy-Captcha是... 目录SpringBoot集成图片验证码框架easy-captcha一、引言二、依赖三、代码1. Ea

Python自动化处理手机验证码

《Python自动化处理手机验证码》手机验证码是一种常见的身份验证手段,广泛应用于用户注册、登录、交易确认等场景,下面我们来看看如何使用Python自动化处理手机验证码吧... 目录一、获取手机验证码1.1 通过短信接收验证码1.2 使用第三方短信接收服务1.3 使用ADB读取手机短信1.4 通过API获取

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

SpringBoot整合kaptcha验证码过程(复制粘贴即可用)

《SpringBoot整合kaptcha验证码过程(复制粘贴即可用)》本文介绍了如何在SpringBoot项目中整合Kaptcha验证码实现,通过配置和编写相应的Controller、工具类以及前端页... 目录SpringBoot整合kaptcha验证码程序目录参考有两种方式在springboot中使用k

SpringBoot如何集成Kaptcha验证码

《SpringBoot如何集成Kaptcha验证码》本文介绍了如何在Java开发中使用Kaptcha生成验证码的功能,包括在pom.xml中配置依赖、在系统公共配置类中添加配置、在控制器中添加生成验证... 目录SpringBoot集成Kaptcha验证码简介实现步骤1. 在 pom.XML 配置文件中2.

IDEA常用插件之代码扫描SonarLint详解

《IDEA常用插件之代码扫描SonarLint详解》SonarLint是一款用于代码扫描的插件,可以帮助查找隐藏的bug,下载并安装插件后,右键点击项目并选择“Analyze”、“Analyzewit... 目录SonajavascriptrLint 查找隐藏的bug下载安装插件扫描代码查看结果总结Sona

使用 Python 和 LabelMe 实现图片验证码的自动标注功能

《使用Python和LabelMe实现图片验证码的自动标注功能》文章介绍了如何使用Python和LabelMe自动标注图片验证码,主要步骤包括图像预处理、OCR识别和生成标注文件,通过结合Pa... 目录使用 python 和 LabelMe 实现图片验证码的自动标注环境准备必备工具安装依赖实现自动标注核心