验证码是为了区分人与电脑,防止电脑代替人冲击系统。在伟大的中国人民人工验证的海洋面前,验证码完全不是个事。
不过一般不是特别热门的系统是不会有人雇佣人民海洋来人工识别验证码的,所有我们的系统还是需要加入验证码机制。
在Java Web系统中验证码世界已经很多种的实现,有些很大很复杂,有些没有维护了,有些验证码人也认证不出来。。。比较合适用的就是Jcaptcha和Kcaptcha。
Captcha使用都是很简单的,通过专门的servlet生成图片,把图片的数据保存在session中,最后在处理请求的servlet中验证图片输入是否正常。当然一般都会有很多配置,因为Captcha生成图片需要时间,所有需要谨慎配置。
Kcaptcha与Shiro登录结合使用
1. Web.xml
<servlet>
<servlet-name>Kaptcha</servlet-name>
<servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Kaptcha</servlet-name>
<url-pattern>/kaptcha.jpg</url-pattern>
</servlet-mapping>
2. 登录Jsp
<%
String error = (String) request.getAttribute(FormAuthenticationFilter.DEFAULT_ERROR_KEY_ATTRIBUTE_NAME);
if(error != null){
if(error.contains("IncorrectCaptchaException")){
out.print("用户输入验证码错误.");
}
else{
out.print("登录失败,请重试.");
}
}
%>

本文介绍了在Java Web系统中如何使用Kaptcha与Shiro结合进行登录验证。通过Kaptcha生成验证码图片,存储在session中,并在登录过程中检查用户输入的验证码是否正确。详细步骤包括Web.xml配置、登录Jsp设计以及Shiro登录Filter的扩展设置。
最低0.47元/天 解锁文章
6298

被折叠的 条评论
为什么被折叠?



