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