Java 当cookie被阻止时,JCaptcha失败
我已经在我的web应用程序中实现了JCaptcha,它工作正常,但当浏览器的cookie被阻止时,它总是失败并返回false servlet代码如下所示:Java 当cookie被阻止时,JCaptcha失败,java,cookies,captcha,Java,Cookies,Captcha,我已经在我的web应用程序中实现了JCaptcha,它工作正常,但当浏览器的cookie被阻止时,它总是失败并返回false servlet代码如下所示: protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String userCaptchaResponse =request.getPar
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String userCaptchaResponse =request.getParameter("jcaptcha");
boolean captchaPassed = SimpleImageCaptchaServlet.validateResponse(request, userCaptchaResponse);
if(captchaPassed){
System.out.println("success!!"+userCaptchaResponse);
RequestDispatcher rd=request.getRequestDispatcher("Result.jsp");
rd.forward(request, response);
//response.sendRedirect("Result.jsp");
}else{
System.out.println("failure!!"+userCaptchaResponse);
response.sendRedirect("Index.jsp"+"?id=false");
}
}
jsp页面中的代码是
<tr align="center">
<td align="right" width="33%"><img height="60px" width="140px" src="jcaptcha.jpg" /></td>
<td align="left" width="33%" valign="middle"><input type="text" name="jcaptcha" value="" /></td>
</tr>
我希望我的验证码工作,无论曲奇是否被阻止!!!
这个方法或任何其他方法在java中实现captcha有什么解决方案吗
我使用jdk 1.7和tomcat 7作为运行时环境。验证码查找的问题在于它依赖于用户会话。我认为这是一个设计缺陷。如果cookie被阻止,会话将不会链接到用户 还有其他图书馆,例如。或其他类似的服务 基本上,如果您有一个生成验证码的库,您可以将其作为伪算法来实现,该算法不依赖于会话: 对于每种形式,包括验证码:
- 生成临时验证码
- 生成一个难以猜测且唯一的标识符(可能带有uuid)
- 将唯一标识符链接到正确的应答服务器端,并暂时保留它
- 在生成的表单中提供唯一标识符
- 如果用户发送表单,他将提供猜测和uuid,您可以在服务器端查找这对李>
- 无论用户是否输入了正确答案,都要使UUID和图像无效
如果从性能的角度来看这太慢,您可能会考虑有一个后台进程来填充固定大小的FILO容器/队列来保存预先计算的CAPTCHA。
< P>如果cookie被禁用,JCaptcha将不工作。有一个bug: 您可以尝试其他库,例如recaptcha