shiro的小白学习
1. shiro是啥就不用说了吧
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理
SecurityManager 是shiro的核心。它不同于java.lang.SecurityManager ---------SecurityUtils.getSubject() 可以理解为User
2. shiro可以做什么事情
验证用户
判断用户拥有的角色
判断用用户可以访问的资源
单点登陆
Remember Me服务 Shiro官方当然建议你开启了,要不然费那么大力气干啥
3. shiro的四大部分
Authentication:身份验证,简称“登录”。
Authorization:授权,给用户分配角色或者权限资源
Session Management:用户session管理器,可以让CS程序也使用session来控制权限
Cryptography:把JDK中复杂的密码加密方式进行封装。
4. shiro的执行流程

5. shiro执行流程的解释说明
ApplicationCode(输入用户名,密码)
--->
Subject(拿到用户名,密码)
--->
进入Shiro SecurityManager
--->
执行Realms(登录和验证)
如果有多个realms AuthenticationStrategy 将会协调这些 Realm
6.shiro中的组件
SessionManager
SessionDAO代表 SessionManager 执行 Session 持久化(CRUD)操作
CacheManager
CacheManager 创建并管理其他 Shiro 组件使用的 Cache 实例生命周期
Cryptography
Shiro 的 crypto 包包含量易于使用和理解的cryptographicCiphers 就是加密
Realms
Realms 在 Shiro 和你的应用程序的安全数据之间担当“桥梁”或“连接器
CredentialsMatcher
密码凭证匹配器
7.常用的注解
@RequiresAuthentication
验证用户是否登录,等同于方法subject.isAuthenticated() 结果为true时
@RequiresUser
验证用户是否被记忆
@RequiresGuest
验证是否是一个guest的请求,与@ RequiresUser完全相反。换言之,RequiresUser == ! RequiresGuest 。此时subject.getPrincipal() 结果为null.
@ RequiresRoles("aRoleName")用在方法上
如果subject中有aRoleName角色才可以访问方法,如果没有这个权限则会抛出异常AuthorizationException
@RequiresPermissions
要求subject中必须含有这个权限才可以访问此方法,要不抛出异常AuthorizationException。
暂时就记录这么多吧!
shiro的小白学习的更多相关文章
- 电脑小白学习软件开发-C#语言基础之循环重点讲解,习题
写代码也要读书,爱全栈,更爱生活.每日更新原创IT编程技术及日常实用视频. 我们的目标是:玩得转服务器Web开发,搞得懂移动端,电脑客户端更是不在话下. 本教程是基础教程,适合任何有志于学习软件开发的 ...
- [置顶] 小白学习KM算法详细总结--附上模板题hdu2255
KM算法是基于匈牙利算法求最大或最小权值的完备匹配 关于KM不知道看了多久,每次都不能完全理解,今天花了很久的时间做个总结,归纳以及结合别人的总结给出自己的理解,希望自己以后来看能一目了然,也希望对刚 ...
- 偏前端--之小白学习本地存储与cookie
百度了很多都是讲的理论,什么小于4kb啊之类的,小白看了一脸懵逼复制到html中为什么没效果!!哈哈.我来写一个方便小白学习. 贴图带文字描述,让小白也运行起来,然后自己再去理解... 1. cook ...
- Python小白学习之函数装饰器
装饰器 2018-10-25 13:49:37 装饰器从字面意思就是用来装饰的,在函数可以理解为:在函数中,我们不想影响原来的函数功能,又想给函数添加新的功能,这时候我们就用到了装饰器. 一般函数操作 ...
- 小白学习VUE第一篇文章---如何看懂网上搜索到的VUE代码或文章---使用VUE的三种模式:
小白学习VUE第一篇文章---如何看懂网上搜索到的VUE代码或文章---使用VUE的三种模式: 直接引用VUE; 将vue.js下载到本地后本目录下使用; 安装Node环境下使用; ant-desig ...
- Shiro learning - 入门学习 Shiro中的基础知识(1)
Shiro入门学习 一 .什么是Shiro? 看一下官网对于 what is Shiro ? 的解释 Apache Shiro (pronounced “shee-roh”, the Japanese ...
- USB小白学习之路(10) CY7C68013A Slave FIFO模式下的标志位(转)
转自良子:http://www.eefocus.com/liangziusb/blog/12-11/288618_bdaf9.html CY7C68013含有4个大端点,可以用来处理数据量较大的传输, ...
- 小白学习MVC5+EF6遇到的问题一
这两天有空的时候会看看Miro大神的MVC5+EF6系列文章,推荐大家看看. 以前没有接触过,纯小白一个,今天在学习的过程中遇到了一个问题,习惯了WebForm,在运行页面之前都会右键设置为起始页,我 ...
- 小白学习mysql之索引初步
导语 索引在数据库中的地位是及其的重要,同时要想完全的掌握索引并不是一件容易的事,需要对数据的查询原理以及计算机操作系统有深刻的认识,当然相关的算法和数据结构也是必须的.因此,这篇文章感到了一些压力, ...
随机推荐
- Day4-T2
原题目 某大厦共有 N 层,现在知道共有 K 个请求要上下电梯:下面告诉你每个请求乘电梯的出发层次和结 束层次.请你求出整个电梯的运行过程.假设电梯一开始停在第一层,运行 K 个请求最后回到第一层. ...
- JPA#实体属性转换器
__震惊,一下内容竟然是空白 用途 (自动转换数据库字段和实体属性间的最佳取值): - 1. POJO持久化到数据库表中的时候,对某些特殊属性处理后,用处理过的值作为数据库字段的值. 2. 从数据库查 ...
- PHP数据库基础(简单的)
经常用到的函数 $link=mysql_connect("数据库地址","用户名","密码");//链接数据库mysql_query(“se ...
- javaweb历史上最简单的使用Ajax判断用户名是否被注册(不跳转页面奥!)
关于前端: 使用jquery-3.3.1.js记得要导入奥---最后我会附加我的源码的 哎我也不多说了新手加菜鸟jquery真的不太懂!看代码吧!个别地方我会写上我对本程序的理解. 关于后台也就是se ...
- 前端第一篇---前端基础之HTML内容
前端基础之HTML内容 阅读目录(Content) 一.HTML初识 1.web服务本质 2.HTML是什么 3.HTML不是什么 二.HTML文档结构 三.HTML标签格式 四.HTML注释 五.H ...
- UVA - 11346 Probability(概率)(连续概率)
题意:在[-a, a]*[-b, b]区域内随机取一个点P,求以(0, 0)和P为对角线的长方形面积大于S的概率(a,b>0, S>=0). 分析: 1.若长方形面积>S,则选取的P ...
- 996.ICU 爆发,互联网从业者难逃“高薪陷阱”
从 3 月 27 日开始,截止本文发稿,GitHub 上面的项目 996.ICU 的 Star 数量已经超过 18 万,这场由程序员发动的轰轰烈烈的公开反对 996 工作制的运动,早已突破互联网圈层而 ...
- -webkit-appearance —— webkit外观样式属性
-webkit-appearance —— webkit外观样式属性 -webkit-appearance 是一个 不规范的属性(unsupported WebKit property),它没有出现在 ...
- 刷题31. Next Permutation
一.题目说明 题目是31. Next Permutation,英文太差看不懂,翻译了一下.才知道是求字典顺序下的下一个排列,不允许使用额外空间.题目难度是Medium! 二.我的实现 首先要进一步理解 ...
- 面试题(7)之 leetcode-003
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&quo ...