首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将jcaptcha插件与grails 1.3.7配合使用时出错

将jcaptcha插件与grails 1.3.7配合使用时出错
EN

Stack Overflow用户
提问于 2011-09-29 16:40:09
回答 2查看 575关注 0票数 0

嗨,当我尝试在grails 1.3.7中使用jcaptcha插件时,我遇到了以下错误。

代码语言:javascript
复制
org.codehaus.groovy.runtime.typehandling.GroovyCastException:
  Cannot cast object '{}' with class 'groovy.util.ConfigObject' to class 'com.octo.captcha.service.CaptchaService' due to:
  groovy.lang.GroovyRuntimeException: Could not find matching constructor for: com.octo.captcha.service.CaptchaService(groovy.util.ConfigObject)
    at org.grails.plugin.jcaptcha.JcaptchaService.getCaptchaService(JcaptchaService.groovy:42)
    at org.grails.plugin.jcaptcha.JcaptchaService$$FastClassByCGLIB$$98874858.invoke(<generated>)
    at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
    at org.grails.plugin.jcaptcha.JcaptchaService$$EnhancerByCGLIB$$468f85f9.getCaptchaService(<generated>)
    at org.grails.plugin.jcaptcha.JcaptchaService$getCaptchaService.call(Unknown Source)
    at org.grails.plugin.jcaptcha.JcaptchaController$_closure1.doCall(JcaptchaController.groovy:29)
    at org.grails.plugin.jcaptcha.JcaptchaController$_closure1.doCall(JcaptchaController.groovy)
    at java.lang.Thread.run(Thread.java:619)

任何关于这方面的建议都会很有帮助。提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2011-11-29 06:16:39

像"captcha1“这样的字符串(如果您在Config.groovy中将验证码命名为这样)是jcaptchaService.validateResponse期望的第一个参数,用于标识要使用哪个验证码实例。

Config.groovy示例:

代码语言:javascript
复制
...
captchas {
   captcha1 = new GenericManageableCaptchaService(...)
}
...

对于视图,可以像这样使用验证码:

代码语言:javascript
复制
<jcaptcha:jpeg name="captcha1" /> ...
<g:textField name="user_typed_captcha" value="" />

在控制器中是这样的:

代码语言:javascript
复制
if(jcaptchaService.validateResponse("captcha1", session.id, params.user_typed_captcha)) {
   log.info("CAPTCHA WAS VALID!")
} else {
   log.info("CAPTCHA WAS NOT VALID!")
}

这应该可以在控制器中使用jcaptcha解决您的问题。

对我来说,在CommandObjects中使用jcaptchaService是行不通的。我认为原因是由于某些原因,验证方法被调用了两次,这使得捕获无效。我使用的是Grails 1.3.7。

票数 1
EN

Stack Overflow用户

发布于 2011-10-03 18:04:46

在Grails中使用JCaptcha时,您需要“定义验证码”:这意味着您必须指定生成Jcaptchas所依据的规则。

验证码在conf/Config.groovy文件中定义:

代码语言:javascript
复制
jcaptchas {
    captcha1 = …
    captcha2 = …
}

有关如何创建这些@ http://www.grails.org/JCaptcha+Plugin的更多信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7594612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档