转自:

Shiro Subject详解

Shiro Subject简介说明

Subject:是Shiro的认证授权组件提供当前用户信息(角色 授权),然后进行登录,退出,权限验证等我们常将一个Subject对象称之为一个用户

获取Subject

Subject subject = SecurityUtils.getSubject();
使用SecurityUtils.getSubject()可以获得当前的Subject

subject主要接口

Subject login(Subject subject, AuthenticationToken authenticationToken) throws AuthenticationException;    //登陆
void logout(Subject subject);        //退出登陆
Subject createSubject(SubjectContext context);    //获取subject

subject作用

获得Session对象

Session session = subject.getSession();
session.setAttribute( "key", "aValue" );
注意事项:1.此处的Session不是HttpSession,而是shiro为我们提供的session2.此处的Session不依赖http服务器

获取当前登录的用户名

String currentUser = subject.getPrincipal().toString();
System.out.println("当前登录的用户是:"+currentUser);

验证当前用户的权限

//判断用户是否是拥有某种角色
boolean isRole = subject.hasRole( "admin" );
//是否拥有某种功能
boolean isPer = subject.isPermitted("java265User:run");

退出登录

//退出登录
subject.logout();

注解式授权

@RequiresAuthentication

要求当前Subject已经在session中验证通过(验证当前用户是否登录:subject.isAuthenticated() 结果为true)

@RequiresUser

验证用户是否被记忆

@RequiresGuest

用户没有登录认证或被记住过,验证是否是一个guest的请求,与@RequiresUser完全相反。换言之,RequiresUser == !RequiresGuest。此时subject.getPrincipal() 结果为null.

@RequiresPermissions

验证用户是否具有一个或多个权限,该注解将会经常在项目中使用,如果不满足条件则抛出AuthorizationException异常

@RequiresRoles

验证当前用户是否具有某角色,与验证权限类似


JSP页面标签授权 页面授权标签包含

<shiro:authenticated>        登录之后
<shiro:notAuthenticated>        不在登录状态时
<shiro:guest>            用户在没有RememberMe时
<shiro:user>            用户在RememberMe时
<shiro:hasAnyRoles name="testRole,888" >    在有testRole或888角色时
<shiro:hasRole name="testRole">        拥有角色testRole
<shiro:lacksRole name="testRole">        没有角色testRole
<shiro:hasPermission name="testRole">    拥有权限资源testRole
<shiro:lacksPermission name="testRole">    没有testRole权限资源
<shiro:principal>        显示用户身份名称
<shiro:principal property="username"/>         显示用户身份中的属性值

Shiro Subject详解相关推荐

  1. 简单版 快速掌握实践 SpringBoot继承Shiro框架详解!

    文章目录 演示GIF 一.Shiro简介 1.什么是Shiro 2.有哪些功能 3.Shiro架构(外部) 4.Shiro架构(内部) 二.快速实践 项目搭建 1.数据库 2.实体类 3.mapper ...

  2. Shiro 框架详解

    Shiro 是一款轻量级的 Java 安全框架,提供了身份认证.授权.加密和会话管理等功能.它可以集成到任何 Java Web 应用程序中,并且易于使用和扩展.Shiro 的设计理念是简洁而灵活,不仅 ...

  3. shiro过滤器详解

    常用的过滤器为AuthenticatingFilter,具体看一看它是怎么实现的. 先说一下servlet的过滤器链的规则: servlet中过滤器Filter只有三个方法,当我们自定义过滤器的时候需 ...

  4. shiro放行_Shiro框架详解 tagline

    部分面试资料链接:https://pan.baidu.com/s/1qDb2YoCopCHoQXH15jiLhA 密码:jsam 想获得全部面试必看资料,关注公众号,大家可以在公众号后台回复" ...

  5. shiro subject.getprincipal()为null_(变强、变秃)Java从零开始之Shiro安全框架

    Shiro安全框架 一.Shiro简介 二.Shiro架构图 三.Shiro涉及常见名词 四.Shiro配置文件详解 shiro.ini 文件放在 classpath 下 ,shiro 会自动查找.其 ...

  6. RxJS 系列之二 - Observable 详解

    查看新版教程,请访问前端修仙之路 RxJS 系列目录 RxJS 系列之一 - Functional Programming 简介 RxJS 系列之二 - Observable 详解 (本文) RxJS ...

  7. shiro登陆流程源码详解

    前言 抽取了shiro最基本的登陆流程(web登陆是基于这层开发的). 详解源码 创建一个AuthenticationToken进行登录. SecurityUtils.getSecurityManag ...

  8. Shiro 登录认证源码详解

    Apache Shiro 是一个强大且灵活的 Java 开源安全框架,拥有登录认证.授权管理.企业级会话管理和加密等功能,相比 Spring Security 来说要更加的简单. 本文主要介绍 Shi ...

  9. (转) shiro权限框架详解06-shiro与web项目整合(上)

    http://blog.csdn.net/facekbook/article/details/54947730 shiro和web项目整合,实现类似真实项目的应用 本文中使用的项目架构是springM ...

  10. Shiro——从零开始进行详解官方入门案例

    首先进入shiro的官网下载源码http://mirror.bit.edu.cn/apache/shiro/1.5.0/shiro-root-1.5.0-source-release.zip 下载完毕 ...

最新文章

  1. MAC下 Apache服务器配置
  2. java---switch
  3. 使用ffmpeg打印音视频的详细信息
  4. ps aux指令詳解
  5. 1.const关键字.rs
  6. c语言联合验证大小端存储,2021C语言面试题及答案.docx
  7. 4.边缘光照的描边shader
  8. 研发协同平台持续交付之代理服务实践
  9. linux进程的高级管理,Linux高级程序设计(第2版) PDF扫描版[94MB]
  10. 一种被忽视的构造和整数溢出重现
  11. mysql数据库一列多值查询
  12. html写一个赌马游戏,趣味赛马(在线网页游戏)
  13. electron sqlite3_Electron+React+Antd工程搭建
  14. 机械制图比例GB/T14690-93
  15. OpenCV入门(八)——形态学技术
  16. 复习汇总vue知识点
  17. Darknet框架的权重文件.weights类型转换为keras框架的权重文件类型.h5
  18. 如何从outlook ost恢复数据(ost导入outlook)
  19. c语言 int类型转换为string类型
  20. 计算机访问记录怎么查,电脑上微信有访客记录吗?我们要怎么查看访客?

热门文章

  1. 国外动态住宅ip怎么使用?
  2. 英特尔 英特尔 显示器音频_英特尔缩小的麻烦
  3. 最新360影视双端三级分销2.0源码和详细视频搭建教程
  4. Xcode9 新功能
  5. 警察抓小偷打字游戏JAVA_打字游戏警察抓小偷_警察抓小偷打字游戏下载[2012]-下载之家...
  6. Excel 插件‘Aspen process data ‘在VBA中的基本使用
  7. linux安装后进不去windows,linux双系统安装后进不去windows解决办法
  8. 三菱 MX COMPONENT下载及安装测试
  9. 在线代码图片生成工具carbon
  10. 用户画像方法论与工程化解决方案 pdf_《用户画像》作者:赵宏田