Springboot +spring security,登录用户数据获取

本文介绍了在SpringBoot项目中,结合Spring Security如何获取和管理登录用户的详细步骤。主要内容包括通过SecurityContextHolder和Authentication获取用户信息,以及在异步线程中通过调整SecurityContextHolder策略(如MODE_THREADLOCAL、MODE_INHERITABLETHREADLOCAL)来保持登录状态。此外,还探讨了登录用户信息的保存与SecurityContextPersistenceFilter的工作原理。
摘要由CSDN通过智能技术生成

一.简介

前面章节学习了登录表单的配置并且对源码进行了简单的分析,现在有个问题了,既然用户登录了,那么如何在接口中获取用户信息呢。这篇文章就来看下这个问题,代码中获取登录用户信息。

二.创建项目

如何创建一个SpringSecurity项目,前面文章已经有说明了,这里就不重复写了。

三.代码中获取登录用户信息

获取登录用户信息有两种方式:

  1. 通过 SecurityContextHolder 获取
  2. 注入 Authentication

3.1通过 SecurityContextHolder 获取

代码如下:

@RequestMapping("/")
    @ResponseBody
    public String index(){
        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
        return JSON.toJSONString(authentication);
    }

返回结果中返回了用户信息,权限信息,还有一个details,这个我们后面是需要实现自己的,扩展我们业务中的信息。截图如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘德华一不小心就打代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值