ska*_*man 61 java captcha recaptcha java-ee simplecaptcha
我正在寻找JCaptcha的替代品,它似乎不再维护,并且开始时并不是很好.替换必须与JavaEE webapps很好地集成.
我可以看到,有三种选择:
有没有人使用过他们推荐的其他人?
小智 71
我是SimpleCaptcha的作者.虽然我建议 - 为了人类的缘故 - 尽可能使用ReCaptcha,我提供了SimpleCaptcha,因为有些组织有禁止像ReCaptcha这样的库的政策.SimpleCaptcha意味着完全独立,没有外部依赖:只要你在J2EE容器中,你应该是好的.
此外,SimpleCaptcha现在可用于Java 1.5或Java 6.
Fra*_*cis 26
ReCaptcha是你应该使用的唯一验证码,因为它是唯一能够让世界变得更好的验证码(将OCR结果改进为旧文本),几乎无限的数据库.
所有其他验证码通常受其数据库的限制,或者对这个世界没有任何好处.
编辑::我找到了如何使用recaptcha实现验证码的步骤.
Mik*_*ike 19
当ReCaptcha关闭/不可用时会发生什么?您的服务是否会停止?当你失败的时候,你只是停止签名吗?即使ReCaptcha没有运行,您是否允许用户注册?如果是这样,这有什么安全隐患?特别是如果您使用CAPTCHA而不仅仅是注册,例如重置密码表单,登录表单,......如果没有CAPTCHA组件,则无法接受.
CAPTCHA的Java世界处于悲伤状态,SimpleCaptcha似乎是那些无法接受托管服务的人的最佳解决方案.
Jon*_*ens 10
我之前创建了http://kaptcha.googlecode.com,之后recaptcha变得像今天一样受欢迎.它还为您提供了自己托管的能力,这在某些情况下可能是必要的.
Kaptcha是SimpleCaptcha的一个经过大量修改和更新的版本,支持JDK5/6.
SimpleCaptcha非常好用且易于使用.
以下是如何将SimpleCaptcha与JSF 2.0一起使用的示例(主页有JSP示例)
请注意,我甚至不打算将验证码值存储在bean中,我只是在验证它.
豆子:
// 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"));
}
}
Run Code Online (Sandbox Code Playgroud)
facelet的相关部分:
<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>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
请享用 :-)
归档时间: |
|
查看次数: |
67955 次 |
最近记录: |