2、Shiro的认证
Shiro的认证流程大体可以参考下面这幅图:
但是没有接触过shiro的同学看到上面的图片也不明白,下面我们来在代码中尝试体验Shiro的认证过程:
1.新建一个SpringBoot项目项目结构如下:
ShiroframeApplicationTests代码:
package com.shiro.shiroframe;import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.mgt.DefaultSecurityManager; import org.apache.shiro.realm.SimpleAccountRealm; import org.apache.shiro.subject.Subject; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test;public class ShiroframeApplicationTests {//realm,暂时用来存储我们假造的用户信息SimpleAccountRealm simpleAccountRealm = new SimpleAccountRealm();@BeforeEach//@BeforeEach注解的作用就是使她下面的方法在其他方法运行之前执行public void addUser(){//设置假造的用户信息,在Realm里面添加一个用户simpleAccountRealm.addAccount("qqq", "aaa");}@Testpublic void authenticator() {//1.构建SecurityManager环境DefaultSecurityManager defaultSecurityManager = new DefaultSecurityManager();//设置SecurityManager环境下的Realm defaultSecurityManager.setRealm(simpleAccountRealm);//SecurityUtils先获取SecurityManager环境 SecurityUtils.setSecurityManager(defaultSecurityManager);//通过SecurityUtils获取Subject主体Subject subject = SecurityUtils.getSubject();//通过UsernamePasswordToken组织提交认证所要传递的参数UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken("qqq", "aaa");//提交登录认证 subject.login(usernamePasswordToken);//打印是否认证通过:subject.isAuthenticated()System.err.println("isAuthenticated:" + subject.isAuthenticated());//账号密码匹配的情况下打印结果:isAuthenticated:true;否则控制台报错:org.apache.shiro.authc.UnknownAccountException: Realm [org.apache.shiro.realm.SimpleAccountRealm@2cbb3d47] was unable to find account data for the submitted AuthenticationToken [org.apache.shiro.authc.UsernamePasswordToken - qq, rememberMe=false].//登出 subject.logout();//登出之后认证返回falseSystem.err.println("isAuthenticated:" + subject.isAuthenticated());//isAuthenticated:false }}
转载于:https://www.cnblogs.com/luzhanshi/p/11023771.html
2、Shiro的认证相关推荐
- Shiro实现认证_ini
1,基本概念 1,身份验证 即在应用中谁能证明他就是他本人.一般提供如他们的身份ID 一些标识信息来表明他就是他本人, 如提供身份证,用户名/密码来证明. 在 shiro 中,用户需要提供princ ...
- authc过滤器 shiro_使用Shiro实现认证和授权(基于SpringBoot)
Apache Shiro是一个功能强大且易于使用的Java安全框架,它为开发人员提供了一种直观,全面的身份验证,授权,加密和会话管理解决方案.下面是在SpringBoot中使用Shiro进行认证和授权 ...
- springboot+mybatis整合shiro——登录认证和权限控制
引依赖 shiro-all包含shiro所有的包.shiro-core是核心包.shiro-web是与web整合.shiro-spring是与spring整合.shiro-ehcache是与EHCac ...
- Shiro身份认证---转
目录 1. Shro的概念 2. Shiro的简单身份认证实现 3. Shiro与spring对身份认证的实现 前言: Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在 JavaSE 环境 ...
- 学习Spring Boot:(十三)配置 Shiro 权限认证
经过前面学习 Apache Shiro ,现在结合 Spring Boot 使用在项目里,进行相关配置. 正文 添加依赖 在 pom.xml 文件中添加 shiro-spring 的依赖: <d ...
- Shiro学习笔记_02:shiro的认证+shiro的授权
Shiro 学习笔记 本文基于B站UP主[编程不良人]视频教程[2020最新版Shiro教程,整合SpringBoot项目实战教程]进行整理记录,仅用于个人学习交流使用. 视频链接:https://w ...
- SpringBoot + MyBatis-Plus + Shiro授权认证
一.引入依赖 <!-- Spring Boot SpringMVC 框架 --> <dependency><groupId>org.springframework. ...
- shiro的 认证 与 授权
1,什么是shiro Shiro是apache旗下一个开源框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份认证,权限授权.加密.会话管理等功能,组成了一个通用的安全认证框架. shiro将 ...
- 一文读懂 Shiro 登录认证全流程
一文读懂 Shiro 登录认证全流程 登录入口 执行登录 UserRealm Apache Shiro 是 Java 的一个安全框架.Shiro 可以帮助我们完成:认证.授权.加密.会话管理.与 We ...
最新文章
- MySQL 批量插入:如何不插入重复数据?
- 模板or定制网站如何选?
- 百度关闭新闻源背后的13个趋势风口
- 哪些贷款是正规的?哪些贷款千万别碰?
- 按钮传值给ajax,用jquery和ajax实现分页时,按钮怎么给jquery传值?
- Linux之find学习--详解
- 旧的非flash版Metalink的入口
- NDK开发简单demo
- R语言:关于我国各地区消费水平的聚类分析
- win8 机器硬盘异响
- 电脑开机界面如何设置个性签名?
- 看完这个故事终于知道区块链是什么了
- 雨后小故事动态邪恶_当您遇到“邪恶”的问题时,使故事变小
- 最伟大IT人物10强出炉 乔布斯第一盖茨第三
- 台式机通过笔记本上网的方法
- 怎么把在线网站保存的flv格式转换成mp4
- 开发框架-.Net:Learun(力软敏捷开发)
- Banana Pi BPI-R3 评测:详细信息、功能
- 关于DSP28335的CAN模块与上位机(PC)通信调试心得(1)
- 【DB笔试面试702】在Oracle中,如何定时清理INACTIVE状态的会话?