ThreadLocal存放当前用户

这篇具有很好参考价值的文章主要介绍了ThreadLocal存放当前用户。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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();
    }
}

到了这里,关于ThreadLocal存放当前用户的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Boot + Aop 记录用户操作日志

    本文主要介绍通过Aop记录用户操作日志,这也是目前比较常用的用法,由于水平有限,所以可能存在错漏之处,望指正。 对应实体类为 SysOperLog.java MyLog.java BusinessType.java — 操作类型枚举类 LogAspect.java 用户操作日志是AOP最常见的一种业务场景,这里只是简单记录了少量信息,

    2024年02月06日
    浏览(48)
  • Spring Boot实践八--用户管理系统(下)

    前面我们在数据库初始化时额外创建了一张任务表,用来模拟处理任务: key 模拟业务 sendMail 模拟用户注册后给用户发送邮件任务,多线程异步任务处理 analysisLog 模拟每晚定时分析日志业务,定时任务处理 异步任务通过方法上的 @Async(\\\"taskExecutor\\\") 和启动类的 @EnableAsync 注解实

    2024年02月11日
    浏览(26)
  • Spring Boot 笔记 010 创建接口_更新用户头像

    1.1.1 usercontroller中添加updateAvatar,校验是否为url 1.1.2 userservice 1.1.3 userserviceimpl 1.1.4 mapper添加 1.1.5 postman调试

    2024年02月22日
    浏览(41)
  • Spring Boot Security认证:Redis缓存用户信息

    🎉欢迎来到架构设计专栏~Spring Boot Security认证:Redis缓存用户信息 ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:架构设计 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习 🍹文章作者技术和水平有限,如

    2024年02月04日
    浏览(46)
  • linux用户密码存放在哪个文件

    linux用户密码存放在“/etc/shadow”文件中。“/etc/shadow”文件又称为“影子文件”,用于存储Linux系统中用户的密码信息;该文件只有root用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性。 本教程操作环境:linux7.3系统、Dell G3电脑。 linux用户密码存放在

    2024年01月18日
    浏览(36)
  • Spring boot框架 JWT实现用户账户密码登录验证

    目录 1、JWT定义 1、1 JWT工作流程 1、2 JWT优点 2、添加依赖项到pom.xml  3、创建用户实体类  4、实现认证服务 5、登录请求处理 6、生成JWT JWT(JSON Web Token)是一种用于在网络应用间传递信息的安全传输方式。它是一种紧凑且自包含的方式,通过使用数字签名来验证数据的完整性

    2024年02月07日
    浏览(59)
  • Spring Boot 3 + Vue 3实战:实现用户登录功能

    该实战教程旨在指导开发者通过前后端分离的方式,搭建一个结合Vue.js前端框架和Spring Boot后端框架的登录系统。首先,从创建前端项目开始,利用Vue CLI快速生成项目结构,安装axios以实现HTTP请求功能,vue-router处理路由导航,less与less-loader用于样式预处理增强前端开发体验。

    2024年01月17日
    浏览(45)
  • 【Spring Boot】社交网站中验证用户登录的checkUser方法

    这段代码是UserService类中的checkUser方法,用于验证用户登录。具体解释如下: 方法签名:public boolean checkUser(User user) 参数:User user,表示用户实体对象,包含用户名和密码 返回值:boolean类型,表示验证结果,true表示验证通过,false表示验证失败 逻辑:首先根据用户输入的用

    2024年02月11日
    浏览(41)
  • 【Spring Boot项目】根据用户的角色控制数据库访问权限

    在一些特定的业务需求下,要求创建只读用户,但是由于一些查询请求使用的是POST方法,因此在网关层面配置只允许请求GET方法又无法满足。所以就想到了是否可以在 JDBC 层面控制,判断角色并且只允许执行 SELECT 类型的SQL语句。 在Spring Boot项目中,我们可以通过结合网关和

    2024年02月06日
    浏览(57)
  • 【项目实战】一、Spring boot整合JWT、Vue案例展示用户鉴权

    【项目实战】Spring boot整合JWT、Vue案例展示用户鉴权 【微服务实战】JWT

    2024年02月09日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包