jcaptchaService.validateResponse ожидает, что строка типа captcha1 (если вы назвали свою капчу в Config.groovy
) в качестве первого аргумента для определения используемого экземпляра капчи.
Config.groovy Пример:
...
captchas {
captcha1 = new GenericManageableCaptchaService(...)
}
...
для представления используйте капчу вот так:
<jcaptcha:jpeg name="captcha1" /> ...
<g:textField name="user_typed_captcha" value="" />
и в контроллере что-то вроде этого:
if(jcaptchaService.validateResponse("captcha1", session.id, params.user_typed_captcha)) {
log.info("CAPTCHA WAS VALID!")
} else {
log.info("CAPTCHA WAS NOT VALID!")
}
Это должно исправить вашу проблему, используя jcaptcha в контроллерах.
Для меня использование jcaptchaService в CommandObjects не сработало.Я думаю, причина была в том, что метод валидации по некоторым причинам вызывался дважды, что делало перехват недействительным.Я использовал Grails 1.3.7.