核心行为
开启Session校验调度任务、校验所有的session、具体的Session自我校验、关闭Session校验调度任务
核心类
ValidatingSessionManager、SessionValidationScheduler、ValidatingSession
ValidatingSessionManager的行为
public interface ValidatingSessionManager extends SessionManager { // 校验所有的Session void validateSessions(); }
SessionValidationScheduler的行为
public interface SessionValidationScheduler { // Session校验是否处于开启状态 boolean isEnabled(); // 开启Session校验 void enableSessionValidation(); // 关闭Session校验 void disableSessionValidation(); }
ValidatingSession的行为
public interface ValidatingSession extends Session { // 校验是否处于开启状态 boolean isValid(); // Session自我校验 void validate() throws InvalidSessionException; }
校验过程解析
ValidatingSessionManager开启Session校验调度任务 ==》 Session校验调度任务中使用ValidatingSessionManager校验所有的Session
==》 ValidatingSessionManager让其子类获得所有的Session(基础Session) ==》 各个基础Session自我校验
ValidatingSessionManager开启Session校验调度任务
protected SessionValidationScheduler sessionValidationScheduler; public void setSessionValidationScheduler(SessionValidationScheduler sessionValidationScheduler) { this.sessionValidationScheduler = sessionValidationScheduler; } protected synchronized void enableSessionValidation() { SessionValidationScheduler scheduler = getSessionValidationScheduler(); if (scheduler == null) { scheduler = createSessionValidationScheduler(); setSessionValidationScheduler(scheduler); } if (!scheduler.isEnabled()) { if (log.isInfoEnabled()) { log.info("Enabling session validation scheduler..."); } //