-
session问题20
需要做个登录验证,怎么使用session记录登录错误次数?目的是在用户登录错误3次后登录页面显示要求输入验证码。
问题补充:public String login() {
boolean isHuman = imageCaptchaService.validateResponseForID(contextPvd
.getSessionId(false), checkCode);
User user = userMng.authenticate(loginName, password);
if (user == null) {
addActionError("用户名不存在或密码错误!");
return loginInput();
}
if (!isHuman) {
addActionError("验证码错误!");
return loginInput();
}
}
应该怎么改?2012年9月04日 14:30
9个答案 按时间排序 按投票排序
-
采纳的答案
private Map<String,Integer>map=new HashMap<String, Integer>();
public String login() {
boolean isHuman = imageCaptchaService.validateResponseForID(contextPvd
.getSessionId(false), checkCode);
User user = userMng.authenticate(loginName, password);
if (user == null) {
addActionError("用户名不存在或密码错误!");
if(map.get(loginName)!=null)
{
int count=map.get(loginName);
map.put(loginName,count+=1);//累加错误登录次数
}else
{
map.put(loginName,1);
}
return loginInput();
}
int count=map.get(loginName);
if(count==3)//当错误此时等于3输入验证码 连接
{//验证码
}
if (!isHuman) {
addActionError("验证码错误!");
return loginInput();
}
}
//需要添加登录陈功后清空Map的count=0;2012年9月04日 15:32
-
优化优化.
public String login() { boolean isHuman = imageCaptchaService.validateResponseForID(contextPvd.getSessionId(false),checkCode); if (!isHuman) { addActionError("验证码错误!"); return loginInput() } SimpleDateFormat f= new SimpleDateFormat("yyyyMMdd"); String dateStr = f.format(new Date());//yyyMMdd Map<String, Object> application = ActionContext.getContext().getApplication(); Map<String, Integer> errorMap = application.get(loginName);//错误次数记录 Integer errorCount = 0; if (errorMap != null ){ errorCount = errorMap.get(dateStr) == null ? 0 : errorMap.get(dateStr); if (errorCount >= 3) {// return login addActionError("当天密码错误次数超过三次!"); return loginInput(); } }else{ errorMap = new HashMap<String, Integer>(); application.put(loginName, errorMap); } User user = userMng.authenticate(loginName, password); if (user == null) { addActionError("用户名不存在或密码错误!"); errorMap.put(dateStr, ++errorCount); return loginInput() }else{//清空密码错误记录 application.remove(loginName); } }
2012年9月04日 16:37
-
public String login() { boolean isHuman = imageCaptchaService.validateResponseForID(contextPvd.getSessionId(false),checkCode); if (!isHuman) { addActionError("验证码错误!"); return loginInput() } Map<String, Object> application = ActionContext.getContext().getApplication(); Integer errorCount = application.get(loginName) == null ? 0 : (Integer) application.get(loginName); if (errorCount >= 3) {// return login addActionError("用户密码错误次数操作三次!"); return loginInput(); } User user = userMng.authenticate(loginName, password); if (user == null) { addActionError("用户名不存在或密码错误!"); application.put(loginName, ++errorCount); return loginInput() }else{//清空密码错误记录 application.remove(loginName); } }
2012年9月04日 15:45
-
1.数据库
2. session 监听器 HttpSessionListener 监听session创建,销毁,在这个过程中判断次数,用户名。和其他处理2012年9月04日 14:54
-
Map<String,Integer>map=new HashMap<String, Integer>();
if(map.get(session.getId())!=null)
{
int count=map.get(session.getId());
map.put(session.getId(),count+=1);
}else
{
map.put(session.getId(),1);
}2012年9月04日 14:48
-
这个不应该在session中存储,因为这样错误次数是针对一个客户端,当用户关闭客户端 然后再启动一个就会创建一个新session;
思路:
1、使用如HashMap 、Ehcache(可以设定缓存大小,之前我就用这个记录) 或 内存表;记录 userid ----> count之间对应关系
2、先查userid对应的count,如果没有则加1;
3、判断数量是否大于最大次数2012年9月04日 14:45
相关推荐
验证码的Session问题主要涉及到Web应用中的用户验证与安全机制。在Web开发中,验证码是一种防止自动机器人或恶意脚本进行非法操作的有效手段,如防止批量注册、刷票等。而Session是服务器端用来存储用户会话信息的一...
正对java Web项目,同浏览器同时打开两个登录窗口(不同Tag),用不同用户登录,为避免使用同一个Session,需要使用这段代码。否则先登录的用户的Session会变成后登录用户的Session.相关系统使用权限也会变。
CASClient 集群环境的 Session 问题及解决方案 本文将详细介绍 CASClient 集群环境中的 Session 问题及解决方案。CASClient 是一种开源的单点登录系统,能够提供统一的登录和注销机制。但是在集群环境中应用 CAS...
### 一般应用程序中如何处理Web页面的Session问题 在Web开发过程中,Session管理是一项至关重要的技术,它确保了用户在多次请求之间的状态得以保存。本文将深入探讨在使用一般应用程序处理Ajax请求时如何有效地获取...
因为小程序原生不支持Cookie,因此也不支持Session。 网上找到的的一些方法有缺陷,而且很多累赘,估计没有实际测试过,在此直接给出实测可用的代码。 大概思路就是借助小程序本地储存+网络请求的header可读可写来...
uploadify jsp上传附件火狐浏览器不兼容丢失session问题,Uploadify v3.2
### Session问题探讨:登录安全机制详解 在现代Web应用中,Session管理是保障用户认证与授权的核心技术之一,尤其在涉及用户登录等敏感操作时显得尤为重要。本文将深入探讨Session的相关概念、工作原理以及如何利用...
然而,随着Web服务的复杂性和交互性增加,跨域资源共享(CORS)和会话(Session)共享成为开发者需要面对的重要问题。本文将详细讲解如何在Spring Boot应用中解决跨域session共享的问题,并探讨防止SQL注入的相关...
然而,当涉及到跨域时,`iframe` 遇到的问题之一就是无法正常访问父页面或被嵌入页面的`session`。这是因为浏览器的同源策略(Same-Origin Policy)限制了不同源之间的交互,包括`session`和`cookie`。 同源策略是...
标题与描述概述的知识点主要集中在Internet Explorer(IE)的Cookie机制如何引发Session丢失的问题,并探讨了解决方案。本文将深入解析这一现象的原因、影响以及如何有效应对。 ### 一、IE Cookie机制与Session关联...
在探讨“IFrame中Session丢失的解决...通过上述策略的应用,可以有效解决IFrame环境下Session丢失的问题,提高Web应用的稳定性和安全性。然而,开发者还需持续关注浏览器更新和隐私政策变化,以适应不断发展的Web环境。
**MobaXterm 专业版 无session:全能的远程终端解决方案** MobaXterm 是一款强大且功能丰富的远程计算工具,尤其适用于IT专业人士和开发者。它的专业版提供了一整套高级特性,使得用户能够轻松地进行远程会话管理、...
在前后端分离的项目中,Vue2经常遇到的一个挑战是处理AJAX跨域请求时的Session问题。在本文中,我们将深入探讨这个问题,并提供一种解决方案。 首先,让我们理解跨域和Session的基本概念。跨域是由于浏览器的同源...
分布式 Session 方案是指在分布式系统中,为了解决 Session 问题而采用的方法。 Session 是 Web 应用程序中保存用户信息的机制,当用户请求时,服务器需要记录用户的信息,以便在后续请求中使用。然而,在分布式系统...
在提供的文件列表中,`TestFilter.java`和`TestGetHeXunInfo.java`看起来是Java相关的测试文件,与PHP CMS的Session问题不太直接相关。不过,如果你的系统中涉及到Java应用与PHP CMS的交互,如使用Java客户端访问...
总之,“redis-session-manager-tomcat6共享包”为Tomcat 6提供了一种高效、可靠的session共享方案,通过修复null值session问题,提高了系统的稳定性和兼容性,是现代Web应用分布式架构中的重要组件。
以上就是“web.py在SAE中的Session问题解决方法(使用mysql存储)”的核心内容。通过阅读本文档,开发者可以在SAE平台中使用web.py框架,并利用MySQL数据库存储Session信息,解决Session无法本地存储的问题,从而...
然后查看CodeIgniter的日志文件(`application/logs/`),它们可能包含关于Session问题的线索。 总之,理解和掌握CodeIgniter的Session机制对于开发健壮的Web应用程序至关重要。正确配置和使用Session可以提高用户...
本文将详细探讨一个特定的问题,即“uploadify在Firefox下丢失session问题的解决方法”,这是一个常见的前端上传插件与后端session管理不兼容的问题,特别是在使用JSP和Firefox浏览器时。 首先,了解session的基本...