mysql ini文件配置_Shiro学习之——通过Shiro.ini配置文件简单的完成认证操作

ccc2110aeb9d77b0e9fa19fa1f7ed119.png

认证步骤:

1:拷贝依赖

2bb3b97c956cd029f6b6c07f0ebe819f.png

2:简单的配置shiro.ini配置文件, 模拟数据库用户列表

cbdf3dd551a7ab08b77bee5d2ac8e7c6.png

3:执行shiro登录登出操作

463377d2cb28526aa9c14e80bdf6103e.png

如果创建的token里面的用户名和密码与shiro.ini中的一致,则subject.login(token)能登录成功

否则抛出异常:

认证常见的异常:

bb76a8d8d2f0d613b0927c4a02b3928f.png

Shiro流程认证分析:

1、调用subject.login方法进行登录,其会自动委托给securityManager.login方法进行登录;

2、securityManager通过Authenticator(认证器)进行认证;

3、Authenticator的实现ModularRealmAuthenticator调用realm从ini配置文件取用户真实的账号和密码,这里使用的是IniRealm(shiro自带,相当于数据源);

4、IniRealm先根据token中的账号去ini中找该账号如果找不到则给ModularRealmAuthenticator返回null,如果找到则匹配密码,匹配密码成功则认证通过。

5、最后调用Subject.logout进行退出操作。

流程分析图:

63928838726a6eef5c25af1e6646bab4.png

b624e31c0154d8db50fa657efa99bc92.png

总结:这里的认证信息在配置文件Shiro.ini中,Authenticator的实现ModularRealmAuthenticator调用realm从ini配置文件取用户真实的账号和密码,这里使用的是IniRealm(shiro自带,相当于数据源),这里的Shiro.ini,模拟数据库用户列表

在 Shiro 中存在 Realm 这么个概念, Realm 这个单词翻译为 域,其实是非常难以理解的。
域 是什么鬼?和权限有什么毛关系? 这个单词Shiro的作者用的非常不好,让人很难理解。 那么 Realm 在 Shiro里到底扮演什么角色呢?
当应用程序向 Shiro 提供了 账号和密码之后, Shiro 就会问 Realm 这个账号密码是否对, 如果对的话,其所对应的用户拥有哪些角色,哪些权限。
所以Realm 是什么? 其实就是个中介。 Realm 得到了 Shiro 给的用户和密码后,有可能去找 ini 文件,也可以去找数据库

Realm 就是干这个用的,它才是真正进行用户认证和授权的关键地方。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值