SessionUtils
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);
} }
SessionUtils的更多相关文章
- js base64加密,后台解密
这是为了解决页面发送post请求,传输密码,在页面的控制台可以看到密码的明文,所以先用base64把要传输的密码转换为非明文,然后在后台解密处理. base64encode.js // base64加 ...
- Hibernate5.2之HQL查询
Hibernate5.2之HQL查询 一. 介绍 Hibernate的 ...
- [Node.js] Node + Redis 实现分布式Session方案
原文地址: http://www.moye.me/?p=565 Session是什么? Session 是面向连接的状态信息,是对 Http 无状态协议的补充. Session 怎么工作? Sessi ...
- 序列化在Netty中的使用
Java序列化的缺点 1.无法跨语言 对于Java序列化后的字节数组,别的语言无法进行反序列化 2.序列化后的码流过大 3.序列化性能低 使用JDK自带的序列化进行对象的传输 被传输的,实现了序列化接 ...
- WebSocket 服务器4
Java Websocket实例 Websocket 2015-04-11 14:11:54 发布 您的评价: 4.4 收藏 6收藏 介绍 现很多网站为了实现即时通讯,所用 ...
- Java中Websocket使用实例解读
介绍 现在很多网站为了实现即时通讯,所用的技术都是轮询(polling).轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP request,然后由服务器返回最新的数据给客服端的浏览器 ...
- mybatis学习笔记四(动态sql)
直接贴图,注解在代码上,其他的配置文件在学习一中就不贴了 1 数据库 2 实体类 package com.home.entity; /** * 此类是: 用户实体类 * @author hpc * @ ...
- mybatis学习笔记三(关联关系)
学习mybatis的关联关系,主要注解在代码上,这里不做解释.配置文件一样的就不贴了 1.关联关系表创建(学生对应老师 多对一) 学生老师表 2.表对应的实体类 package com.home.en ...
- mybatis学习笔记二(接口注解)
直接上代码,全部在代码里讲解. 1.实体类 package com.home.entity; /** * 此类是:user实体类 * @author hpc * @2017年1月10日下午9:36:5 ...
随机推荐
- divison in python2 and python3
python2 >>> / >>> /2.0 1.5 >>> / >>> /2.0 2.0 >>> >& ...
- 详解JMeter函数和变量(转载)
详解JMeter函数和变量(1) JMeter函数可以被认为是某种特殊的变量,它们可以被采样器或者其他测试元件所引用.函数调用的语法如下: ${__functionName(var1,var2,var ...
- Keras之函数式(Functional)模型
函数式(Functional)模型 我们起初将Functional一词译作泛型,想要表达该类模型能够表达任意张量映射的含义,但表达的不是很精确,在Keras2里我们将这个词改移为“函数式”,函数式模型 ...
- .tomcat 管理 给tomcat设置用户名和密码登录
如果点击红色框框 出现403以下错误 看这个帖子可以解决 tomcat访问管理页面出现:403 Access Denied 解决方法 tomca管理 测试功能,生产环境不要用. Tomcat管理功能用 ...
- day3-set集合
set是一个无序且不重复的元素集合 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 3 ...
- 再谈WinIO初始化异常
再谈WinIO初始化异常 前段时间WinIO在我的新项目中总是初始化失败,有时候又是好好的,很让人费解.修改了源代码显示了很多调试信息后,也没有什么太多的收获.由于我们的工控卡必须要用这个库, ...
- T25健身视频全集+课表
http://jianfei.39.net/thread-3639251-1.html T25健身视频全集+课表 强度适中 不伤膝盖! [复制链接] zytttt 主题 好友 ...
- LeetCode:N叉树的前序遍历【589】
LeetCode:N叉树的前序遍历[589] 题目描述 给定一个 N 叉树,返回其节点值的前序遍历. 例如,给定一个 3叉树 : 返回其前序遍历: [1,3,5,6,2,4]. 题目分析 使用栈结构. ...
- vuex初使用
- v4l2中的多流机制
一直在搞camera,对v4l2也比较熟悉了,今天写文章说点自己的看法 对于v4l2,对多流的支持是比较弱的,只是一个流.但现在的camera 硬件,能支持多个流同事工作,所以又必要对v4l2的api ...