[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