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. >