利用Memcached缓存登陆失败三次后十五分钟能不能登陆,哪位大神给个controller看看,尽量简化,在线等谢谢。java,框架SSM,尽量解释下怎么做的。
memcache是key,value存储的,类似于map,知道这个,大概思路就是,把当前用户登录的用户名作为key,次数作为登陆次数,每次访问时先从缓存中去取数据,取不到就新增数据,取到数据仍错误就将访问次数加1。当大于等于3次时,记录下当前时间,直接返回提示不能登陆,15分钟后清空缓存,当然也可以设置过期时间,这样就可以勒
一、安装Memcached:
1、 下载Memcached(Memcached Windows 1.4.13 32/64 英文版)文档目录下已经放置下载的文件包。附:http://www.newasp.net/soft/63735.html
2、 打开CMD(Win+R:此处需要以管理员身份打开),进入到memcached所在目录。输入memcached -d install,如果没有报错则安装成功
3、 打开服务Service.msc,找到Memcached Server,打开服务
二、Tomcat配置
1、 进入Tomcat的conf文件夹,打开content.xml文件 增加配置如下:
2、 下载lib包(此处以Tomcat8为例),并拷贝至tomcat/lib目录下
memcached-session-manager-2.1.1.jar
spymemcached-2.12.3.jar
memcached-session-manager-tc8-2.1.1.jar(ps:这个是Tomcat8使用的,如果是7,请下载memcached-session-manager-tc7-2.1.1.jar;经过测试tc8是可以在Tomcat9中使用)文档目录下放置了这3个jar,仅供参考
在Java代码中Session共享的对象类需要增加 implements Serializable
纯手工制作
一些对应测试用的 文件,如果需要 留下邮箱
登录三次失败不能登录完全不用memcached做啊,直接在前段做不好吗?
可以考虑直接在session操作,如果项目有用到分布式再考虑第三方缓存,这个很简单啊,记录用户ID,每次错误加+1,如果正确清楚用户KEY记录的数值和ID,
例子:判断错误 添加key为用户ID 值为 错误数,第二次如果有错误数加1,如果第三次还错误,则添加冻结到多会的时间,下次先查询是否是时间还是数字就可以了。。。