SpringBoot Shiro 配置自定义密码加密器

自定义认证加密方式

/*** 自定义认证加密方式*/
public static class CustomCredentialsMatcher extends SimpleCredentialsMatcher {@Overridepublic boolean doCredentialsMatch(AuthenticationToken authcToken, AuthenticationInfo info) {UsernamePasswordToken token = (UsernamePasswordToken) authcToken;//加密类型,密码,盐值,迭代次数Object tokenCredentials = new SimpleHash("md5", password, username, 2).toHex();//数据库存储密码Object accountCredentials = getCredentials(info);//将密码加密与系统加密后的密码校验,内容一致就返回true,不一致就返回falsereturn equals(tokenCredentials, accountCredentials);}
}

第一种方式:配置Bean

/*** Shiro自带密码管理器** @return HashedCredentialsMatcher*/
@Bean
public HashedCredentialsMatcher hashedCredentialsMatcher() {//Shiro自带加密HashedCredentialsMatcher credentialsMatcher = new HashedCredentialsMatcher();//散列算法使用md5credentialsMatcher.setHashAlgorithmName("md5");//散列次数,2表示md5加密两次credentialsMatcher.setHashIterations(2);credentialsMatcher.setStoredCredentialsHexEncoded(true);return credentialsMatcher;
}/*** 将自己的身份验证器验证方式加入容器** @return CustomRealm*/
@Bean
public CustomRealm shiroRealm() {CustomRealm shiroRealm = new CustomRealm();//shiroRealm.setCacheManager(cacheManager());//加入密码管理//shiroRealm.setCredentialsMatcher(hashedCredentialsMatcher());//Shiro自带密码管理器shiroRealm.setCredentialsMatcher(new CustomCredentialsMatcher());//自定义密码管理器return shiroRealm;
}

第二种方式:实现AuthorizingRealm类setCredentialsMatcher方法

public class CustomRealm extends AuthorizingRealm {........./*** 设置自定义认证加密方式** @param credentialsMatcher 默认加密方式*/@Overridepublic void setCredentialsMatcher(CredentialsMatcher credentialsMatcher) {//自定义认证加密方式CustomCredentialsMatcher customCredentialsMatcher = new CustomCredentialsMatcher();// 设置自定义认证加密方式super.setCredentialsMatcher(customCredentialsMatcher);}
}

赵小胖个人博客

SpringBoot Shiro 配置自定义密码加密器相关推荐

  1. SpringBoot之配置自定义新建文件

    SpringBoot之配置自定义新建文件 适用于自定义mapper.xml文件 1.找到相关设置 2.点击+,新建一个模板 3.mapper.xml文件的模板我放在图片下面了 复制粘贴到上图右侧中间黑 ...

  2. SpringBoot项目配置明文密码泄露问题的处理方式

    SpringBoot项目配置明文密码泄露问题的处理方式: 1.引入jar包 <dependency>     <groupId>com.github.ulisesbocchio ...

  3. springboot ElasticSearch配置自定义转换器ElasticsearchCustomConversions

    springboot ElasticSearch配置自定义转换器ElasticsearchCustomConversions 问题场景 在将Timestamp类型存进Elasticsearc后,将其取 ...

  4. 案例代码:springboot+shiro配置同一用户多设备登录最大会话数

    另一链接: springboot+springsecurity配置登录后踢出前一个登录用户 1.自定义登陆过滤器类: /*** 登录帐号控制过滤器* */ public class KickoutSe ...

  5. SpringBoot+Shiro实现MD5密码加密认证

    一.数据库实体类 数据库实体类要包括用户ID.密码.盐值以及账户状态. username password salt status 二.自定义Realm /*** Shiro自定义Realm*/ pu ...

  6. SpringBoot + Shiro 缓存记住密码

    一般来讲,记住密码的基本处理,就是把用户的一些基本信息(密码)存入浏览器的Cookie,下次登录的时候优先验证Cookie,后端做处理:以此来实现记住密码的功能!使用shiro自带的RememberM ...

  7. java shiro 访问频率_java shiro配置记住密码功能 RememberMe

    一般来讲,记住密码的基本处理,就是把用户的一些基本信息(密码)存入浏览器的Cookie,下次登录的时候优先验证Cookie,后端做处理:以此来实现记住密码的功能!使用shiro自带的RememberM ...

  8. 【Shiro】6、Shiro实现限制密码错误次数从而限制用户登录

    我们的系统非常容易遭受攻击,被人暴力破解等,我们需要对同一账户密码错误次数进行统计,达到上限后,需要在一段时间内限制该用户登录,从而有效地保护账户密码的安全 1.重试限制散列凭据匹配器 package ...

  9. 【Spring框架家族】SpringBoot自动配置基本实现

    SpringBoot自动配置-Condition_1 Condition是Spring4.0后引入的条件化配置接口,通过实现Condition接口可以完成有条件的加载相应的Bean @Conditio ...

最新文章

  1. ECCV 2018 | Pixel2Mesh:从单帧RGB图像生成三维网格模型
  2. python画车辆轨迹图,在python中绘制轨道轨迹
  3. 贴花纸怎么贴_陶瓷贴花纸DIY怎么做?
  4. RabbitMQ入门学习系列(六) Exchange的Topic类型
  5. springmvc 配置aop
  6. redis数据结构存储Linked List设计细节(redis的设计与实现笔记)
  7. 一招教你轻松恢复丢失的MP4视频
  8. 利用爬虫和微信机器人自动刷甘肃教师学苑学分
  9. 人类的行为与程序计算
  10. c++动态规划解决一系列数中互不相邻数字之和的最大值
  11. Spring定时任务注解说明
  12. Android运行项目时提示:No signature of method: build_*.android() is applicable for argument types
  13. MySQL数据库—多表查询
  14. 多功能检测按键 单按 长按 多个按键 响应方式
  15. Kotlin高阶函数之 .() 的使用
  16. 关于VisualStudio2019登陆窗口空白的解决方案
  17. DMETL快速入门小例子
  18. 使用Python爬取简单的有道翻译功能
  19. 怒飞垂云视频教程 一、建立编译环境
  20. 东莞市政府补贴1.5亿,推动免费WiFi建设!

热门文章

  1. log4j-over-slf4j.jar AND slf4j-log4j12.jar 依赖冲突解决方案
  2. WLAN消失,怎么办?
  3. Linux系统下安装PGI,OpenACC编译器
  4. IDEA 2022.01 安装教程
  5. 竞争激烈的互联网环境中,成为一名企业急需的技术人才,需要学习哪些技能呢?
  6. 课题成果,发表省级论文《开展数学阅读 提升数学素养》
  7. NFT + DeFi ,Web3.0去中心化网络时代的下一个风口?
  8. 2013年1季度中国汽车品牌口碑研究报告 ——自主A级车
  9. 目标检测算法发展综述
  10. How to Be a Successful PhD Student