Shiro Subject详解
转自:
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详解相关推荐
- 简单版 快速掌握实践 SpringBoot继承Shiro框架详解!
文章目录 演示GIF 一.Shiro简介 1.什么是Shiro 2.有哪些功能 3.Shiro架构(外部) 4.Shiro架构(内部) 二.快速实践 项目搭建 1.数据库 2.实体类 3.mapper ...
- Shiro 框架详解
Shiro 是一款轻量级的 Java 安全框架,提供了身份认证.授权.加密和会话管理等功能.它可以集成到任何 Java Web 应用程序中,并且易于使用和扩展.Shiro 的设计理念是简洁而灵活,不仅 ...
- shiro过滤器详解
常用的过滤器为AuthenticatingFilter,具体看一看它是怎么实现的. 先说一下servlet的过滤器链的规则: servlet中过滤器Filter只有三个方法,当我们自定义过滤器的时候需 ...
- shiro放行_Shiro框架详解 tagline
部分面试资料链接:https://pan.baidu.com/s/1qDb2YoCopCHoQXH15jiLhA 密码:jsam 想获得全部面试必看资料,关注公众号,大家可以在公众号后台回复" ...
- shiro subject.getprincipal()为null_(变强、变秃)Java从零开始之Shiro安全框架
Shiro安全框架 一.Shiro简介 二.Shiro架构图 三.Shiro涉及常见名词 四.Shiro配置文件详解 shiro.ini 文件放在 classpath 下 ,shiro 会自动查找.其 ...
- RxJS 系列之二 - Observable 详解
查看新版教程,请访问前端修仙之路 RxJS 系列目录 RxJS 系列之一 - Functional Programming 简介 RxJS 系列之二 - Observable 详解 (本文) RxJS ...
- shiro登陆流程源码详解
前言 抽取了shiro最基本的登陆流程(web登陆是基于这层开发的). 详解源码 创建一个AuthenticationToken进行登录. SecurityUtils.getSecurityManag ...
- Shiro 登录认证源码详解
Apache Shiro 是一个强大且灵活的 Java 开源安全框架,拥有登录认证.授权管理.企业级会话管理和加密等功能,相比 Spring Security 来说要更加的简单. 本文主要介绍 Shi ...
- (转) shiro权限框架详解06-shiro与web项目整合(上)
http://blog.csdn.net/facekbook/article/details/54947730 shiro和web项目整合,实现类似真实项目的应用 本文中使用的项目架构是springM ...
- Shiro——从零开始进行详解官方入门案例
首先进入shiro的官网下载源码http://mirror.bit.edu.cn/apache/shiro/1.5.0/shiro-root-1.5.0-source-release.zip 下载完毕 ...
最新文章
- MAC下 Apache服务器配置
- java---switch
- 使用ffmpeg打印音视频的详细信息
- ps aux指令詳解
- 1.const关键字.rs
- c语言联合验证大小端存储,2021C语言面试题及答案.docx
- 4.边缘光照的描边shader
- 研发协同平台持续交付之代理服务实践
- linux进程的高级管理,Linux高级程序设计(第2版) PDF扫描版[94MB]
- 一种被忽视的构造和整数溢出重现
- mysql数据库一列多值查询
- html写一个赌马游戏,趣味赛马(在线网页游戏)
- electron sqlite3_Electron+React+Antd工程搭建
- 机械制图比例GB/T14690-93
- OpenCV入门(八)——形态学技术
- 复习汇总vue知识点
- Darknet框架的权重文件.weights类型转换为keras框架的权重文件类型.h5
- 如何从outlook ost恢复数据(ost导入outlook)
- c语言 int类型转换为string类型
- 计算机访问记录怎么查,电脑上微信有访客记录吗?我们要怎么查看访客?
热门文章
- 国外动态住宅ip怎么使用?
- 英特尔 英特尔 显示器音频_英特尔缩小的麻烦
- 最新360影视双端三级分销2.0源码和详细视频搭建教程
- Xcode9 新功能
- 警察抓小偷打字游戏JAVA_打字游戏警察抓小偷_警察抓小偷打字游戏下载[2012]-下载之家...
- Excel 插件‘Aspen process data ‘在VBA中的基本使用
- linux安装后进不去windows,linux双系统安装后进不去windows解决办法
- 三菱 MX COMPONENT下载及安装测试
- 在线代码图片生成工具carbon
- 用户画像方法论与工程化解决方案 pdf_《用户画像》作者:赵宏田