【Shiro】3、Shiro实现自定义密码验证规则

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 我们在使用 Shiro 实现登录的时候,我们只需要将账号、密码,Shiro 会自动判断账户、密码是否正确,那么 Shiro 怎么会知道我们的密码加密规则呢?所以我们需要自定义密码的加密规则

我们在使用 Shiro 实现登录的时候,我们只需要将账号、密码,Shiro 会自动判断账户、密码是否正确,那么 Shiro 怎么会知道我们的密码加密规则呢?所以我们需要自定义密码的加密规则

  • 1、自定义加密规则
/**
* 凭证匹配器
* 执行login(token)后由securityManager调用,用于计算密码加密后的密文
*
* @return
*/
@Bean
public HashedCredentialsMatcher hashedCredentialsMatcher() {
   HashedCredentialsMatcher hashedCredentialsMatcher = new HashedCredentialsMatcher();
   // 设置散列算法
   hashedCredentialsMatcher.setHashAlgorithmName("md5");
   // 设置散列计算次数,相当于md5(md5(""))
   hashedCredentialsMatcher.setHashIterations(6);
   // storedCredentialsHexEncoded默认是true,此时用的是密码加密用的是Hex编码;false时用Base64编码
   hashedCredentialsMatcher.setStoredCredentialsHexEncoded(true);
   return hashedCredentialsMatcher;
}

我们采用了 MD5 的非对称性加密规则,加密迭代6次

  • 2、自定义认证授权规则
/**
 * 自定义认证授权规则
 */
@Bean
public LoginRelam loginRelam() {
    // 登录认证规则
    LoginRelam loginRelam = new LoginRelam();
    // 自定义加密规则
    loginRelam.setCredentialsMatcher(hashedCredentialsMatcher());
    return loginRelam;
}

这样我们就实现了自定义密码加密规则,Shiro 在登录认证的时候会将传入的明文密码按照此规则加密后与数据库中的用户密码做比较,以此来判断密码是否正确

目录
相关文章
|
4月前
|
NoSQL Java Redis
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
73 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
|
存储 NoSQL Java
SpringBoot自定义实现类似jwt权限验证效果
SpringBoot自定义实现类似jwt权限验证效果
106 0
|
安全 Java Apache
Springboot整合shiro:实现用户登录和权限验证
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。当然类型大家也可以使用spring security;因为我平时开发的项目都是中小型的,所以使用shiro对于业务来说已经够用了,那么下面是我整理的整合记录;
172 0
|
缓存 安全 Apache
2021年你还不会Shiro?----3.分析身份认证源码实现自定义Realm
我们已经知道无论我们是认证还是授权,数据的获取都是来源于Realm,Realm就相当于我们的datasource,在上一篇中我们使用的是用IniRealm来加载我们的配置文件shiro.ini,同时我们也说了ini只是临时解决方案,在实际的开发中是不可能把用户信息和权限信息放在ini文件中的,都是来源于数据库,那么系统提供的IniRealm就不能满足我们的需要了,我们就需要自定义Realm来实现真正的场景,事实上ini文件也只是apache为我们提供学习使用的策略,下面我们就来看下怎么自己定义一个Realm。
136 0
2021年你还不会Shiro?----3.分析身份认证源码实现自定义Realm
|
存储 缓存 安全
2021年你还不会Shiro?----2.Shiro实现登录功能(身份认证实践)
上一篇介绍了Shiro的架构,我们可以发现Shiro核心的东西并不多,我们花个几分钟就可以把Shiro的机构记清楚,其中Security Manager就是Shiro的核心,他包含了身份认证器Authenticator、授权器Authorizer、Session管理Session Manager、缓存管理Cache Manager。这一篇我们就介绍下Shiro的身份认证的过程,也就是我们说的用户登录。
179 0
2021年你还不会Shiro?----2.Shiro实现登录功能(身份认证实践)
|
安全 数据安全/隐私保护
【Shiro】4、Shiro实现记住登录功能
用户每次在登录系统时需要重新输入账户、密码、验证码等信息,非常麻烦,于是要求加一个记住登录的功能,这对于 Shiro 来说是非常简单,下面就让我们一起来实现记住登录功能
195 0
【Shiro】4、Shiro实现记住登录功能
|
存储 安全 算法
Spring Security-PasswordEncoder密码解析器详解和自定义登录逻辑
Spring Security-PasswordEncoder密码解析器详解和自定义登录逻辑
Spring Security-PasswordEncoder密码解析器详解和自定义登录逻辑
|
数据库
【Shiro 系列 05】Shiro 中多 Realm 的认证策略问题
上篇文章和小伙伴们分享了 JdbcRealm,本文我想和小伙伴们聊聊多 Realm 的认证策略问题。
【Shiro 系列 05】Shiro 中多 Realm 的认证策略问题
|
Java 数据库连接 数据库
Shiro的Jdbc配置和验证策略(二)下
Shiro的Jdbc配置和验证策略(二)
185 0
Shiro的Jdbc配置和验证策略(二)下
|
SQL Java 数据库连接
Shiro的Jdbc配置和验证策略(二)上
Shiro的Jdbc配置和验证策略(二)
170 0
Shiro的Jdbc配置和验证策略(二)上