shiro密码正确也会匹配错误_Shiro---强大且易用的Java安全框架(二)

v2-f803f22d6850d90d2bae5dfa79db9d89_1440w.jpg?source=172ae18b

【Shiro】

五、第一个Shiro演示

Shiro是不依赖于容器的,所以建立一个普通的Maven项目就可以。

1、添加依赖

<dependencies>
    

2、新建配置文件

在resources下新建shiro.ini,文件名称任意,扩展名必须是ini。

v2-8703098e6a1dbc55ffa8116f1cb5ad65_b.jpg

3、新建测试类

新建com.bjsxt.ShiroRun。

public 

六、授权

v2-c42480e2da3c3601a3f703ed188243cf_b.jpg

1、判断角色

1.1 修改配置文件

直接在密码后面添加用户包含的角色名即可。

v2-4f7f9aa354aa803538ebe5bf85ef9efe_b.jpg

1.2 添加代码

hasRole()通过返回值判断用户是否具有指定角色。

v2-ccfd56b880850797b56bab69a557b9ee_b.png

2、判断权限

2.1 修改配置文件

v2-86abf5312156cfc78f64bf7aa903118f_b.jpg

2.2 添加测试代码

通过是否出现AuthenticationException异常控制是否有指定权限。

v2-09e47a1aa1043f34ba21f3450f7bf615_b.jpg

七、加密及凭证匹配器

在实际开发中数据库中一些敏感信息经常会被加密存储。如:用户密码等。

Shiro框架内嵌了很多加密算法。如MD5等。使用Shiro框架时可以很方便的实现加密功能。

String 

八、自定义Realm

ShiroRun 代码不需要做任何变化。

1、自定义Realm类

在项目中新建com.bjsxt.realm.MyRealm

public 

2、修改配置文件

在配置文件中添加下面内容

v2-3e4bf18b157f5fe27e8106699701e25b_b.jpg

3、测试结果

在ShiroRun中修改用户名和密码,当用户名和密码为admin、pwd时可以正常登录。

此时无论shiro.ini是否配置了[users],都按照Realm中配置的逻辑进行比较用户名和密码。

九、凭证匹配器

在实际应用中数据库密码都是加密的。Shiro内置了凭证匹配器,通过简单配置就可以实现明文数据和数据库中加密数据匹配的效果。

1、修改自定义Realm

AuthenticationInfo 的构造方法由三个参数变成四个参数的。新增第三个参数表示加盐。

一般都是拿用户数据的id作为盐。

v2-59d57a9e949942e9dacbb4019cf875c2_b.jpg

2、修改配置文件

在配置文件中配置凭证匹配器配置。

v2-6b739eece3076e9c267fe89ba4c707d0_b.jpg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值