老師我想實(shí)現(xiàn)限定登錄失敗次數(shù),超過指定次數(shù)就限制登錄一段時(shí)間 ,請(qǐng)問該怎么做。
我已經(jīng)實(shí)現(xiàn)了本課的代碼了,想在此基礎(chǔ)上提升一下。
想實(shí)現(xiàn)限定登錄失敗次數(shù),超過指定次數(shù)就限制登錄一段時(shí)間 ,請(qǐng)問該怎么做。
想實(shí)現(xiàn)賬號(hào)處于登錄狀態(tài)時(shí),如果重新登錄賬號(hào),前一賬號(hào)會(huì)失效。
請(qǐng)各位大牛不吝賜教,謝謝,小弟在此拜謝!
2015-12-14
一、
????????1. ?private static final int maxError = 6; //可以寫一個(gè)靜態(tài)常量用來用來白表示限制的閥值.
?????????2. ?private static final Map<String, Integer> failMap = new HashMap<String, Integer>();//創(chuàng)建一個(gè)Map<String,Integer> 類型的變量來記錄用戶登錄失敗的次數(shù)
????????3.?private static final Map<String, Date> lockMap = new HashMap<String, Integer>(); //記錄被鎖定的用戶。
????????4.?當(dāng)用戶登錄出錯(cuò)次數(shù)超過閥值,給lockMap里面添加要鎖定的用戶和當(dāng)前時(shí)間。
????????5.?當(dāng)用戶每次登錄時(shí),先檢測(cè)lock中是否包含鎖定的用戶,如果包含,根據(jù)用戶名取出Date對(duì)象,用當(dāng)前時(shí)間比對(duì)一下,看是否超過你的鎖定時(shí)間。如果未超過,則提示鎖定。否則,下一步。
????????6. ?此時(shí),檢測(cè)用戶密碼是否出錯(cuò),如果是,則向failMap 中添加數(shù)據(jù),如果出錯(cuò)超過閥值,講用戶添加到lockMap,并清空failMap。否則,登錄成功。
二、前一賬號(hào)失效,不知道你說的什么意思,是再也無法登錄么。如果是,你可以選擇在心注冊(cè)用戶時(shí)刪除之前的賬號(hào)。