首页 > 其他分享 >获取当前登录用户

获取当前登录用户

时间:2023-03-15 16:44:39浏览次数:28  
标签:return 登录 用户 获取 userDetails UserDetails

获取当前登录用户

传统web系统中,我们将登陆成功的用户放入session中,在需要的时候,可以从session中获取用户,那么spring Security中我们可以从以下两个类获得当前已经登录的用户

  • SecurityContextHolder

    保留系统当前的安全上下文 SecurityContext,其中就包括当前使用系统的用户信息

  • SecurityContext

    安全上下文,获取当前经过身份验证的主体或身份验证请求令牌

代码实现如下(security获取当前登录用户的三种方式):

 /**
     * 获取当前登录用户
     * @return
     */
    @GetMapping("/loginUser1")
    @ResponseBody
    public UserDetails getCurrnetUser1(Authentication authentication){
        UserDetails userDetails = (UserDetails) authentication.getPrincipal();
        return userDetails;
    }
    /**
     * 获取当前登录用户
     * @return
     */
    @GetMapping("/loginUser2")
    @ResponseBody
    public UserDetails getCurrnetUser2(){
        UserDetails userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        return userDetails;
    }
    /**
     * 获取当前登录用户
     * @return
     */
    @GetMapping("/loginUser3")
    @ResponseBody
    public UserDetails getCurrnetUser3(@AuthenticationPrincipal UserDetails userDetails){
        return userDetails;
    }

登录之后直接访问接口,测试结果如下

 

标签:return,登录,用户,获取,userDetails,UserDetails
From: https://www.cnblogs.com/popopopopo/p/17219080.html

相关文章

  • jmeter获取请求body进行加密增加header属性
    1、由于对接口请求进行加密,填写的body的json格式不要待格式,格式里面会有空格啥的,接口请求中headers中的新增的属性是把body转为jsonStr进行MD5加密    2、在bean......
  • 软件确认测试知识分享,如何获取权威软件测试报告?
    一、软件确认测试是什么?确认测试是对通过组合测试的软件进行的,这些软件已经存于系统目标设备的介质上。确认测试的目的是要表明软件是可以工作的,并且符合”软件需......
  • Linux开启root用户远程登录
    Linux开启root用户远程登录开启root账户,给root用户设置密码sudopasswdroot输入两遍密码修改配置文件打开SSH配置文件。vim/etc/ssh/sshd_config修改如下参......
  • jmeter获取jdbc请求的响应结果
         importjava.util.*;importjava.lang.*;Stringverify=prev.getResponseDataAsString();//获取响应结果Stringtest_verify=verify.substring(5,11......
  • 上位机学习记录(六)用户权限管理
    上位机学习记录(六)用户权限管理使用到的控件如下:控件名称控件类型dgv_UserDataGridViewtxt_CurrentUser,txt_UserTextBoxchk_HandCtrl,chk_AutoCtrl,chk_S......
  • centOS 密码正确,无法登录:login incorrect
    root用户密码正确,但是登录时提示:loginincorrect,回想一下无法登录前在系统进行修改文件权限的操作导致出现问题步骤1:进入单用户模式    a.开机启动时,快速按住键......
  • 数组根据某个字段 获取重复项 数组某个字段先累加再去重
    1.获取重复项不重复项constList=[{name:'大学女友',age:20,type:'正宫'},{name:'隔壁姐姐',age:24,......
  • linux查询用户登录历史记录
    last命令列出当前和曾经登入系统的用户信息默认读取的是/var/log/wtmp文件的信息lastlog命令列出所有用户最近登录的信息默认读取的是/var/log/lastlog文件中的信息l......
  • oracle 登录认证--转
    1 简介Oracle登录认证有两种方式,基于操作系统的登录认证,基于oracle的密码验证。ORACLE数据库通过sqlnet.ora文件中的参数sqlnet.authentication_services,来控制用户......
  • Pixel4获取root及刷机
    0x01BL解锁windows平台需要装fastboot驱动https://developer.android.com/studio/run/win-usb下载驱动后,然后在设备管理界面,更新驱动,手动选择下载的驱动包位置#进入......