自定义EstablishCookieUtils,LoginFilter使用
声明
为自己做demo编写
一、创建自定义Cookie使用方法
1.1创建CookieUtils对象
CookieUtils cookieUtils= new CookieUtils(userNumber);
1.2创建EstablishCookieUtils对象
EstablishCookieUtils establishCookieUtils = new EstablishCookieUtils(response,cookieUtils);
1.3调用创建方法
establishCookieUtils.establishCookie();
二、CookieUtils介绍
该类也为自定义类
2.1属性
private String cookieName;
private String cookieValue;
private int maxAge;
2.2构造方法
2.2.1无要求生命周期的Cookie 默认为-1
public CookieUtils(String cookieName, String cookieValue) {
this.cookieName = cookieName;
this.cookieValue = cookieValue;
this.maxAge = -1;
}
使用:
new CookieUtils(cookieName,cookieValue);
2.2.2自定义生命周期的Cookie
public CookieUtils(String cookieName, String cookieValue, int maxAge) {
this.cookieName = cookieName;
this.cookieValue = cookieValue;
this.maxAge = maxAge;
}
使用:
new CookieUtils(cookieName,cookieValue,maxAge);
2.2.3无要求生命周期的登录Cookie 默认为-1
public CookieUtils(String userNumber) {
this.cookieName = "LOGIN_COOKIE_"+userNumber;
loginUtils = new LoginUtils(userNumber);
Map<String,String> map = loginUtils.getEncryptionUserNumber();
this.cookieValue = map.get(userNumber);
this.maxAge = -1;
logger.warn("COOKIE_NAME:"+this.cookieName);
logger.warn("COOKIE_VALUE:"+this.cookieValue);
}
使用:
new CookieUtils(userNumber);
2.2.4自定义生命周期的登录Cookie
public CookieUtils(String userNumber, int maxAge) {
this.cookieName = "LOGIN_COOKIE_"+userNumber;
loginUtils = new LoginUtils(userNumber);
Map<String,String> map = loginUtils.getEncryptionUserNumber();
this.cookieValue = map.get(userNumber);
this.maxAge = maxAge;
logger.warn("COOKIE_NAME:"+this.cookieName);
logger.warn("COOKIE_VALUE:"+this.cookieValue);
}
使用:
new CookieUtils(userNumber,maxAge);
三、EstablishCookieUtils介绍
3.1属性
private HttpServletResponse response;
private CookieUtils cookieUtils;
3.2构造方法
public EstablishCookieUtils( HttpServletResponse response, CookieUtils cookieUtils) {
this.response = response;
this.cookieUtils = cookieUtils;
}
使用:
new EstablishCookieUtils(response,cookieUtils);
3.3方法 API
3.3.1establishCookie()–>创建通用Cookie,并添加到自定义Cookie缓存中
public CookieCatchUtils establishCookie(){
logger.info("EstablishCookieUtils__establishCookie()创建COOKIE__START");
Cookie cookie = null;
cookie = new Cookie(cookieUtils.getCookieName(),cookieUtils.getCookieValue());
cookie.setMaxAge(cookieUtils.getMaxAge());
response.addCookie(cookie);
logger.info("EstablishCookieUtils__establishCookie()创建COOKIE__END");
// 向cookie缓存中添加
return catchUtils.addMapElement(cookieUtils.getCookieName(),cookieUtils.getCookieValue());
}
使用:
establishCookieUtils.establishCookie();
四、CookieCatchUtils介绍–>自定义Cookie缓存
4.1属性
private Map<String,String> catchMap = new HashMap<>();
4.2单例模式构建CookieCatchUtils
private CookieCatchUtils(){}
private static CookieCatchUtils catchUtils = new CookieCatchUtils();
public static CookieCatchUtils getInstance(){
return catchUtils;
}
4.3方法API
4.3.1获取CookieMap缓存
public Map<String, String> getCatchMap() {
return catchMap;
}
向CookieMap添加
public CookieCatchUtils addMapElement(String cookieName, String cookieValue) {
logger.info("LoginCatchUtils__addMapElement()添加缓存__START");
catchMap.put(cookieName,cookieValue);
logger.info(String.valueOf(catchMap));
logger.info("LoginCatchUtils__addMapElement()添加缓存__END");
return CookieCatchUtils.getInstance();
}
使用:
无需自己调用,创建Cookie时自己就调用了
五、自定义LoginFilter使用方法
5.1创建CookieCatchUtils对象
CookieCatchUtils catchUtils = CookieCatchUtils.getInstance();
5.2创建LoginFilter对象
LoginFilter loginFilter = new LoginFilter(userNumber,catchUtils);
5.3调用过滤方法
loginFilter.verifyCookie();
六、LoginFilter介绍
6.1属性
private String userName;
private CookieCatchUtils catchUtils;
6.2构造方法
public LoginFilter(String userName, CookieCatchUtils catchUtils) {
this.userName = userName;
this.catchUtils = catchUtils;
}
6.3方法API
6.3.1 验证Cookie存在
public boolean verifyCookie( ){
logger.info("LoginFilter__verifyCookie()验证登录COOKIE__START");
Map<String,String> map = catchUtils.getCatchMap();
logger.info(String.valueOf(map));
Set set = map.keySet();
for (Iterator iterator = set.iterator();iterator.hasNext();){
String key = (String) iterator.next();
if ((LoginFilter.loginCookiePre+userName).equals(key)){
logger.info("LoginFilter__verifyCookie()验证登录COOKIE通过__END");
return true;
}
}
logger.info("LoginFilter__verifyCookie()验证登录COOKIE不通过__END");
return false;
}
使用:
loginFilter.verifyCookie();