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之索引初步
导语 索引在数据库中的地位是及其的重要,同时要想完全的掌握索引并不是一件容易的事,需要对数据的查询原理以及计算机操作系统有深刻的认识,当然相关的算法和数据结构也是必须的.因此,这篇文章感到了一些压力, ...
随机推荐
- linux下安装mysql5.7(centos6.0)
注:因为网络原因,这个mysql安装是我以前在学校的时候找到的一个安装包,不过也找到了下载的地址:http://www.itmop.com/downinfo/143061.html下载完成后,把文件上 ...
- 【LeetCode】反转每对括号间的子串
[问题]给出一个字符串 s(仅含有小写英文字母和括号). 请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果. 注意,您的结果中 不应 包含任何括号. 示例 : 输入:s = ...
- 148-PHP strip_tags函数,剥去字符串中的 HTML 标签(二)
<?php //定义一段包含PHP代码的字符串 $php=<<<PHP 这里是PHP代码的开始 <?php echo "hello!"; PHP; $ ...
- flink初识及安装flink standalone集群
flink architecture 1.可以看出,flink可以运行在本地,也可以类似spark一样on yarn或者standalone模式(与spark standalone也很相似),此外fl ...
- 复选框全选、反选及根据值JS控制复选框默认选中事件
HTML代码 <div class="col-sm-7"> <input type="checkbox" id="allAndNot ...
- 干货分享:想要写好Proposal,这四个问题必须解决
当大家确定了毕业论文选题之后,下一步就是着手写开题报告,也就是proposal.开题报告或者说是研究计划要回答四个问题:为什么这个问题重要,为什么这个问题很难解决,为什么现在要考虑解决这个问题,为什么 ...
- 第十二篇视图层之视图函数(views)-三件套
视图层之视图函数(views) 阅读目录(Content) 视图层之视图函数(views) 一个简单的视图 HttpRequest HttpResponse redirect 函数 对比render与 ...
- [ACTF2020 新生赛]Exec
0x00 知识点 命令执行 这里见了太多了..以前也写过: https://www.cnblogs.com/wangtanzhi/p/12246386.html 命令执行的方法大抵是加上管道符或者分号 ...
- 【golang】golang文本处理
golang文本字符串操作:包含 合并 连接 分割 取索引 前缀后缀检测 消除字符串 消除空格 golang字符串操作需要用到 strings这个包 str := "hello world& ...
- C++基础--虚函数和纯虚函数
虚函数的一种重要的应用是在子类重写父类方法上,一般都是在父类中声明的时候用关键字virtual修饰. 在C++中,一个父类的对象指针是可以指向子类的实例化对象,这个时候可以用该对象指针来访问父类的成员 ...