package com.vci.starter.web.interceptor;
|
|
import com.vci.starter.web.exception.VciBaseException;
|
import com.vci.starter.web.pagemodel.SessionInfo;
|
import com.vci.starter.web.pagemodel.TokenVO;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
/**
|
* 会话信息相关的接口
|
* @author weidy
|
* @date 2020/2/27
|
*/
|
public interface VciSessionForLoginI {
|
/**
|
* 检查用户是否登录
|
* @param userId 用户名
|
* @return 为空表示没有登录
|
*/
|
String checkIsLogined(String userId);
|
/**
|
* 强制用户下线
|
* @param userId 用户名
|
*/
|
void popUser(String userId);
|
|
/**
|
* 将会话信息存储到Redis
|
* @param sessionInfo 会话信息
|
*/
|
void saveSessionInfo(SessionInfo sessionInfo);
|
|
/**
|
* 校验请求是否符合权限验证
|
* 包含1,系统是否可以访问当前服务或者接口
|
* 2, 用户是否有权限访问当前服务
|
* 3, 用户是否有权限访问当前数据
|
* @param request 请求对象
|
* @param systemPrivateToken 系统的许可码
|
* @param sessionInfo 当前用户会话对象
|
* @param handler 执行对象
|
* @return true表示有权限,false表示没权限
|
* @throws VciBaseException 没有权限的时候会抛出异常
|
*/
|
boolean checkRequestRights(HttpServletRequest request, String systemPrivateToken, SessionInfo sessionInfo, Object handler) throws VciBaseException;
|
|
/**
|
* 更新请求时间
|
* @param userToken 用户token
|
*/
|
void updateRequestTime(String userToken);
|
|
/**
|
* 根据token获取用户的对象
|
* @param userToken 用户token
|
* @return 用户会话对象
|
*/
|
SessionInfo getSessionInfoByToken(String userToken);
|
|
/**
|
* 退出登录
|
* @param userToken 用户的会话许可
|
*/
|
void logout(String userToken);
|
|
/**
|
* 根据token获取用户在系统中还可以存在的时间
|
* @param userToken userToken 用户的会话许可
|
* @return 用户在系统中还可以存在的时间(毫秒)
|
*/
|
long getCanAliveTime(String userToken);
|
|
/**
|
* 创建许可的信息,并存储到缓存中
|
* @param sessionInfo session的信息
|
* @return 许可信息
|
*/
|
TokenVO createToken(SessionInfo sessionInfo) ;
|
|
/**
|
* 创建许可的信息,并存储到缓存中
|
* @param key token在redis中的key。
|
* @param sessionInfo session的信息
|
* @return 许可信息
|
*/
|
TokenVO createToken(String key, SessionInfo sessionInfo) ;
|
|
/**
|
* 刷新缓存中的token
|
* @param sessionInfo session的信息
|
*/
|
void refreshToken(SessionInfo sessionInfo);
|
|
/**
|
* 刷新缓存中的token
|
* @param key token在redis中的key
|
* @param sessionInfo session的信息
|
*/
|
void refreshToken(String key, SessionInfo sessionInfo);
|
}
|