若登陆账号错误次数过多则限制登陆一定时长(自定义时长)

  • 前提须知:登陆拦截器
  • 此演示:登陆5次错误 则限制登陆时长5秒

业务层实现方法

  • 在控制器中使用此方法,若判断用户账户和密码是否正确则返回用户对象
  • 定义session中的key为’count’
  • 定义一个日期对象存放时间,时间是当前时间的后5秒,将此时间存放进session中key为’time’中
  • 若登陆账号失败(账号或者密码有误),则将’count’累加一次
  • 累加达到5次之后开始禁止登陆(账号密码输入正确也无法进入),只有当时间过了5秒后,也就是抵达session的key为’time’的时间,就清理session, 清理完以后才可以重新输入正确密码登陆
 public Employee login(String username, String password) {//        获取sessionHttpSession session = UserContext.getSession();
//        如果存进session的count变量为nullif (session.getAttribute("count") == null) {
//            初始化countsession.setAttribute("count", 0);}//        密码错误5次 则限制登陆一段时间if ((Integer) session.getAttribute("count") >= 5) {
//            如果当前时间大于session设置的时间则清楚sessionif (new Date().after((Date) session.getAttribute("time"))) {
//                    清除sessionsession.invalidate();}
//              抛出登录次数过多异常throw new LoginException("登陆次数过多,暂被禁止登陆,请稍后再试");}//              创建日历对象,方便对时间做操作Calendar instance = Calendar.getInstance();
//        为日历对象设置当前时间instance.setTime(new Date());
//       给当前时间加时instance.add(Calendar.SECOND, 5);
//       在获取当前时间加时Date time = instance.getTime();
//        将当前时间设置到session中session.setAttribute("time", time);if (!StringUtils.hasText(username)) {session.setAttribute("count", (Integer) session.getAttribute("count") + 1);throw new LoginException("用户名不能为空");}if (!StringUtils.hasText(password)) {session.setAttribute("count", (Integer) session.getAttribute("count") + 1);throw new LoginException("密码不能为空");}Employee employee = employeeMapper.selectByUsernameAndPassword(username, password);if (employee == null) {session.setAttribute("count", (Integer) session.getAttribute("count") + 1);throw new LoginException("账号或密码错误");}return employee;}

控制器

  • 这里抽取了存放session对象的类UserContext
  • 这里获取了此用户所有的权限给拦截器判断,不懂请跳转至:权限注解和权限拦截器
    在这里插入图片描述

效果图

  • 输入错误密码5次以内
    在这里插入图片描述
  • 输入错误密码5次以后
    在这里插入图片描述
  • 只有过多5秒以后 输入正确密码即可登陆
    在这里插入图片描述

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

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

相关文章

根据IP限制指定时间内访问接口的次数

在网上看见有人问一个问题:想限制一下某个接口在一分钟之内只能被同一个ip请求指定次数。 方法比较多,这里就用Redis做一个简单的限制。 大致逻辑: 把请求的ip作为key,请求次数作为value存储在Redis里面,第一次请求value为1&am…

openAI--十拳剑助你做AI时代的弄潮儿

AI它厉害(diao)吗? 最近大家玩chatgpt还好吗? 有被它的恋爱情商暴击到吗? 有没有觉得那在leetcode上所向无敌的技巧都是浮云吗? 今天,我为大家带来十个很好的AI平台。这一篇先介绍一下&…

虚拟数字人和GPT-4的结合,能否迎来新爆发?

最近,ChatGPT一直在互联网上狂飙,从 去年11月底推出到月活过亿,仅花了2个月的 时间。它既可以拥有美国的医学牌照、参加司法考试,又能写小说、编代码、查资料,还可 以陪你闲聊,你问它什么话题,它…

在一个领域里面发光、发热

大家好,这期分享一些好的公众号给家,希望对你以后成长路有所帮助,据我了解,公众号的作者都是在自己的领域里很努力,发光、发热,大家喜欢的都可以关注一下,支持一下,在此感谢大家的认…

低代码平台助力AIGC:让人工智能技术更加普及和高效

今年人工智能的风是吹了一波又一波,从ChatGPT到文心一言,短短四个多月的时间,GPT完成了从3.0、3.5到4.0的推新发布,一步步刷新了民众对于目前人工智能技术发展的认知底线,让人们直观地感受到了人工智能技术的蓬勃发展。…

开源大语言模型LLMs汇总

向AI转型的程序员都关注了这个号👇👇👇 大语言模型 大语言模型(LLM)是指使用大量文本数据训练的深度学习模型,可以生成自然语言文本或理解语言文本的含义。大语言模型可以处理多种自然语言任务,…

黑群辉DSM 6.2.3 系统安装

修改引导程序配置文件 首先我们可以使用ChipEasy芯片无忧查找U盘的VID和PID。 以下图为例,这个U盘的VID是0930,PID是6544。 请记录好这两个值。下面修改配置文件需要用到。 逻辑盘符 : E:\ 此分区容量: 7.2G 设备ID : VID 090C PID 2000 设备序列号: …

群晖外网访问之安装神卓互联NAS插件的方法(保证成功)

PS:本教程适合x86架构也适合ARM架构的群晖系统,白群晖和小猫盘均可以。 最近买了一台群晖DS218play,家里还有一台DS918,总共算是有两台NAS了,但是苦于只能在家里的局域网访问,想实现在外面比如公司访问家里…

玩转群晖NAS套件系列五:Moments的安装与使用保姆级教程!

本章总结: 上一章节我们讲解《玩转群晖NAS套件系列四:Audio Station安装使用保姆级教程!》,此教程堪称史上手把手的保姆教程,受到广大网友的一致好评。 Moments是群晖专为多媒体文件量身定做的,它可以识别你…

2022年10月 cpolar软件实现内网穿透连接群晖NAS

前言 1.cpolar简介 cpolar是一款拥有远程控制和内网穿透功能的软件。而且还可以监控端口的HTTP请求,利用实时的cpolar Web UI开发者工具,让您调试代码更容易。您可以监听所有隧道上的HTTP消息包,分析消息包的结构内容,找出问题点…

黑群晖6.1.4-DS3615xs_65217安装使用教程、含下载资源、亲测有效

安装所需硬件条件 黑群晖号称无硬件要求,就像java号称一次编译到处执行一样,打广告骗新手而已,别太当真。 首先,正版的群晖,你肯定就得用他们自己的硬件,该硬件有绝对合适的硬件环境,还有产品识…

玩转群晖NAS套件系列六:Web Station的安装与使用保姆级教程!

本章总结: 上一章节我们讲解《玩转群晖NAS套件系列五:Moments的安装与使用保姆级教程!》,此教程堪称史上手把手的保姆教程,受到广大网友的一致好评。 Web Station这个套件是群晖的http/https服务器,也就是W…

威联通NAS与群晖NAS通过Cloud Sync与webDAV实现文件同步的详细图文操作

威联通T453Dmini和群晖DS920,想实现两台NAS中的某个文件夹同步功能,如何实现,具体操作如下: 1.假如想把威联通NAS中的“软件”文件夹与群辉NAS中的“软件”文件夹进行同步,首先这两个NAS中要有这个文件夹,…

群晖DS920+ NAS操作手册(个人原创编写)

一、 NAS基本信息 二、访问方式 2.1 通过域名连接 1)在浏览器中输入NAS域名(QC ID或公网域名):quickconnect.cn/XXX。 2)输入账户密码,NAS连接成功。 2.2 通过IP直接连接 2.2.1 通过局域网IP直接连接…

玩转群晖NAS套件系列一:cloud sync套件的安装与使用保姆级教程!

玩转群晖NAS套件系列一:cloud sync套件的安装与使用保姆级教程! 本章前言: 关于群晖NAS本章系列文章就不做详细讲解,伴随近几年私有云的兴起,群晖NAS已经是人人皆知,群晖NAS是图形化的nas,是一款…

手把手教你创建群晖nas「共享文件夹」,从此告别 U 盘和低效传输

现如今,线上办公已经成为形势所趋,如何高效协作也成了职场人共同追求的目标📁 为了便于线上的文件管理与分发,我们可以在群晖nas上创建共享文件夹。将成员邀请到共享文件夹内,各成员可上传文件到在线文件夹中&#xff…

玩转群晖NAS套件系列四:Audio Station安装使用保姆级教程!

本章总结: 上一章节我们讲解《玩转群晖NAS套件系列三:Video Station安装使用保姆级教程!》,此教程堪称史上手把手的保姆教程,受到广大网友的一致好评。 很多人喜欢听音乐,但苦于手机容量有限,需…

黑群晖折腾之安装Transmission并替换TWC增强中文界面

Transmission一款好的下载工具,但是默认的界面,管理功能太少了而且丑 一、首先安装Transmission这个BT下载程序。 1、进入群晖点击套件中心–设置–套件来源,点新增添加一个源:http://packages.synocommunity.com/ 后保存。 2.安…

玩转群晖NAS套件系列七:File Station的安装与使用保姆级教程!

本章概述: 上一章节我们讲解《玩转群晖NAS套件系列六:Web Station的安装与使用保姆级教程!》,此教程堪称史上手把手的保姆教程,受到广大网友的一致好评。 File station这个是群晖系统预装的套件,非常重要并…

黑群晖nas安装保姆级教程

前言: 本人适合许多新手入门有硬件用途和许多东西反正自我感觉是保姆级的教程。 第1次发帖,有些问题请多多指教。 以前踩过的坑一一的说出来,100%适合小白,一站式服务也可以在评论区交流。 本文会从 用途→ 硬件→ 系统 首先介绍用途 有些…