shiro密码正确也会匹配错误_Shiro安全框架

Shiro简介:

Apache Shiro 是强大易用Java的安全框架,提供了认证、授权、加密和会话管理等功能。

Shiro的应用场景:对于任何一个应用程序,Shiro都能提供全面的安全管理服务,不仅可以用在javaSE环境还可以用在javaEE环境。

Shiro的架构图:

从外部来看Shiro,即从应用程序角度来观察使用Shiro完成工作。

从外部看Shiro分为四部分:ApplicationCode-->编写的代码、Subject-->主体、

Shiro SecurityManager-->安全管理器、Realm-->领域;

v2-93b787b65c8c2b85acd1238ea7cf5cfc_b.jpg
图1(Shiro内部架构图)

从Shiro内部看Shiro的架构:

v2-473073c4ef8c84f1a2298285ca4e0514_b.jpg
图2(Shiro颞部架构图)

Shiro涉及常见的名词

Shiro中常见的英文词汇:

Subject --主体(当前用户)

Security --安全

Realm --领域(操作数据源)

Authenticator --认证器

Authentication --认证

Authorizer -->授权器

Authorization -->授权

Matcher --匹配器

Principal --身份(用户名)

最常见的principals(身份)和credentials(凭证)组合就是用户名/密码。

v2-5d389b89cf4cd17fe5a66847de888ea6_b.jpg
图3(Shiro涉及常见名词)

Shiro配置文件--->Shiro.ini

Shiro.ini 一般放在路径-->src下(ClassPath)

Shiro.ini 文件配置的数据格式为--> key-value键值对形式

Shiro.ini 的应用场景:

ini配置文件适用于于用户少且不需要再运行时动态创建的情形下使用。

环境搭建实现简单认证-->

1)导入所依赖的架包

v2-f52320164c54e4e7cee91337e58d144a_b.jpg
图4

2)配置Shiro.ini文件

v2-1868acce93676d6848e3a482e35cb174_b.jpg

3)编写实现简单验证的测试类

package 

4)测试类打印结果:

v2-35e712fb9bca222ecb99e5aa6c3306a1_b.jpg

Shiro内置的JDBCRealm

1)Shiro默认使用自带的IniRealm,IniRealm从ini配置文件中读取用户的信息。

2)大部分情况下需要从系统的数据库中读取用户信息,所以需要使用JDBCRealm自定义Realm

A--使用JDBCRealm提供数据源,从而实现认证

导入架包

v2-05e4553abddb7eedf87987ace2c8f09d_b.jpg

ini文件配置

v2-d0c19e95039a8742f4ca913b9e6739c9_b.jpg

测试类同上

密码加密实现方案

几种常见加密算法

1)对称加密算法(加密与解密密钥相同)

v2-ad9eea9d9cebbe3e63333d44ee4a7b6f_b.jpg

2)非对称算法(加密密钥和解密密钥不同)

v2-02c14310929df9afcf10289588cb2bc1_b.jpg

3)散列算法

v2-9c31756c68f1d8205d6f6f582d471072_b.png

加盐-->所谓加Salt(盐)方法,就是加点“佐料”。

密码加密实现方案-->其基本想法是这样的:当用户首次提供密码时(通常是注册时), 由系统自动往这个密码里撒一些“佐料”,然后再散列。而当用户登录时, 系统为用户提供的代码撒上同样的“佐料”,然后散列,再比较散列值,来确定密码是否正确。

迭代-->就是值加密的次数

v2-502ca71afea3b6e330f63ffb7e59b674_b.jpg

凭证匹配器-->在Realm接口的实现类AuthenticatingRealm中有credentialsMatcher属性。

意为凭证匹配器。常用来设置加密算法及迭代次数等。

授权-->授权又称作访问控制,是对资源访问管理的过程。

Shiro中常见的授权的方式--->

Shiro支持的三种授权的方式:代码触发、 注解触发、 标签触发、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值