SimpleCaptcha est vraiment agréable et facile à utiliser.
Voici un exemple d'utilisation de SimpleCaptcha avec JSF 2.0 (la page d'accueil contient un exemple pour JSP).
Notez que je ne prends même pas la peine de stocker la valeur captcha dans le bean, je ne fais que la valider.
Le haricot :
// imports missing here
@ManagedBean
@SessionScoped
public class LoginBean implements Serializable
{
public void validateCaptcha(FacesContext context,
UIComponent componentToValidate,
Object value)
throws ValidatorException
{
HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
Captcha secretcaptcha = (Captcha) session.getAttribute(Captcha.NAME);
if (secretcaptcha.isCorrect(value.toString()))
return;
// optional: clear field
((HtmlInputText) componentToValidate).setSubmittedValue("");
throw new ValidatorException(new FacesMessage("Captcha does not match"));
}
}
Le segment pertinent de la facette :
<h:form id="CaptchaForm">
Type this: <br/>
<h:graphicImage id="CaptchaImgID" value="/simpleCaptcha.png"/> <br/>
<h:inputText id="CaptchaID"
required="true"
requiredMessage="Captcha missing"
validator="#{loginBean.validateCaptcha}"
validatorMessage="Captcha does not match"
immediate="true">
</h:inputText>
<br/>
<h:commandButton value="Check"/>
<p/>
<!-- message for the input field -->
<h:message id="CaptchaMsgID" for="CaptchaID" style="color:red" />
</h:form>
Le segment pertinent du web.xml :
<servlet>
<servlet-name>SimpleCaptcha</servlet-name>
<servlet-class>nl.captcha.servlet.SimpleCaptchaServlet</servlet-class>
<init-param>
<param-name>captcha-width</param-name>
<param-value>250</param-value>
</init-param>
<init-param>
<param-name>captcha-height</param-name>
<param-value>75</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>SimpleCaptcha</servlet-name>
<url-pattern>/simpleCaptcha.png</url-pattern>
</servlet-mapping>
Profitez-en :-)
0 votes
Alors que j'explorais d'autres librairies captcha, je suis tombé sur captcha.com/doc/java/captcha-pour-java.html Peut-être que cela peut aider certains !
0 votes
Il existe une belle implémentation de Captcha hors ligne ici : javalite.io/captcha . Vous avez juste besoin d'un cours : github.com/javalite/activeweb/blob/master/activeweb/src/main/