关于登陆的次数限制的简单实现

之前被问到一个问题,关于登陆次数限制的问题。比如我每天限制用户只能进行三次错误登陆操作,如果超过三次,那么就锁定账户,一天后才能再次登陆。

这个其实也不是很难,不过逻辑还是需要好好验证一下,目前我大概实现成功了,因为测试的次数也有限,所以可能有纰漏,还请各位斧正,不吝赐教。

项目结构、
这里写图片描述
这里写图片描述
这个项目后来改名了,所以可能名字和GitHub上的不一致,GitHub上项目名是LoginTimes。
还有就是本人能力有限,所以不太会写前端的代码,只能用这种比较low的方式实现不同错误的跳转了。

另外这是我第一天尝试用eclipse,所以可能项目结构也会有点问题,各位见谅。
GitHub项目地址

直接把关键内容贴出来,其他的都是简单的增删改查什么的,不说了。
主要内容还是Controller里面的逻辑代码,如下
CASController.java

package com.yubotao.CookieAndSession;import java.io.IOException;
import java.util.Map;import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;import com.yubotao.POJO.User;
import com.yubotao.service.UserService;@Controller
public class CASController {private static final Log log = LogFactory.getLog(CASController.class);@AutowiredUserService userService;@RequestMapping(value = "/login",method = RequestMethod.GET)public String getlog(Map<String,Object> map){map.put("user",new User());return "login";}@RequestMapping(value = "/login",method = RequestMethod.POST)public String login(HttpServletRequest request,HttpServletResponse response,User u) throws ServletException,IOException{String username = u.getUsername();String password = u.getPassword();if(username == null || password == null){return "paramsNull";}User realUser = userService.getUserByUsername(username);Long loginTime = System.currentTimeMillis();Integer wrongTimes = null;Integer locked = null;if(realUser == null){return "objectNull";}if((loginTime - realUser.getLastlogin()) > 24*3600*1000){realUser.setWrongtimes(0);realUser.setLocked(0);userService.updateUser(realUser);}if(realUser.getLocked() == 0){if((loginTime - realUser.getLastlogin()) > 5*60*1000){realUser.setLastlogin(loginTime);if(password.equals(realUser.getPassword())){userService.updateUser(realUser);return "success";}else{wrongTimes = realUser.getWrongtimes() + 1;if(wrongTimes > 2){locked = 1;realUser.setLocked(locked);}realUser.setWrongtimes(wrongTimes);userService.updateUser(realUser);return "pwWrong";}}elsereturn "in5m";}return "fail";}}

大概讲一下我的实现逻辑吧:

首先登陆需要判断的是,上次登陆时间和这次登陆时间差距是否大于24小时;如果大于24时,则将用户解锁并且将错误次数置0;然后判断用户是否属于锁定状态,如果非锁定,再判断用户是否在5分钟内再次登陆;大于5分钟时,此时不论用户帐密输入正确与否,都需要更新他的最近一次登陆时间;然后判断用户帐密是否正确,如果正确,更新用户到数据库,并返回成功;如果错误,对于用户的错误次数+1,并且判断错误次数是否已经是3次了,如果是3次就锁定用户;之后还是要更新用户到数据库,然后返回帐密错误信息。

整个流程大体如上,目前来看,逻辑貌似没有漏洞,如果有什么我没有考虑到的,还请不吝赐教,谢谢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/56972.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搭建RoacketChat(v4.5.1)聊天服务。有生之年,我也能使用上自己搭建的聊天服务器

RocketChat简介 Rocket.Chat是一款开源的聊天软件。多client支持&#xff1a;Android&#xff0c;ISO&#xff0c;Windows&#xff0c;Mac&#xff0c;Linux&#xff0c;Web。安装部署简单、文档丰富&#xff0c;易于扩展。功能强大。支持群组聊天&#xff0c;私聊群&#xff…

python——体育竞技分析,预测比赛成绩

体育竞技分析 需求&#xff1a;毫厘是多少&#xff1f;如何科学分析体育竞技比赛&#xff1f;输入&#xff1a;球员的水平输出&#xff1a;可预测的比赛成绩 体育竞技分析&#xff1a;模拟N场比赛 计算思维&#xff1a;抽象 自动化模拟&#xff1a;抽象比赛过程 自动化执行…

python体育竞技分析代码200行_【python】体育竞技分析:预测球队比赛成绩

体育竞技分析 一、程序总体框架及步骤&#xff1a; 步骤1&#xff1a;打印程序的介绍性信息 步骤2&#xff1a;获得程序运行参数&#xff1a;probA&#xff0c;probB&#xff0c;n 步骤3&#xff1a;利用球员A和B的能力值&#xff0c;模拟n局比赛 步骤4&#xff1a;输出球…

新浪体育——篮球足球的直播和战报爬取

新浪体育——篮球足球的直播和战报爬取 用到的包的介绍 以上是基于python3.6.5的新浪体育直播间篮球足球的直播和战报爬取所引用到的全部内外部包&#xff0c;下面将会挑几个与爬虫息息相关的包进行介绍。 1.lxml Python 标准库中自带了 xml 模块&#xff0c;但是性能不够好…

案例——中国篮球运动员的基本信息分析

案例——中国篮球运动员的基本信息分析 分析目标 1、计算中国男篮、女篮运动员的平均身高与平均体重 2、分析中国篮球运动员的年龄分布 3、计算中国篮球运动员的体质指数 数据获取 先导入可能需要用到的包 import pandas as pd import numpy as np import matplotlib.pypl…

【数据说第四期】篮球比赛中的投篮选择

篮球比赛中的投篮选择 参加过篮球比赛的同学&#xff0c;在球场上是否有这样的经历&#xff1f; 当上一次投篮未命中时&#xff0c;你会倾向于比上一次更近的距离出手投篮&#xff0c;当上一次投篮稳稳命中时&#xff0c;你会想尝试下比上一次更更远距离的出手。于是&#xff…

Firefox火狐浏览器强制使用阅读模式(添加插件法)

Firefox火狐浏览器强制使用阅读模式&#xff08;添加插件法&#xff09; 1.打开Firefox火狐浏览器 2.在地址栏输入 about:addons 3.点击左边的【扩展】 4.搜索Activate Reader View&#xff0c;点击【安装】&#xff0c;之后就可以看到任务栏的左上角有一个书本样子的按钮…

UFT14.52用谷歌浏览器chrome、火狐浏览器firefox 跑自动化

安装了14.52 发现录制的下面不能选择 谷歌、火狐浏览器&#xff0c;是因为浏览器不能用&#xff0c;能用了就有&#xff1a; 插件下载地址&#xff1a;https://chrome.google.com/webstore/detail/micro-focus-uft-agent/kglbdihdcnciobeihioplammnkknjmbd?authuser1 这个是我…

无需注册,国内直接使用,你的浏览器AI小助手

ChatGPT Sidebar是什么 ChatGPT Sidebar是一个浏览器插件,可以在浏览器的侧边栏中提供自然语言处理服务。它使用OpenAI的GPT模型,可以回答各种问题,提供文本摘要、翻译等功能。 ChatGPT Sidebar可以成你的私人助理,常驻在浏览器的某个角落,当你需要翻译一段文字时,可以立…

使用火狐浏览器插件 katalon 做自动化浏览操作

今天参加全国公共英语考试&#xff0c;使用了 katalon 这个火狐&#xff08;Firefox&#xff09;浏览器的插件&#xff08;基于 selenium&#xff09;&#xff0c;简化了重复劳动。整理成文档&#xff0c;希望可以帮助到有需要的朋友。 安装 从火狐浏览器的菜单里进入“附加组件…

ubuntu下安装火狐浏览器及快捷图标

一、在线安装 apt install firefox 二、离线安装 1.下载最新的版本包 火狐官网 2.导入安装包—解压 # 我这里安装包放在opt下 cd /opt tar -jxvf Firefox-latest-x86_64.tar.bz2 3.安装完之后&#xff0c;尝试命令行启动 ./opt/firefox/firefox 4.创建快捷图标 cd /usr/share/a…

怎么把火狐浏览器整成自己喜欢的风格

不多说&#xff0c;先上图&#xff1a; 偶然发现了火狐可以通过Firefox Color扩展自己配置顶部标签栏的颜色&#xff0c;那只能掏出最喜欢的夜店粉整它一下了&#xff0c;然后再配合stylus扩展&#xff0c;就可以整出自己喜欢的风格了。 一、修改顶部书签栏颜色 1、在顶部搜索栏…

火狐firefox浏览器不能播放视频,但别的浏览器可以。

网上有好多的内容&#xff0c;都是老旧的方法&#xff0c;都是flash什么设置的。 后来在外网上找到一个视频&#xff0c;关于不能播放的视频的方法&#xff0c;我设置一下&#xff0c;没有问题。方法如下 关闭浏览器&#xff0c;再打开就可以了。

软文推广过程中有哪些实用的推广用语?

软文推广是一个文字的游戏&#xff0c;说白了就是让文字做你的营销员&#xff0c;所以在文字书写的过程中要特别注意&#xff0c;有时候一个词就能让用户感觉到舒服或不舒适&#xff0c;小编作为一个多年的软文写作人员&#xff0c;就从软文营销用语上面来讲解一下&#xff0c;…

招商软文如何写:推广诱人的广告——文芳阁传媒有话说

招商软文如何写&#xff1a;推广诱人的广告——文芳阁传媒有话说 导语&#xff1a;现在&#xff0c;很多的产品做出了好的开头后&#xff0c;会想出下一步推广的路&#xff1a;就是树形招商发展&#xff0c;其实这个时候就已经升级了服务方式&#xff0c;从产品到技术或者说是秘…

U盘产品如何做好软文推广利用软文来打造为产品引流宣传

软文推广是现在宣传手段中的重要一环&#xff0c;它可以有效的帮助企业更好的宣传产品&#xff0c;提高品牌知名度&#xff0c;提升企业形象&#xff0c;增强消费者对产品的认知度&#xff0c;从而达到促进销量的目的。U盘产品软文推广也是同样道理&#xff0c;如何做好U盘产品…

分享八个软文推广小技巧,让你在众多同行中脱颖而出!

软文推广作为现在主流的推广形式&#xff0c;想要做很容易&#xff0c;但是想要做好就要多下点功夫了&#xff0c;其实 现在大多数公司做软文推广也是在囫囵吞枣&#xff0c;雨里雾里的&#xff0c;其实想要做好软文推广就要多去 注意细节&#xff0c;俗话说细节决定成败&…

软文推广丨什么是软文推广?

随着互联网和移动互联网的普及&#xff0c;网络推广已经成为了企业和个人宣传和推广产品和服务的重要手段之一。其中&#xff0c;软文推广也是一种广泛采用的网络推广方式。本文将围绕“什么是软文推广&#xff0c;应该怎么做”这一主题&#xff0c;对软文推广的概念、特点和实…

软文推广页面

广告页面 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>广告软文推广页面</title><link href"css/fonts/advertitsing.css" rel"stylesheet"type"text/css"…

产品推广软文怎么写?500字的写作技巧为你送上,拿走直接用

对于很多企业来说&#xff0c;经费不足的情况下&#xff0c;在网上发布产品推广软文就是一个不错的选择&#xff0c;但是产品推广是一种学问&#xff0c;想要做好产品推广&#xff0c;首先要学会如何写好一篇优质的推广软文&#xff0c;大家可从以下方面进行入手&#xff0c;让…