当前位置: 首页 > news >正文

ThreadLocal存放当前用户

用户信息必须由后端获取,不能通过前端传入的id是不可信的,,可能会出现越权的问题,,,怎么通过后端获取当前登录用户,,,
就需要将User 和 当前线程绑定在一起,,因为Servlet中的每一个请求,线程都是不同的,,,
在拦截器中,,拦截token,,将token中的用户信息,存入ThreadLocal中,,在拦截器执行过后的方法中清除ThreadLocal,防止内存泄露

public class LocalUser {private static ThreadLocal<Map<String,Object>> threadLocal = new ThreadLocal<Map<String, Object>>();public static void set(User user,Integer scope){HashMap<String, Object> map = new HashMap<>();map.put("user",user);map.put("scope",scope);LocalUser.threadLocal.set(map);}public  static  User getUser(){Map<String, Object> map = LocalUser.threadLocal.get();return (User) map.get("user");}public static Integer getScope(){Map<String, Object> map = LocalUser.threadLocal.get();return (Integer) map.get("scope");}public static void clear(){LocalUser.threadLocal.remove();}
}
http://www.lryc.cn/news/142313.html

相关文章:

  • es入门实战
  • c++系列之指针
  • 网络安全:挑战与防护策略
  • AI 插件:未来的浏览器、前端与交互
  • R包开发-2.1:在RStudio中使用Rcpp制作R-Package(更新于2023.8.23)
  • 土豆叶病害识别(图像连续识别和视频识别)
  • 三、JVM监控及诊断工具-GUI篇
  • 3211064 - 错误消息 AA634 出现在 T-cd AW01N 或 T-cd AFAR 中
  • k3s or RKE2 helm安装报错dial tcp 127.0.0.1:8080: connect: connection refused
  • 网络安全应急响应预案演练
  • Redis 的混合持久化
  • ElasticSearch总结
  • 手写数字识别之损失函数
  • sleep () 和 wait () 有什么区别?
  • 第一百二十七回 空安全
  • js判断类型:typeof Object.prototype.toString instanceof constructor有什么区别?一文讲清楚
  • uview ui 1.x ActonSheet项太多,设置滚动
  • 信息化发展2
  • ubuntu18 + ros2 eloquent +python3.6
  • 围棋与育种
  • Python第三方库纵览
  • 测试.net开源音频库NAudio
  • 三方接口调用设计方案
  • OLED透明屏全贴合技术:未来显示技术的突破性创新
  • map、sync.map、concurrent-map适用场景与源码解析
  • 分布式事物实现方案及优缺点
  • java使用@interface和反射来动态生成excel
  • 【微服务】04-Polly实现失败重试和限流熔断
  • 如何使用HTML5新增的标签来构建语义化的页面结构?
  • Vmware 虚拟机挂起恢复后发现无法 Ping 通,无法连接到主机