1.以下是簡單實作Java 登陸失敗鎖定使用者代碼執行個體,如有需要改進提供,歡迎留言。
import java.util.Date;
/**
*
* @author Administrator
*
*/
public class LoginErrorLog {
private String userName ;
private int errorCount ;
private Date createTime ;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public int getErrorCount() {
return errorCount;
}
public void setErrorCount(int errorCount) {
this.errorCount = errorCount;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}
public boolean checkLoginErrorLog(HttpServletRequest request, String userName){
@SuppressWarnings("unchecked")
Map<String,LoginErrorLog> map = (Map<String, LoginErrorLog>) request.getSession().getAttribute("loginErrorMap");
if(map != null){
LoginErrorLog loginError = map.get(userName);
if(loginError.getCreateTime() != null){
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(loginError.getCreateTime()));
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
}
if(loginError != null && loginError.getErrorCount() >= 2 && loginError.getCreateTime() != null && loginError.getCreateTime().after(new Date())){
return true ;
}
}
return false ;
}
public void addLoginErrorLog(HttpServletRequest request, String userName){
@SuppressWarnings("unchecked")
Map<String,LoginErrorLog> map = (Map<String, LoginErrorLog>) request.getSession().getAttribute("loginErrorMap");
if(map != null){
LoginErrorLog loginError = map.get(userName);
if(loginError != null && loginError.getErrorCount() < 1 ){
loginError.setErrorCount(loginError.getErrorCount()+1);
}else if(loginError != null && loginError.getCreateTime() == null){
loginError.setErrorCount(loginError.getErrorCount()+1);
loginError.setCreateTime(addDate(new Date()));
}else{
loginError = new LoginErrorLog();
loginError.setUserName(userName);
loginError.setErrorCount(1);
}
map.put(userName, loginError);
}else{
map = new HashMap<String, LoginErrorLog>();
LoginErrorLog loginError = new LoginErrorLog();
loginError.setUserName(userName);
loginError.setErrorCount(1);
map.put(userName, loginError);
}
request.getSession().setAttribute("loginErrorMap", map);
}