shiro 管理登录,获取登录信息的方式常用的是:

Subject sub = SecurityUtils.getSubject();
Object obj = sub.getPrincipal();

这里的 obj 是字符串,还是某个实体,取决于 ShiroRealm 类的设置值,代码如下:

 @Overrideprotected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken)throws AuthenticationException {System.out.println("获取登录者信息-->MyShiroRealm.doGetAuthenticationInfo()");UsernamePasswordToken token = (UsernamePasswordToken) authenticationToken;String userS = token.getUsername();User user = userService.findByName(userS);if (user != null) {LoginInfo info = new LoginInfo();info.setName(user.getName());info.setLoginId(user.getId);return new SimpleAuthenticationInfo(info, user.getPassword(), getName());}return null;}

如果像上面这样设置,读取登录信息就是

LoginInfo login = (LoginInfo) SecurityUtils.getSubject().getPrincipal();

如果设置登录信息的地方如下:

@Overrideprotected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken)throws AuthenticationException {System.out.println("获取登录者信息-->MyShiroRealm.doGetAuthenticationInfo()");UsernamePasswordToken token = (UsernamePasswordToken) authenticationToken;String userS = token.getUsername();User user = userService.findByName(userS);return new SimpleAuthenticationInfo(users, user.getPassword(), getName());}

读取登录信息就是:

String loginName = (String) SecurityUtils.getSubject().getPrincipal();

提醒:

网络上面好多入门级的程序员,说话的时候要负责任,不要误导别人,为了营造一个优良的开源环境或者社区,至少从自己开始做起吧。

后续,有空会更新关于自定义 shiro 的一些组件实现单点登录的方式

subject 获取登录用户信息相关推荐

  1. Spring MVC 实战:三种方式获取登录用户信息

    前言 Web 项目中,维持用户登录状态的常用方式有三种,分别是 Cookie.Session.Token,不管哪种方案,都需要获取到用户信息供业务层使用. 由于获取用户信息与具体业务无关,因此在普通的 ...

  2. 微信小程序Ⅴ [获取登录用户信息,重点openID(详解)]

    ♩ 背景 其实这篇文章几个月前就写完了,但是这段时间,微信小程序官方文档有了更新,同事在我自己的实际操作过程中,发现之前写的过于繁杂,所以现在进行简化梳理,欢迎指摘. 语言框架:ThinkPHP3.2 ...

  3. 钉钉企业内部应用获取登录用户信息

    1.创建企业内部应用 首先在钉钉开放平台注册企业内部应用. 选择[企业内部开发] 创建H5微应用 填写相关信息 企业内部H5微应用创建完成 2.接口开发前准备 开发前必读 了解不同应用所能支持的能力 ...

  4. 采用redis+ThreadLocal获取全局的登录用户信息(二)增加token快失效时刷新

    在写token登录的时候,发现cookie中的token到时自动失效,如果此时有人正在操作,非常影响体验,于是增加了一个token快失效时刷新token的功能.下面代码重点就在TokenTool类中的 ...

  5. 采用redis+ThreadLocal获取全局的登录用户信息(一)

    1.首先进行登录操作,代码已经假设你从数据库拿到了用户信息保存在变量userinfo中,将token返回给浏览器保存,并将token和userinfo保存在redis中. @Resourcepriva ...

  6. 获取微信昵称乱码php,Android 微信登录昵称乱码问题,及获取微信用户信息

    微信第三方登录时昵称,username乱码问题解决方法如下: /** * 获取微信用户信息 * @param access_token 调用凭证 * @param openid 普通用户的标识,对当前 ...

  7. Spring学习笔记(二十三)——实现网站微信扫码登录获取微信用户信息Demo

    目录 微信扫码登录介绍 开发步骤 微信扫码登录示例 微信开放文档 遇到的问题 使用第三方工具实现网站微信扫码登录 开发前介绍 开发步骤 微信扫码登录获取微信用户信息Demo实现流程 实现效果 实现过程 ...

  8. (详解)钉钉接口,PC端微应用,免登录及获取当前用户信息

    1.用了两天的时间,一直在研究微应用的,免登录及获取用户信息这一块. 但是钉钉官网写的太繁杂了,看了一天,硬是没看明白,最后,硬着头皮,一点点查资料,借鉴别人的代码,终于 研究 出来了,为了防止 年轻 ...

  9. 使用uc_authcode 获取论坛当前登录用户信息

    目的:使用uc_authcode 获取论坛当前登录用户信息 曲折:看了Discuz官方的ucenter二次开发手册,其中的Example如下: if(!empty($_COOKIE['Example_ ...

  10. 若依框架获取和修改当前登录用户信息

    若依框架获取和修改当前登录用户信息 后台修改 前端修改 前言:做一些功能的时候我们肯定得用到当前登陆者信息,所以我就查找了一下若依怎么获取当前登录者信息,用this.$store.state.user ...

最新文章

  1. 博客搭建攻略(一):平台选择
  2. J0ker的CISSP之路:复习-Access Control(3)
  3. 探索 .NET团队对API的设计流程
  4. Override and Overload (重写和重载)
  5. 【Java】Java数据库访问体系重点总结
  6. OpenCV实战4: HOG+SVM实现行人检测
  7. 如何估算太坊交易的gas消耗量
  8. 6年软件测试,职场上的摸爬滚打,告诉我这些.......
  9. linux NVMe驱动总结
  10. 互联网名词和广告名词缩写大全
  11. DirectShow 视频采集
  12. 远程电脑不能复制粘贴
  13. 【数据库基础】正则化(Normalization)P1:UNF、1NF、2NF、3NF
  14. 中产移民:很难找到好工作。
  15. MT25QL128/MTQL256_FLASH驱动——基于华大单片机
  16. 宝尚网上股票-今年A股新股数量与融资额再创新高
  17. CSS (二) 背景
  18. 如何使用 Delta Lake 构建批流一体数据仓库
  19. Efficient multi-keyword ranked query over encrypted data in cloud computing (4)
  20. Maven Pom文件标签详解

热门文章

  1. blendshapes
  2. Registry Workshop —— 强大的注册表编辑工具
  3. 面试重点:starter原理以及自己动手实现一个starter
  4. [论文阅读] SASA: Semantics-Augmented Set Abstraction for Point-based 3D Object Detection
  5. 【仿写网站】用swiper实现故宫博物院首页轮播图
  6. 【C语言】怎么用C语言来解逻辑推理题 | 运用离散数学+形式逻辑学的思想
  7. html导航栏的颜色怎么改变,我怎样才能改变导航栏的背景颜色
  8. Java-通过IP地址获得域名和主机名
  9. 【Android】MyTool工具界面:秒表
  10. ValueError: Wrong number of items passed 2, placement implies 1