[jboss-cvs] jboss-seam/src/main/org/jboss/seam/captcha ...
Gavin King
gavin.king at jboss.com
Thu Feb 8 01:21:52 EST 2007
User: gavin
Date: 07/02/08 01:21:52
Added: src/main/org/jboss/seam/captcha Captcha.java
CaptchaResponse.java CaptchaResponseValidator.java
Log:
built-in JCaptcha integration
Revision Changes Path
1.1 date: 2007/02/08 06:21:52; author: gavin; state: Exp;jboss-seam/src/main/org/jboss/seam/captcha/Captcha.java
Index: Captcha.java
===================================================================
package org.jboss.seam.captcha;
import java.io.Serializable;
import java.rmi.server.UID;
import org.jboss.seam.Component;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Create;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.contexts.Contexts;
import org.jboss.seam.security.CaptchaService;
@Name("captcha")
@Scope(ScopeType.PAGE)
public class Captcha implements Serializable
{
private String id;
private transient String response;
@Create
public void init()
{
id = new UID().toString().replace(":", "-");
}
boolean validateResponse(String response)
{
boolean valid = CaptchaService.instance().getService().validateResponseForID(id, response);
if (!valid)
{
init();
}
return valid;
}
@CaptchaResponse
public String getResponse()
{
return response;
}
public void setResponse(String input)
{
this.response = input;
}
public static Captcha instance()
{
if ( !Contexts.isPageContextActive() )
{
throw new IllegalStateException("No page context active");
}
return (Captcha) Component.getInstance(Captcha.class, ScopeType.PAGE);
}
public String getId()
{
return id;
}
}
1.1 date: 2007/02/08 06:21:52; author: gavin; state: Exp;jboss-seam/src/main/org/jboss/seam/captcha/CaptchaResponse.java
Index: CaptchaResponse.java
===================================================================
package org.jboss.seam.captcha;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.hibernate.validator.ValidatorClass;
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Target(ElementType.METHOD)
@ValidatorClass(CaptchaResponseValidator.class)
public @interface CaptchaResponse {
String message() default "input characters did not match";
}
1.1 date: 2007/02/08 06:21:52; author: gavin; state: Exp;jboss-seam/src/main/org/jboss/seam/captcha/CaptchaResponseValidator.java
Index: CaptchaResponseValidator.java
===================================================================
package org.jboss.seam.captcha;
import java.lang.annotation.Annotation;
import org.hibernate.validator.Validator;
public class CaptchaResponseValidator implements Validator
{
public void initialize(Annotation captchaResponse) {}
public boolean isValid(Object response)
{
return Captcha.instance().validateResponse( (String) response );
}
}
More information about the jboss-cvs-commits
mailing list