Check out www.opendating.org which uses JCaptcha. The source code is
easily browsable from http://www.opendating.org/dev/javadoc/. 
RegistrationCaptchaPage is what you want. You can download complete
source code from sourceforge.net/projects/opendating.

Regards,
Adam

On 4/17/06, Oscar Picasso <[EMAIL PROTECTED]> wrote:
> I'm going to try it in my application. Thanks.
>
> Konstantin Ignatyev <[EMAIL PROTECTED]> wrote: Just did the following and it 
> seems to work beautifully
>
>
>
> public class JCaptchaServlet extends HttpServlet {
>
>
>   protected void doGet(HttpServletRequest request, HttpServletResponse 
> response) throws ServletException, IOException {
>
>     String captchaID = request.getSession(true).getId();
>
>     // call the ManageableImageCaptchaService methods
>     byte[] captchaChallengeAsJpeg = null;
>     ByteArrayOutputStream jpegOutputStream = new ByteArrayOutputStream();
>     try {
>       ImageCaptchaService srv = App.getCaptchaService();
>       BufferedImage challenge =  srv.getImageChallengeForID(captchaID, 
> request.getLocale());
>       Object challengeString = srv.getQuestionForID(captchaID, 
> request.getLocale());
>       // the output stream to render the captcha image as jpeg into
>
>       // a jpeg encoder
>       JPEGImageEncoder jpegEncoder =  
> JPEGCodec.createJPEGEncoder(jpegOutputStream);
>       jpegEncoder.encode(challenge);
>     } catch (IllegalArgumentException e) {
>       // log a security warning and return a 404...
> //            if (log.isWarnEnabled())
> //            {
> //                log.warn(
> //                    "There was a try from "
> //                        + request.getRemoteAddr()
> //                        + " to render an URL without ID"
> //                        + " or with a too long one");
> //                theResponse.sendError(HttpServletResponse.SC_NOT_FOUND);
>       return;
> //            }
>     } catch (CaptchaServiceException e) {
>       // log and return a 404 instead of an image...
> //            log.warn(
> //                "Error trying to generate a captcha and "
> //                    + "render its challenge as JPEG",
> //                e);
>       response.sendError(HttpServletResponse.SC_NOT_FOUND);
>       return;
>     }
>
>     captchaChallengeAsJpeg = jpegOutputStream.toByteArray();
>
>     // render the captcha challenge as a JPEG image in the response
>     response.setHeader("Cache-Control", "no-store");
>     response.setHeader("Pragma", "no-cache");
>     response.setDateHeader("Expires", 0);
>
>     response.setContentType("image/jpeg");
>     ServletOutputStream responseOutputStream =
>         response.getOutputStream();
>     responseOutputStream.write(captchaChallengeAsJpeg);
>   }
>
>
> }
>
> ------------
> private static ImageCaptchaService captchaService;
>   private static Object captchaGuard = new Object();
>
>   public static ImageCaptchaService getCaptchaService() {
>     synchronized (captchaGuard) {
>       if (captchaService == null) {
>         captchaService = new EhcacheManageableImageCaptchaService( new 
> SimpleListImageCaptchaEngine() , 180, 100000){
>
>         };
>       }
>       return captchaService;
>     }
>   }
>
> ----------------------
>
>
>
> Validation
>
> @InjectObject( "service:tapestry.globals.HttpServletRequest")
>   public abstract HttpServletRequest getHttpRequest();
>
> ............
> if( App.getCaptchaService().validateResponseForID( 
> getHttpRequest().getSession(true).getId(), getCaptchaAnswer() )){
>         System.out.println("CAPTCHA - Pass");
>       }else{
>
>
>
> Oscar Picasso  wrote: Do you have a code example of such an 
> ImageCaptchaServlet?
>
> Daniel Lydiard  wrote: I'm using Jcaptcha with my tapestry application.
>
> 1. Load the ImageCaptchaServlet in your web.xml.
>
>
> jcaptcha
>
> com.foo.ImageCaptchaServlet
>
> 1
>
>
>
>
>
>
> jcaptcha
>
> /jcaptcha
>
>
>
>
> 2. Do something like this in a component class method to get the captcha
> question.
> captchaId = getPage().getRequest().getSession(true).getId();
> return CaptchaServiceSingleton.getInstance().getQuestionForID(captchaId);
>
> 3. Point to the servlet for the captchaimage in your component .
>
> 4.  To validate the user response
> captchaId = getRequest().getSession(true).getId();
>
> return
> CaptchaServiceSingleton.getInstance().validateResponseForID(captchaId,
> userResponse);
>
>
> Hope this helps.
>
>
> ----- Original Message -----
> From: "Oscar Picasso"
> To: "Tapestry users"
> Sent: Sunday, April 16, 2006 11:47 AM
> Subject: Re: Looking for a CATCHPA
>
>
> >I have taken a look. But I have no idea where to start. The api javadoc has
> >only one class:  JCaptchaCommentAuthenticator. It seems there is a problem
> >with the site.
> >
> > Have you worked with JCaptcha? And do you know where to start?
> >
> > Oscar
> >
> >
> >
> > J�r�me BERNARD  wrote: Have a loot at
> > http://jcaptcha.sourceforge.net/
> >
> > Regards,
> > J�r�me.
> >
> > On 4/16/06, Oscar Picasso  wrote:
> >> Hi,
> >>
> >> I'm looking for a CATCHPA library to use with my Tapestry application.
> >> I'm looking for something easy to use and efficient.
> >>
> >> I welcome any advice.
> >>
> >> Oscar
> >>
> >>
> >> ---------------------------------
> >> Blab-away for as little as 1�/min. Make  PC-to-Phone Calls using Yahoo!
> >> Messenger with Voice.
> >>
> >
> >
> > --
> > J�r�me BERNARD,
> > Kalixia, SARL.
> > http://weblog.kalixia.com
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> >
> >
> > ---------------------------------
> > Yahoo! Messenger with Voice. PC-to-Phone calls for ridiculously low rates.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>
>
> Konstantin Ignatyev
>
>
>
>
> PS: If this is a typical day on planet earth, humans will add fifteen million 
> tons of carbon to the atmosphere, destroy 115 square miles of tropical 
> rainforest, create seventy-two miles of desert, eliminate between forty to 
> one hundred species, erode seventy-one million tons of topsoil, add 2,700 
> tons of CFCs to the stratosphere, and increase their population by 263,000
>
> Bowers, C.A.  The Culture of Denial:  Why the Environmental Movement Needs a 
> Strategy for Reforming Universities and Public Schools.  New York:  State 
> University of New York Press, 1997: (4) (5) (p.206)
>
>
> ---------------------------------
> New Yahoo! Messenger with Voice. Call regular phones from your PC and save 
> big.
>

Reply via email to