Hi,
On Sat, Jan 16, 2010 at 11:21 PM, Caleb James DeLisle <
calebdelisle(a)lavabit.com> wrote:
Update:
I have changed a few things in my copy of the code.
I renamed the Captcha interface CaptchaVerifier because it is
a component for verifying captchas of a certain type, not
an individual captcha puzzle.
I also named the id which is gotten from the request "userId" because
it may be generated on a per-captcha basis and passed by a parameter
depending on jcaptcha settings.
From velocity the commands look like:
#set($cv = $captchaservice.getCaptchaVerifier("defaultImageCaptcha"))
#set($userId = $cv.getUserId($request))
#if($cv.isAnswerCorrect($userId, $answer))
## Do whatever the captcha is protecting
#else
## Show captcha image and ask for answer, submit button redirects to
## same page with answer given as parameter.
#end
isAnswerCorrect throws Exception but in Velocity getCaptchaVerifier
returns a wrapper of the CaptchaVerifier which catches any Exception
and returns false. It also switches null for "" in getUserId.
Sounds great!
Once you commit I'll try to implement a recaptcha version of the
CaptchaVerifier. This will be a good test case :)
PS: I hope I will have enough time ;)
I have tried to build JCaptcha 2.0 from source but I am unable to as
I use jdk 1.6 which fails with warnings for including com.sun.* classes
Any ideas about what these functions should be named would be great:
getUserId
getCaptchaVerifier
I thought getCaptchaId() would make sense in case of recaptcha but
getUserId() might be more generic as you describe.
Thanks.
- Asiri
Thanks,
Caleb
Caleb James DeLisle wrote:
I'm assuming you are referring to
$captcha.getServletId($request)
I said getServletId because I couldn't think of a way a request could
yield any other type of id, maybe you can think of one?
I do want to use captchaId for:
$captcha.isAnswerCorrect($servletId, $answer)
the method would look like:
boolean isAnswerCorrect(String captchaId, String answer)
In most implementations the servletId would be used as the captchaId.
On the one hand I feel like getServletId should be a function of the
$captchaservice but as you can see here:
http://www.docjar.com/html/api/com/octo/captcha/module/config/CaptchaModule…
If a configuration is set to ID_GENERATED=true
then it uses a different
method
(this is the function called by the struts
jcaptcha action)
Caleb
Asiri Rathnayake wrote:
> Hi Caleb,
>
> On Fri, Jan 15, 2010 at 4:21 PM, Caleb James DeLisle <
> calebdelisle(a)lavabit.com> wrote:
>
>> Whoops I made a mistake in my example:
>> How about:
>> #set($captcha = $captchaservice.getCaptcha("defaultImageCaptcha"))
>> #set($servletId = $captcha.getServletId($request))
>> $captcha.isAnswerCorrect($answer)
>>
>> should be:
>>
>> $captcha.isAnswerCorrect($servletId, $answer)
>>
> Why is it called servletId? shouldn't it be captchaId? Or may be I have
> misunderstood you.
>
>>>> $captchaservice.isAnswerCorrect($sessionId, $answer)
>>>> Yes. I believe here sessionId is generated by the captcha service for
>> each
>>>> captcha displayed? Or is it something else?
>>>>
>>>> I'm asking because recaptcha generates a unque captchaId for each
>> captcha it
>>>> generates. Then you need to handover this captchaId + user's answer
to
the
>> server to verify the answer.
May be my above question got commented out on
your mail reader.
Thanks.
- Asiri
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs