shiro验证过程(登录过程)

本文详细介绍了Apache Shiro框架的验证流程,包括配置ini文件、Java类的角色分配,如Factory、IniSecurityManagerFactory、SecurityManager、SecurityUtils、Subject以及UsernamePasswordToken。主要步骤涉及创建工厂、初始化SecurityManager、设置安全工具、获取Subject、创建验证信息以及执行登录和登出操作。通过这些步骤理解Shiro如何进行用户身份验证。
摘要由CSDN通过智能技术生成

配置文件:ini格式(红头文件)

jdbcRealm=org.apache.shiro.realm.jdbc.JdbcRealm
dataSource=com.alibaba.druid.pool.DruidDataSource
dataSource.driverClassName=com.mysql.cj.jdbc.Driver
dataSource.url=jdbc:mysql://localhost:3306/shiro
dataSource.username=root
#dataSource.password=
jdbcRealm.dataSource=$dataSource
securityManager.realms=$jdbcRealm

Java类:

Factory<SecurityManager> 公安部(大BOSS)

IniSecurityManagerFactory / WebIniSecurityManagerFactory 公安厅

SecurityManager 警察

SecurityUtils 公安局

Subject 验证主体【理解为安全管理所(派出所)】

UsernamePasswordToken 提交的信息

Realm  验证方式(不会直接使用,通过框架调用)

大致流程:

大Boss下发重要的红头文件到指定的公安厅(安全管理厅分为两个块,一个负责管理本地治安,一个负责管理网络治安),从中挑选出一个警察来,下派去派出所执行公务(验证提交信息是否正确)

 

使用方法:

1.创建工厂:

Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");

2.得到工厂实例并创建安全管理员:

SecurityManager securityManager = factory.getInstance();

3.为安全工具提供使用者(manager):

SecurityUtils.setSecurityManager(securityManager);

4.通过安全工具获取验证主体:

Subject subject = SecurityUtils.getSubject();

5.创建验证信息:

UsernamePasswordToken token = new UsernamePasswordToken("账户", "密码");

6.通过验证主体(机构)来做信息验证工作(登录):

subject.login(token);//此方法需要try-catch-AuthenticationException,如发生异常为验证(登录)失败

7.清除登录信息:

subject.logout();

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值