天天看點

1.Java 登陸失敗鎖定使用者 (實戰案例)

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);
	}