1、问题概述?
今天在研究了shiro的新版本shiro1.13.0版本,发现用了很长时间的IniSecurityManagerFactory工厂失效了。
从下图中可以看出,在新版本中IniSecurityManagerFactory被打上了过期线了。
那么问题来了,新版本如何使用呢。接下来我们来解决这个问题。
2、创建Maven工程测试shiro.13.0
2.1、创建工程导入包依赖
shiro的核心包就是shiro-all
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>shirobasedemo1</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><name>shirobasedemo1</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><!-- https://mvnrepository.com/artifact/org.apache.shiro/shiro-all --><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-all</artifactId><version>1.13.0</version><type>pom</type></dependency></dependencies>
</project>
2.2、创建shiro.ini配置文件
这个地方我们偷懒了,没有通过自定义的realm连接数据库,而是将用户名和密码直接写在了配置文件中。
[users]
shiyilang=123456
shierlang=456789
2.3、创建测试类验证结果
此处使用新版本的测试方式
新版本中直接通过IniRealm去访问和解析ini配置文件
public class Test {public static void main(String[] args) {//创建securityManager安全管理器DefaultSecurityManager securityManager= new DefaultSecurityManager();//创建IniRealmIniRealm iniRealm=new IniRealm("classpath:shiro.ini");//解析shiro.ini文件securityManager.setRealm(iniRealm);//将SecurityManager绑定到当前运行环境中,让系统随时随地可以访问securityManager对象SecurityUtils.setSecurityManager(securityManager);//创建当前的登录主体,此时主体没有经过认证(Subject会给SecurityManager委托各种功能)Subject subject= SecurityUtils.getSubject();//绑定主体登录的身份凭证,即账号和密码UsernamePasswordToken token=new UsernamePasswordToken("shiyilang","123456");//主体登录subject.login(token);//login方法的内部,就回去安全管理器//判断登录是否成功System.out.println("验证是否成功:"+subject.isAuthenticated());//注销操作subject.logout();System.out.println("验证是否成功:"+subject.isAuthenticated());}
}
2.4、测试结果
3、源码下载
https://download.csdn.net/download/tangshiyilang/88677731