session 存储登录信息,超5次等待1分钟

来源:互联网 发布:eplan2.6破解软件 编辑:程序博客网 时间:2024/05/20 08:01

简单说明:

用户登录缓存到session,用户登录错误次数超过5次,等待1分钟

import java.util.Date;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.ly.cloud.soc.entity.login.UserLoginInfo;/** * @author krs * @date 创建时间2017年10月20日 上午11:33:25  * @describe 处理用户登录的信息 */public class SessionUtils {private static final String SESSION_USER_LOGIN = "session_user_login_";private static int LIMIT_TIME = 1*60*1000; //登录错误的限制/** *  *@describe 往session添加用户登录的错误信息 *@param request *@param response *@param username */public static void addUserError(HttpServletRequest request, HttpServletResponse response, String username) {HttpSession session = request.getSession();String key = SESSION_USER_LOGIN + username;UserLoginInfo uli = (UserLoginInfo) session.getAttribute(key);if(uli != null){//第5次就不添加if(uli.getCount() < 6){uli.setCount(uli.getCount()+1);uli.setLoginTime(new Date());}}else{uli = new UserLoginInfo();uli.setCount(1);uli.setUsername(username);uli.setLoginTime(new Date());}//更新sesion里面的值session.setAttribute(key, uli);}/** *  *@describe 验证用户用户是否登录失败超5次。时间过5分钟允许登录 *@param request *@param response *@param yhzh *@return */public static boolean checkUserLogin(HttpServletRequest request, HttpServletResponse response, String username) {boolean flag = false;HttpSession session = request.getSession();String key = SESSION_USER_LOGIN + username;UserLoginInfo uli = (UserLoginInfo) session.getAttribute(key);if(uli != null){Date loginTime =  uli.getLoginTime();if(uli.getCount() >= 5 ){//小于5分钟boolean time =  (System.currentTimeMillis()-loginTime.getTime()) <= LIMIT_TIME;if(time){flag = true;}else{//超过5分钟,清空sessionsession.setAttribute(key, null);}}}return flag;}}import java.util.Date;/** * @author krs * @date 创建时间2017年10月20日 上午11:50:45  * @describe 用户登录信息 */public class UserLoginInfo {//用户登录账号private String username;//用户最后登录时间private Date loginTime;//用户登录错误的次数private int count;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public Date getLoginTime() {return loginTime;}public void setLoginTime(Date loginTime) {this.loginTime = loginTime;}public int getCount() {return count;}public void setCount(int count) {this.count = count;}}


原创粉丝点击