[jboss-cvs] jboss-seam/src/main/org/jboss/seam/captcha ...

Shane Bryzak Shane_Bryzak at symantec.com
Wed Feb 14 02:32:38 EST 2007


  User: sbryzak2
  Date: 07/02/14 02:32:38

  Added:       src/main/org/jboss/seam/captcha   CaptchaImage.java
  Removed:     src/main/org/jboss/seam/captcha  
                        CaptchaResourceProvider.java
  Log:
  refactored resource providers
  
  Revision  Changes    Path
  1.1      date: 2007/02/14 07:32:38;  author: sbryzak2;  state: Exp;jboss-seam/src/main/org/jboss/seam/captcha/CaptchaImage.java
  
  Index: CaptchaImage.java
  ===================================================================
  package org.jboss.seam.captcha;
  
  import static org.jboss.seam.InterceptionType.NEVER;
  import static org.jboss.seam.ScopeType.APPLICATION;
  import static org.jboss.seam.annotations.Install.BUILT_IN;
  
  import java.awt.image.BufferedImage;
  import java.io.ByteArrayOutputStream;
  import java.io.IOException;
  
  import javax.imageio.ImageIO;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  
  import org.jboss.seam.annotations.Install;
  import org.jboss.seam.annotations.Intercept;
  import org.jboss.seam.annotations.Name;
  import org.jboss.seam.annotations.Scope;
  import org.jboss.seam.annotations.Startup;
  import org.jboss.seam.contexts.Lifecycle;
  import org.jboss.seam.servlet.AbstractResource;
  
  import com.octo.captcha.service.CaptchaServiceException;
  
  /**
   * Provides Captcha image resources
   * 
   * @author Shane Bryzak
   */
  @Startup
  @Scope(APPLICATION)
  @Name("org.jboss.seam.captcha.captchaResourceProvider")
  @Install(precedence = BUILT_IN, dependencies="org.jboss.seam.captcha.captchaService")
  @Intercept(NEVER)
  public class CaptchaImage extends AbstractResource
  {
     @Override
     protected String getResourcePath()
     {
        return "/captcha";
     }
     
     @Override
     public void getResource(HttpServletRequest request, HttpServletResponse response)
         throws IOException
     {
        ByteArrayOutputStream out = new ByteArrayOutputStream();
  
        try
        {
           Lifecycle.beginRequest(getServletContext(), request.getSession(), request);
  
           String captchaId = request.getQueryString();
  
           BufferedImage challenge = CaptchaService.instance().getService().getImageChallengeForID(
                    captchaId, request.getLocale());
  
           ImageIO.write(challenge, "jpeg", out);
        }
        catch (IllegalArgumentException e)
        {
           response.sendError(HttpServletResponse.SC_NOT_FOUND);
           return;
        }
        catch (CaptchaServiceException e)
        {
           response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
           return;
        }
        finally
        {
           Lifecycle.endRequest();
        }
  
        response.setHeader("Cache-Control", "no-store");
        response.setHeader("Pragma", "no-cache");
        response.setDateHeader("Expires", 0);
        response.setContentType("image/jpeg");
        response.getOutputStream().write(out.toByteArray());
        response.getOutputStream().flush();
        response.getOutputStream().close();
     }
  }
  
  
  



More information about the jboss-cvs-commits mailing list