• 共享全局对象


    public class UserContext {

    public static final String SUBJECT_IN_SESSION = "SUBJECT_IN_SESSION";
    public static final String EXPRESSIONS_IN_SESSION = "EXPRESSIONS_IN_SESSION";
    //获取session 公共的整个项目 方便调用 所以写出
    public static HttpSession getSession(){
    ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
    return requestAttributes.getRequest().getSession();
    }

    //共享当前用户
    public static void setCurrentEmp(SubJectObjectUtil currentEmp){
    getSession().setAttribute(SUBJECT_IN_SESSION,currentEmp);
    }


    //获取当前用户
    public static SubJectObjectUtil getCurrentEmp(){
    return (SubJectObjectUtil) getSession().getAttribute(SUBJECT_IN_SESSION);
    }

    //共享当前用户的权限表达式
    public static void setExpressions(List<String> expressions){
    getSession().setAttribute(EXPRESSIONS_IN_SESSION, expressions);
    }

    //获取当前用户的权限表达式
    public static List<String> getExpressions(){
    return (List<String>) getSession().getAttribute(EXPRESSIONS_IN_SESSION);
    }
    }



    在拦截器中拦截请求 获取对应对用户信息 那对应对用户信息set 到对应到对象中 在设置对象到session中 在该项目中调用getsesion 获到对应到详细信息 ‘
    String token1 = request.getHeader("token");
    String manufactorId = JSONObject.parseObject(jwtUtil.parseJWT(token1).getSubject()).getString("id");
    SubJectObjectUtil subJectObjectUtil1 = new SubJectObjectUtil();//设置到实体类中
    subJectObjectUtil1.setManufactorId(manufactorId);
    UserContext.setCurrentEmp(subJectObjectUtil1); //设置到session 中  
    SubJectObjectUtil session1 = UserContext.getCurrentEmp();//获取session中变量
    System.out.println(session1.getManufactorId());//获取session中变量
    实体类中设置对应需要共享的变量





  • 相关阅读:
    2018.11.5 Nescafe26 T1 小猫爬山
    2018.10.30 NOIp模拟赛T2 数字对
    2018.10.30 NOIp模拟赛 T1 改造二叉树
    2018/7/16 YMOI模拟 NOIP2013D2T3华容道
    数据结构实验
    我的第一个博客
    题解 P5035 【金坷垃】
    题解 P5036 【随机生成树】
    题解 P5037 【抓捕】
    题解 P1328 【生活大爆炸版石头剪刀布】
  • 原文地址:https://www.cnblogs.com/yuguohua/p/12844121.html
Copyright © 2020-2023  润新知