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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2661794.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

在SpringBoot中自定义指标并使用Prometheus监控报警

公众号「架构成长指南」&#xff0c;专注于生产实践、云原生、分布式系统、大数据技术分享 在10 分钟教你使用Prometheus监控Spring Boot工程中介绍了如何使用Prometheus监控Spring Boot提供的默认指标&#xff0c;这篇介绍如何自定义业务指标&#xff0c;并使用Prometheus进行…

神经网络:模型部署

【一】模型压缩的必要性与可行性&#xff1f; 模型压缩是指对算法模型进行精简&#xff0c;进而得到一个轻量且性能相当的小模型&#xff0c;压缩后的模型具有更小的结构和更少的参数&#xff0c;可以有效降低计算和存储开销&#xff0c;便于部署在端侧设备中。 随着AI技术的…

ERP与智能商品系统在供应链管理上有哪些区别和优势?

ERP系统和智能商品系统在供应链管理方面有以下区别和优势&#xff1a; 范围和综合性&#xff1a;ERP系统涵盖了企业的整个供应链管理过程&#xff0c;包括供应商管理、采购管理、库存管理、生产计划和物流管理等。它可以实现供应链上下游的信息共享和协同&#xff0c;提高供应…

鸿蒙原生应用/元服务开发-Stage模型能力接口(十)下

ohos.app.form.FormExtensionAbility (FormExtensionAbility) 系统能力&#xff1a;SystemCapability.Ability.Form 示例 import FormExtensionAbility from ohos.app.form.FormExtensionAbility; import formBindingData from ohos.app.form.formBindingData; import formP…

【Java干货教程】JSON,JSONObject,JSONArray类详解

一、定义 JSON&#xff1a;就是一种轻量级的数据交换格式&#xff0c;被广泛应用于WEB应用程序开发。JSON的简洁和清晰的层次结构&#xff0c;易于阅读和编写&#xff1b;同时也易于机器解析和生成&#xff0c;有效的提升网络传输效率&#xff1b;支持多种语言&#xff0c;很多…

Java商城 免 费 搭 建:鸿鹄云商实现多种商业模式,VR全景到SAAS,应有尽有!

鸿鹄云商 b2b2c产品概述 【b2b2c平台】&#xff0c;以传统电商行业为基石&#xff0c;鸿鹄云商支持“商家入驻平台自营”多运营模式&#xff0c;积极打造“全新市场&#xff0c;全新 模式”企业级b2b2c电商平台&#xff0c;致力干助力各行/互联网创业腾飞并获取更多的收益。从消…

pdf编辑器:Acrobat Pro DC 2023中文

Acrobat Pro DC 2023是一款功能强大的PDF处理软件&#xff0c;可以帮助用户在创建、编辑、转换和合并PDF文档方面达到前所未有的高度。Acrobat Pro DC 2023具备创建PDF的功能&#xff0c;用户可以将各种类型的文件&#xff0c;如Word、Excel、PowerPoint、图片等&#xff0c;轻…

HTTP与HTTPS的区别,看这一篇就够了

HTTP&#xff08;Hypertext Transfer Protocol&#xff09;和HTTPS&#xff08;Hypertext Transfer Protocol Secure&#xff09;是网页传输中常用的两种协议&#xff0c;它们之间的主要区别在于安全性。 HTTP是一种用于在Web浏览器和服务器之间传递信息的标准协议。然而&#…

【SpringBoot篇】详解Bean的管理(获取bean,bean的作用域,第三方bean)

文章目录 &#x1f354;Bean的获取&#x1f384;注入IOC容器对象⭐代码实现&#x1f6f8;根据bean的名称获取&#x1f6f8;根据bean的类型获取&#x1f6f8;根据bean的名称和类型获取 &#x1f384;Bean的作用域⭐代码实现&#x1f388;注意 &#x1f384;第三方Bean⭐代码实现…

【Unity动画系统】Animator有限状态机参数详解

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

怎么快速去除图片水印?这些快速去除的工具赶紧码住

在数字时代的大潮中&#xff0c;图片与视频中的水印如同微小的瑕疵&#xff0c;虽然旨在维护原创者的权益&#xff0c;却往往损害了内容的观感&#xff0c;降低了他人的分享欲望。那些恼人的水印&#xff0c;常常让人们束手无策。但别担心&#xff0c;接下来我将为你揭秘几种快…

羊大师讲解,羊奶怎么加热才不容易破坏营养

羊大师讲解&#xff0c;羊奶怎么加热才不容易破坏营养 随着人们对健康饮食的重视&#xff0c;越来越多的人开始选择羊奶作为补充营养的饮品。在加热羊奶的过程中&#xff0c;如果方法不当&#xff0c;很容易造成营养价值的损失。那么&#xff0c;如何加热羊奶才能最大程度地保…

gem5学习(7):内存系统中创建 SimObjects--Creating SimObjects in the memory system

目录 一、gem5 master and slave ports 二、Packets 三、Port interface 1、主设备发送请求时从设备忙 2、从设备发送响应时主设备忙 四、Simple memory object example 1、Declare the SimObject 2、Define the SimpleMemobj class 3、Define the SimpleMemobj class…

私域营销新趋势:电商品牌如何打破传统,实现共赢?

一、自私的私域 私域运营已经成为企业营销的重要手段之一&#xff0c;越来越多的品牌开始重视私域的构建和运营。瑞幸咖啡、熊猫不走和泡泡玛特等品牌的成功案例证明了私域运营的重要性和价值。这些品牌通过建立自己的用户社区&#xff0c;提供个性化的服务和营销策略&#xf…

ffmpeg 解码文件时的时间戳问题

实时流和普通文件 1 实时流 实时流编码时&#xff0c;我们一般不进行b帧编码&#xff0c;但是文件存储时为了减小大小&#xff0c;会增加b帧&#xff0c;实时流只带了I&#xff0c;P帧&#xff0c;那就会好很多 2 普通文件 很多文件带了b帧&#xff0c;所以要使用解码时间去同…

JavaScript(简写js)常用事件举例演示

目录 1.窗口事件onblur :失去焦点onfocus:获得焦点onload:窗口加载事件onresize:窗口大小缩放事件 二、表单事件oninput &#xff1a;当文本框内容改变时 &#xff0c;立即将改变内容 输出在控制台onchange&#xff1a; 内容改变事件onclick&#xff1a;鼠标单击时触发此事件 三…

Spring高手之路-SpringIOC

目录 何为IOC IOC的优点 Spring的IOC 补充 IOC是如何实现的&#xff1f; 何为IOC 所谓的IOC&#xff08;inversion of control&#xff09;&#xff0c;就是控制反转的意思。何为控制反转&#xff1f; 在传统的程序设计中&#xff0c;应用程序代码通常控制着对象的创建和管…

面试算法77:链表排序

题目 输入一个链表的头节点&#xff0c;请将该链表排序。 分析 归并排序的主要思想是将链表分成两个子链表&#xff0c;在对两个子链表排序后再将它们合并成一个排序的链表。 这里可以用快慢双指针的思路将链表分成两半。如果慢指针一次走一步&#xff0c;快指针一次走两步…

docker-compose部署zabbix服务

1.首先要有docker环境&#xff0c; 关闭防火墙&#xff0c;selinux 开启docker&#xff0c;并设置开机自启动 Linux的docker的安装https://blog.csdn.net/m0_58146415/article/details/134654933 2.docker-compose的安装----github下载 curl -SL https://github.com/docke…

JavaSE语法之十一:接口(超全!!!)

文章目录 1. 概念2. 语法规则3. 接口使用4. 接口特性5. 实现多个接口6. 接口间的继承7. 接口使用实例8. Clonable 接口和深拷贝9. 抽象类和接口的区别&#xff08;重要&#xff01;&#xff09; 1. 概念 在现实生活中的接口比比皆是&#xff0c;如&#xff1a;笔记本上的USB接…