Shiro-ini认证
#2019.2.2
shiro的ini认证
先用IDEA创建一个普通的MAVEN项目,并导入依赖
<!--Junit单元测试-->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency> <!--日志-->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<!--shiro-->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>1.2.2</version>
</dependency>
接下来用ini的文件代替数据库,在资源文件中创建一个shiro.ini文件。并进行配置

上面是ini文件的固定写法,“zhangsan”相当于身份信息(账号),"666"相当于凭证信息(密码)
配置完之后,进行测试。
1.使用IniSecurityManagerFacrory方法加载配置文件,创建Factory对象
2.通过工厂对象获取Security Manager对象
3.将Security Manager绑定到程序内,以便于调用
4.创建当前的主体
5.收集主体对象的身份信息以及凭证信息
6.登录验证
//1.创建Secutiry Manager工厂对象:加载配置文件
Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");
//2.通过工厂对象获取Security Manager对象
SecurityManager securityManager = factory.getInstance();
//3.绑定securityManagerd到当前程序中,以便于访问
SecurityUtils.setSecurityManager(securityManager); //4.创建当前的Subject 主体 没有经过验证
Subject sub = SecurityUtils.getSubject();
//5.收集主体 的身份信息和凭证信息
UsernamePasswordToken token = new UsernamePasswordToken("zhangsan","666");
//6.登录验证
sub.login(token);
之后我们采用isAuthenticated的方法验证是否通过。若账号密码和ini文件的配置相符合,则返回true,反之为false。
在我们logout()后,在进行验证则会返回false。
要注意的是:若账号有误,则出现以下异常(账户未知异常):

若密码错误,则出现以下异常():

Shiro-ini认证的更多相关文章
- shiro.ini 配置详解
引用: [1]开涛的<跟我学shiro> [2]<SpringMVC整合Shiro> [3]<shiro简单配置> [4]Apache shiro集群实现 (一) ...
- Apache shiro集群实现 (三)shiro身份认证(Shiro Authentication)
Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...
- shiro登录认证
新建maven文件create a simple project shiro.ini文件 [users] root=123456 log4j.properties log4j.rootLogger=I ...
- Shiro 登录认证源码详解
Shiro 登录认证源码详解 Apache Shiro 是一个强大且灵活的 Java 开源安全框架,拥有登录认证.授权管理.企业级会话管理和加密等功能,相比 Spring Security 来说要更加 ...
- Shiro身份认证---转
目录 1. Shro的概念 2. Shiro的简单身份认证实现 3. Shiro与spring对身份认证的实现 前言: Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在 JavaSE 环境 ...
- Shiro身份认证授权原理
shiro在应用程序中的使用是用Subject为入口的, 最终subject委托给真正的管理者ShiroSecurityMannager Realm是Shiro获得身份认证信息和来源信息的地方(所以这 ...
- Shiro学习总结(3)——Apache Shiro身份认证
身份验证,即在应用中谁能证明他就是他本人.一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明. 在shiro中,用户需要提供principals (身份)和cre ...
- Shiro身份认证、盐加密
目的: Shiro认证 盐加密工具类 Shiro认证 1.导入pom依赖 <dependency> <groupId>org.apache.shiro</groupId& ...
- 跟开涛老师学shiro -- INI配置
之前章节我们已经接触过一些INI配置规则了,如果大家使用过如spring之类的IoC/DI容器的话,Shiro提供的INI配置也是非常类似的,即可以理解为是一个IoC/DI容器,但是区别在于它从一个根 ...
- Shiro入门之一 -------- Shiro权限认证与授权
一 将Shirojar包导入web项目 二 在web.xml中配置shiro代理过滤器 注意: 该过滤器需要配置在struts2过滤器之前 <!-- 配置Shiro的代理过滤器 --> ...
随机推荐
- 用JSON.stringify处理循环引用对象
通常,我们会用JSON.stringify把Javascript对象序列化成JSON格式,这在大多数情况下是够用的.但是,当你要转换的对象里存在循环引用时,问题就来了. js对象循环引用导致内存泄漏 ...
- opencv的一些功能代码
opencv调用摄像头 #include<opencv2/opencv.hpp> using namespace cv; void main(){ VideoCapture cap; ca ...
- Asp.Net Boilerplate Project 使用swagger调试api
文件有点大,去掉了packages文件夹,(Swashbuckle.Core.5.6.0) 链接:https://pan.baidu.com/s/1DzMLhFyRav0dufS4dTeMzg 提取码 ...
- sql group by聚合函数
如何让分组后count计算结果为0的记录也显示
- LNMP的搭建
一.下载安装MySQL 1.1:下载地址:https://dev.mysql.com/downloads/mysql/ 1.2:安装后 1.2.1:解压:tar -xf mysql-8.0.15-li ...
- 多组图自动无限循环(swiper轮播)
前两天的一个项目中遇到多组图片无限轮播,当时采用了swiper 但是没有解决让它无限轮播.今天再次尝试了一下发现是自己的样式写错了.今天在这里写一下,为了给自己一个警醒不要犯同样的错误 首先先引入一下 ...
- JavaJDK8新特性相关知识整理
1.新增接口默认方法和接口静态方法 接口默认方法用default关键字修饰,与抽象方法不同之处在于抽象方法必须要求实现,而默认方法没有这个要求,默认方法本身已经有具体的实现,所有的接口实现类将 ...
- leetcode 78,236,300
---恢复内容开始--- 2018.3.16目前已刷27题,打卡记录有意思的题目. leetcode78 subsets 思路1:DFS遍历子集,每遇到一个数就把该数加上原来的子集变成新的子集. cl ...
- [luogu P3960] [noip2017 d2t3] 队列
[luogu P3960] [noip2017 d2t3] 队列 题目描述 Sylvia 是一个热爱学习的女♂孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Syl ...
- 【转】10分钟就能学会的.NET Core配置
.NET Core为我们提供了一套用于配置的API,它为程序提供了运行时从文件.命令行参数.环境变量等读取配置的方法.配置都是键值对的形式,并且支持嵌套,.NET Core还内建了从配置反序列化为PO ...