File Source: imagecaptchaservlet.java

         /* 
    P/P   *  Method: net.sourceforge.pebble.confirmation.ImageCaptchaServlet__static_init
          */
     1  package net.sourceforge.pebble.confirmation;
     2  
         /* 
    P/P   *  Method: void net.sourceforge.pebble.confirmation.ImageCaptchaServlet()
          */
     3  import com.octo.captcha.service.CaptchaServiceException;
     4  
     5  import javax.servlet.ServletConfig;
     6  import javax.servlet.ServletException;
     7  import javax.servlet.ServletOutputStream;
     8  import javax.servlet.http.HttpServlet;
     9  import javax.servlet.http.HttpServletRequest;
    10  import javax.servlet.http.HttpServletResponse;
    11  import java.awt.image.BufferedImage;
    12  import java.io.ByteArrayOutputStream;
    13  import java.io.IOException;
    14  
    15  /**
    16   * Servlet that serves up the JCaptcha image captcha.
    17   *
    18   * @author Simon Brown
    19   */
    20  public class ImageCaptchaServlet extends HttpServlet {
    21  
    22    private static final long serialVersionUID = -6227490839816434342L;
    23  
    24    private static final String JPG_FORMAT = "JPG";
    25    
    26    /**
    27     * Called to initialise the servlet.
    28     *
    29     * @param servletConfig
    30     * @throws ServletException
    31     */
    32    public void init(ServletConfig servletConfig) throws ServletException {
             /* 
    P/P       *  Method: void init(ServletConfig)
              */
    33      super.init(servletConfig);
    34    }
    35  
    36    /**
    37     * Called when a HTTP GET request is made to the servlet.
    38     *
    39     * @param httpServletRequest
    40     * @param httpServletResponse
    41     * @throws ServletException
    42     * @throws IOException
    43     */
    44    protected void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
    45      byte[] captchaChallengeAsJpeg;
    46      // the output stream to render the captcha image as jpeg into
    47      ByteArrayOutputStream jpegOutputStream = new ByteArrayOutputStream();
    48      try {
    49        // get the session id that will identify the generated captcha.
    50        // the same id must be used to validate the response, the session id is a good candidate!
    51        String captchaId = httpServletRequest.getSession().getId();
    52        // call the CaptchaService getChallenge method
    53        BufferedImage challenge =
    54            CaptchaService.getInstance().getImageChallengeForID(captchaId,
    55                httpServletRequest.getLocale());
    56  
    57        javax.imageio.ImageIO.write(challenge, JPG_FORMAT, jpegOutputStream);
    58        
    59      } catch (IllegalArgumentException e) {
    60        httpServletResponse.sendError(HttpServletResponse.SC_NOT_FOUND);
    61        return;
    62      } catch (CaptchaServiceException e) {
    63        httpServletResponse.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
    64        return;
    65      }
    66  
    67      captchaChallengeAsJpeg = jpegOutputStream.toByteArray();
    68  
    69      // flush it in the response
    70      httpServletResponse.setHeader("Cache-Control", "no-store");
    71      httpServletResponse.setHeader("Pragma", "no-cache");
    72      httpServletResponse.setDateHeader("Expires", 0);
    73      httpServletResponse.setContentType("image/jpeg");
    74      ServletOutputStream responseOutputStream =
    75          httpServletResponse.getOutputStream();
    76      responseOutputStream.write(captchaChallengeAsJpeg);
    77      responseOutputStream.flush();
    78      responseOutputStream.close();
    79    }
    80  
    81  }








SofCheck Inspector Build Version : 2.22510
imagecaptchaservlet.java 2010-Jun-25 19:40:32
imagecaptchaservlet.class 2010-Jul-19 20:23:40