shiro1.10版本后-IniSecurityManagerFactory过期失效

1、问题概述?

今天在研究了shiro的新版本shiro1.13.0版本,发现用了很长时间的IniSecurityManagerFactory工厂失效了。

从下图中可以看出,在新版本中IniSecurityManagerFactory被打上了过期线了。

那么问题来了,新版本如何使用呢。接下来我们来解决这个问题。

shiro1.10版本后-IniSecurityManagerFactory过期失效_第1张图片

2、创建Maven工程测试shiro.13.0

2.1、创建工程导入包依赖

shiro的核心包就是shiro-all


  4.0.0

  org.example
  shirobasedemo1
  1.0-SNAPSHOT
  jar

  shirobasedemo1
  http://maven.apache.org

  
    UTF-8
  

  
    
      junit
      junit
      3.8.1
      test
    

    
    
      org.apache.shiro
      shiro-all
      1.13.0
      pom
    

  

2.2、创建shiro.ini配置文件

这个地方我们偷懒了,没有通过自定义的realm连接数据库,而是将用户名和密码直接写在了配置文件中。

shiro1.10版本后-IniSecurityManagerFactory过期失效_第2张图片

[users]
shiyilang=123456
shierlang=456789

2.3、创建测试类验证结果

此处使用新版本的测试方式

新版本中直接通过IniRealm去访问和解析ini配置文件

public class Test {
    public static void main(String[] args) {
        //创建securityManager安全管理器
        DefaultSecurityManager securityManager= new DefaultSecurityManager();
        //创建IniRealm
        IniRealm 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

你可能感兴趣的:(权限控制框架应用(Shiro,springSecurity),shiro新版本使用,shiro1.13.0新用法,shiro最新版本测试类)