import com.diyfintech.constant.Constant.SuperAdmin;
import com.diyfintech.pojo.SysUser;
import org.apache.log4j.Logger; import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map; /**
*
* Session 工具类
*
*/
public final class SessionUtils { protected static final Logger logger = Logger.getLogger(SessionUtils.class); private static final String SESSION_USER = "session_user"; private static final String SESSION_VALIDATECODE = "session_validatecode";//验证码 private static final String SESSION_ACCESS_URLS = "session_access_urls"; //系统能够访问的URL private static final String SESSION_MENUBTN_MAP = "session_menubtn_map"; //系统菜单按钮 /**
* 设置session的值
* @param request
* @param key
* @param value
*/
public static void setAttr(HttpServletRequest request,String key,Object value){
request.getSession(true).setAttribute(key, value);
} /**
* 获取session的值
* @param request
* @param key
*/
public static Object getAttr(HttpServletRequest request,String key){
return request.getSession(true).getAttribute(key);
} /**
* 删除Session值
* @param request
* @param key
*/
public static void removeAttr(HttpServletRequest request,String key){
request.getSession(true).removeAttribute(key);
} /**
* 设置用户信息 到session
* @param request
* @param user
*/
public static void setUser(HttpServletRequest request,SysUser user){
request.getSession(true).setAttribute(SESSION_USER, user);
} /**
* 从session中获取用户信息
* @param request
* @return SysUser
*/
public static SysUser getUser(HttpServletRequest request){
return (SysUser)request.getSession(true).getAttribute(SESSION_USER);
} /**
* 从session中获取用户信息
* @param request
* @return SysUser
*/
public static void removeUser(HttpServletRequest request){
removeAttr(request, SESSION_USER);
} /**
* 设置验证码 到session
* @param request
* @param validateCode
*/
public static void setValidateCode(HttpServletRequest request,String validateCode){
request.getSession(true).setAttribute(SESSION_VALIDATECODE, validateCode);
} /**
* 从session中获取验证码
* @param request
* @return SysUser
*/
public static String getValidateCode(HttpServletRequest request){
return (String)request.getSession(true).getAttribute(SESSION_VALIDATECODE);
} /**
* 从session中获删除验证码
* @param request
* @return SysUser
*/
public static void removeValidateCode(HttpServletRequest request){
removeAttr(request, SESSION_VALIDATECODE);
} /**
* 判断当前登录用户是否超级管理员
* @param request
* @return
*/
public static boolean isAdmin(HttpServletRequest request){ //判断登录用户是否超级管理员
SysUser user = getUser(request);
if(user == null || !SuperAdmin.YES.key.endsWith(user.getIsSuperAdmin())){
return false;
}
return true;
} /**
*设置当前用户可以访问的urls
* @param request
* @param accessUrls
*/
public static void setAccessUrl(HttpServletRequest request,List<String> accessUrls){
setAttr(request, SESSION_ACCESS_URLS, accessUrls);
} /**
* 判断URL是否可访问
* @param request
* @return
*/
public static boolean isAccessUrl(HttpServletRequest request,String url){
List<String> accessUrls = (List)getAttr(request, SESSION_ACCESS_URLS);
if(accessUrls == null ||accessUrls.isEmpty() || !accessUrls.contains(url)){
return false;
}
return true;
} /**
* 设置菜单按钮
* @param request
* @param btnMap
*/
public static void setMemuBtnMap(HttpServletRequest request,Map<String,Object> btnMap){ //判断登录用户是否超级管理员
setAttr(request, SESSION_MENUBTN_MAP, btnMap);
} /**
* 获取菜单按钮
* @param request
* @param menuUri
*/
public static List<String> getMemuBtnListVal(HttpServletRequest request,String menuUri){
Map btnMap = (Map)getAttr(request, SESSION_MENUBTN_MAP);
if(btnMap == null || btnMap.isEmpty()){
return null;
}
return (List<String>)btnMap.get(menuUri);
} }

最新文章

  1. 联想 Thinkpad X230 SLIC 2.1 Marker
  2. Permutation test: p, CI, CI of P 置换检验相关统计量的计算
  3. #VSTS日志# 15/11/18 插件应用市场,RM,包管理器等
  4. SQLServer 命令批量删除数据库中指定表(游标循环删除)
  5. HDU2204 Eddy&#39;s爱好(容斥原理)
  6. JAVA_RSA密钥生成
  7. SharePoint 2013 Nintex Workflow 工作流帮助(七)
  8. python tab补全
  9. sql点滴40—mysql乱码问题总结
  10. 转载-windows下MySql5.6.17没有setup.exe时的安装方法
  11. 苹果ATS特性服务器证书配置指南
  12. Node.JS开发环境准备
  13. mongo Shell初体验
  14. 不吹不擂,你想要的Python面试都在这里了【315+道题】
  15. koa2:通过Ajax方式上传文件,使用FormData进行Ajax请求
  16. 隐马尔可夫模型HMM(二)概率计算问题
  17. DM浅尝辄止
  18. 性能测试之mysql监控、优化
  19. 三层架构下实现用户登陆C#
  20. np.frombuffer()

热门文章

  1. [转载]Css设置table网格线(无重复)
  2. Python高级教程-filter
  3. windows7下RabbitMQ的安装
  4. FORM pdf预览功能函数 SSFCOMP_PDF_PREVIEW
  5. jquery关于select框的取值和赋值
  6. 简明python教程七----面向对象的编程
  7. Docker 网络之端口绑定
  8. likely(x)与unlikely(x) __builtin_expect
  9. Java最新趋势之Spring阅读
  10. nodejs入门-做一个代理服务器