why don't you try reCAPTCHA? http://recaptcha.net/resources.html

On Fri, Mar 13, 2009 at 11:56, Jerome Velociter <[email protected]> wrote:

> Vincent Massol wrote:
> > On Mar 13, 2009, at 10:24 AM, Jerome Velociter wrote:
> >
> >> Vincent Massol wrote:
> >>> On Mar 13, 2009, at 8:36 AM, Jerome Velociter wrote:
> >>>
> >>>> Hello Devs,
> >>>>
> >>>> I'm starting to think about the integration of JCaptcha 2.0
> >>>> (
> http://forge.octo.com/jcaptcha/confluence/display/general/Simple+Servlet+Integration+documentation
> >>>> )
> >>>> that would deprecated our current Captcha plugin.
> >>>> I think we need it as a component, for example xwiki-captcha
> >>>>
> >>>> We can have a CaptchaedRequestValidator component interface that
> >>>> declares the following method :
> >>>>
> >>>> boolean validateCaptcha(HttpServletRequest request);
> >>>>
> >>>> which would be called from the register action, comment add action,
> >>>> etc.
> >>>> (anywhere a captcha is needed - we could even expose a velocity
> >>>> API if
> >>>> we need it)
> >>>>
> >>>> WDYT ?
> >>> Hmm. Is it possible not to have it not depend on any environment
> >>> (servlet or other) or not? ie internally use the Execution Context
> >>> and
> >>> any passed parameters. This is important since captcha could be used
> >>> in a variety of environments, be it portlets, servlets, maybe even
> >>> web
> >>> services although that would probably be done best with a token.
> >> Hum, the portlet integration will have to be written if we want it.
> >> What
> >> JCaptcha provides is a simple servlet integration, i.e:
> >>
> >> String userCaptchaResponse = request.getParameter("jcaptcha");
> >> boolean captchaPassed =
> >> SimpleImageCaptchaServlet.validateResponse(request,
> >> userCaptchaResponse);
> >
> > Well this can be made indep of the environment I think.
> > We could just pass an object with the data needed (the user captcha
> > response and whatever other data is required) and create an instance
> > of HttpServletRequest internally and pass it to jcaptcha.
> >
> > What am I missing (I'm sure I'm missing something ;))?
>
> The fact jcaptcha internally keeps a generated challenge response
> alongside with the session for which it has been generated. It's the
> SimpleImageCaptchaServlet itself that offers the image:
>
> <servlet>
>        <servlet-name>jcaptcha</servlet-name>
>
>
> <servlet-class>com.octo.captcha.servlet.image.SimpleImageCaptchaServlet</servlet-class>
> </servlet>
> <servlet-mapping>
>        <servlet-name>jcaptcha</servlet-name>
>        <url-pattern>/jcaptcha.jpg</url-pattern>
> </servlet-mapping>
>
> So for portlet we would have to do that same work too. In the end we can
> abstract everything from the environment, but I can't see an easy way of
> doing it without writing a "SimpleImageCaptchaPortlet"
>
> Jerome
> >
> > Thanks
> > -Vincent
> >
> >> So even if we make the xwiki-captcha component API independent of any
> >> environment, we'll have to write code that in the end is
> >> environment-dependent in the component implementation.
> >> We can have for example:
> >>
> >> boolean validateCaptcha()
> >>
> >> without any parameters and retrieve what we need in the EC, but
> >> still we'll have to check what environment we are called from in the
> >> implementation.
> >>
> >>> So if it can be made to use the EC it's best, otherwise it should not
> >>> have request as parameter since any implementation can have the
> >>> Container object injected. If we prefer to pass a parameter (I'm
> >>> still
> >>> ambivalent about this, it would be better when used in non component
> >>> env for sure) then Container can be passed. Again that's if we cannot
> >>> make it indep of the env.
> >>>
> >>> Just to be sure, the public API exposed by xwiki-captcha would be
> >>> generic and not tied to any captcha implementation right?
> >> Yes (for now the method above is all I have in mind for an API)
> >>
> >> Jerome.
> > _______________________________________________
> > devs mailing list
> > [email protected]
> > http://lists.xwiki.org/mailman/listinfo/devs
>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to