`
沙舟狼客
  • 浏览: 160438 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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");
    }
}
 
1
0
分享到:
评论
1 楼 craengjava 2013-06-23  
你好,你是否出现如下错误。

| Error Compilation error: startup failed:
E:\work\myclass\grails-app\conf\Config.groovy: 112: unable to resolve class Gene
ricManageableCaptchaService
@ line 112, column 20.
       imageCaptcha = new GenericManageableCaptchaService(
                      ^

E:\work\myclass\grails-app\conf\Config.groovy: 113: unable to resolve class Gene
ricCaptchaEngine
@ line 113, column 13.
               new GenericCaptchaEngine(
               ^

E:\work\myclass\grails-app\conf\Config.groovy: 114: unable to resolve class Gimp
yFactory
@ line 114, column 21.
                       new GimpyFactory(
                       ^

E:\work\myclass\grails-app\conf\Config.groovy: 116: unable to resolve class Rand
omWordGenerator
@ line 116, column 29.
                               new RandomWordGenerator(
                               ^

E:\work\myclass\grails-app\conf\Config.groovy: 119: unable to resolve class Comp
osedWordToImage
@ line 119, column 29.
                               new ComposedWordToImage(
                               ^

E:\work\myclass\grails-app\conf\Config.groovy: 121: unable to resolve class Rand
omFontGenerator
@ line 121, column 37.
                                       new RandomFontGenerator(
                                       ^

E:\work\myclass\grails-app\conf\Config.groovy: 124: unable to resolve class Font
[]
@ line 124, column 45.
                                 [new Font(
                                 ^

E:\work\myclass\grails-app\conf\Config.groovy: 124: unable to resolve class Font

@ line 124, column 46.
                                [new Font("
                                 ^

E:\work\myclass\grails-app\conf\Config.groovy: 127: unable to resolve class Grad
ientBackgroundGenerator
@ line 127, column 37.
                                       new GradientBackgroundGenerator(
                                       ^

E:\work\myclass\grails-app\conf\Config.groovy: 130: unable to resolve class Sing
leColorGenerator
@ line 130, column 45.
                                 new Single
                                 ^

E:\work\myclass\grails-app\conf\Config.groovy: 130: unable to resolve class Colo
r
@ line 130, column 70.
        new SingleColorGenerator(new Color(
                                 ^

E:\work\myclass\grails-app\conf\Config.groovy: 131: unable to resolve class Sing
leColorGenerator
@ line 131, column 45.
                                 new Single
                                 ^

E:\work\myclass\grails-app\conf\Config.groovy: 131: unable to resolve class Colo
r
@ line 131, column 70.
        new SingleColorGenerator(new Color(
                                 ^

E:\work\myclass\grails-app\conf\Config.groovy: 134: unable to resolve class NonL
inearTextPaster
@ line 134, column 37.
                                       new NonLinearTextPaster(
                                       ^

E:\work\myclass\grails-app\conf\Config.groovy: 137: unable to resolve class Colo
r
@ line 137, column 45.
                                 new Color(
                                 ^

15 errors































































相关推荐

    grails-fck-editor-0.3.zip_grails_grails-fck-editor

    标题中的"grails-fck-editor-0.3.zip_grails_grails-fck-editor"表明这是一个与Grails框架相关的插件,具体来说是FCKeditor的一个版本。FCKeditor是一款广泛使用的开源富文本编辑器,它允许用户在网页上创建和编辑...

    grails-doc-CN-1.0.rar

    `grails-doc-CN-1.0.rar` 文件包含的是 Grails 1.0 版本的中文参考文档,对于那些不熟悉英文文档或者想要深入了解 Grails 的中文用户来说,这是一个极其宝贵的资源。 文档主要涵盖以下几个关键知识点: 1. **...

    grails 中文文档+grails-fckeditor-0.9.5.zip插件

    本文将深入探讨Grails的中文文档以及“grails-fckeditor-0.9.5”插件的相关知识点。 一、Grails框架基础 1. Groovy语言:Grails的基础是Groovy,这是一种面向对象、动态类型的编程语言,语法简洁且与Java高度兼容...

    grails-datastore-gorm-plugin-support-2.0.4.RELEASE.zip

    总之,"grails-datastore-gorm-plugin-support-2.0.4.RELEASE.zip"提供了一个宝贵的资源,让开发者有机会学习和实践Grails的ORM功能和Android的MVC设计模式。无论是对Grails框架的探索,还是对Android开发的深化,这...

    groovy-grails-tool-suite-3.6.4.RELEASE-e4.4.2-win32-x86_64.part2

    groovy-grails-tool-suite-3.6.4.RELEASE-e4.4.2-win32-x86_64.part2 共两个包,解压后需要将扩展名.zip.bak改名为.zip重新解压。 http://dist.springsource.com/release/STS/3.8.1.RELEASE/dist/ e4.6/spring-tool-...

    groovy-grails-tool-suite-3.6.4.RELEASE-e4.4.2-win32-x86_64.part1

    groovy-grails-tool-suite-3.6.4.RELEASE-e4.4.2-win32-x86_64.part1 共两个压缩包,解压后将扩展名.zip.bak改为.zip再次解压。

    grails-spring-websocket

    grails-spring-websocket ils子 2.4.x 3.2.7+ 2.5.x 4.0.0+ 安装 要将插件安装到Grails应用程序中,请将以下行添加到build.gradle依赖项部分: implementation "org.grails.plugins:grails-spring-websocket:...

    grails-acegi-0.5.zip

    4. `docs`、`grails-app`、`src`、`scripts`和`lib`目录则分别包含了插件的文档、应用代码、源代码、脚本以及依赖的库文件。 Grails Acegi 0.5插件提供了以下主要功能: - **用户认证**:支持多种认证机制,如...

    grails-acegi-0.2.1.zip

    本文将详细探讨“grails-acegi-0.2.1.zip”这个插件,它是Grails框架中用于实现权限管理的Spring插件的一个早期版本。 Acegi Security是Spring框架的一个扩展,它提供了一套全面的、灵活的安全性解决方案。在Grails...

    grails-web-url-mappings-2.5.4.zip

    这个名为"grails-web-url-mappings-2.5.4.zip"的压缩包包含了Grails 2.5.4版本中的Web URL映射相关代码,让我们深入探讨这一关键组件。 Grails是一个基于Groovy语言的全栈式Java web框架,其设计理念是“简洁、生产...

    grails-gradle-plugin

    classpath " org.grails:grails-gradle-plugin:2.1.2 " } } version " 0.1 " group " example " apply plugin : " grails " repositories { grails . central() // creates a maven repo for the Grails Central ...

    grails-docs-2.0.0

    `grails-docs-2.0.0`是Grails 2.0.0版本的官方文档,包含了丰富的指南、API参考以及国际化资源,对于学习和掌握Grails 2.0.0至关重要。 首先,`index.html`是文档的主页,通常会包含目录、介绍性内容以及如何开始的...

    grails-3.0.5-ga (2/2)

    以下是关于"grails-3.0.5-ga (2/2)"的详细知识点: 1. **Groovy语言**: Grails框架是用Groovy语言编写的,这是一种动态、面向对象的编程语言,与Java高度兼容,但语法更加简洁和灵活。 2. **MVC架构**: Grails遵循...

    grails-docs-1.0

    《Grails框架API文档详解——基于grails-docs-1.0》 Grails是一种基于Groovy语言的开源Web应用框架,它简化了Java开发,提供了丰富的功能和强大的工具,深受开发者喜爱。本文将深入探讨grails-docs-1.0版本的API...

    grails-quartz-0.4.1

    在`Grails` 中,`Grails-Quartz` 插件提供了集成`Quartz` 的能力,使得开发者可以在`Grails` 应用中方便地安排和执行周期性任务。 **1. QuartzGrailsPlugin.groovy** 这个文件是`Grails` 插件的核心配置文件,其中...

    grails-doc-1.0-beta1-中文.rar

    grails-doc-1.0-beta1-中文.rar。Grails 1.0 学习资料。

    Grails开源框架 - 使用指南

    Grails开源框架 - 使用指南,版本1.0,中文文档。 Grails开源框架 - 使用指南 作者: Graeme Rocher, Marc Palmer 版本: 1.0 Copies of this document may be made for your own use and for distribution to ...

    Grails-2.4.4-用户手册

    2. **创建新项目**:通过`grails create-app`命令创建项目,理解`grails-app`目录结构。 3. **编写Domain Class**:学习如何定义领域类,包括关系映射和验证规则。 4. **创建Controller**:了解如何创建控制器,处理...

    Grails入门指南-中文版

    ### Grails入门指南-中文版 #### 一、引言 Grails是一个高效的Web开发框架,它基于Groovy编程语言并构建在Spring、Hibernate和其他Java框架之上。这使得Grails成为一个一站式的解决方案,极大地提高了开发者的生产...

Global site tag (gtag.js) - Google Analytics