首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

升级到spring secrity 5后,BCryptPasswordEncoder无法正常工作

升级到Spring Security 5后,BCryptPasswordEncoder无法正常工作的原因是Spring Security 5中默认使用的密码存储格式已从BCrypt更改为DelegatingPasswordEncoder。DelegatingPasswordEncoder是一个可以根据前缀标识选择使用不同加密算法的PasswordEncoder。

为了修复BCryptPasswordEncoder无法正常工作的问题,可以采取以下步骤:

  1. 引入必要的依赖:确保你的项目中已经引入了Spring Security 5.x的依赖。
  2. 更新密码存储格式配置:在Spring Security的配置类或XML配置文件中,使用PasswordEncoderFactories工具类创建一个DelegatingPasswordEncoder,并指定使用BCrypt作为默认的密码存储格式。
  3. Java配置示例:
  4. Java配置示例:
  5. XML配置示例:
  6. XML配置示例:
  7. 更新用户密码的存储格式:如果你已经有用户数据在数据库中,你需要在用户登录时更新密码的存储格式。可以通过编写一个自定义的UserDetailsService实现类,在其中调用DelegatingPasswordEncoder的upgradeEncoding方法将密码的存储格式从BCrypt升级为DelegatingPasswordEncoder。
  8. Java配置示例:
  9. Java配置示例:
  10. 这样,升级到Spring Security 5后,BCryptPasswordEncoder应该能正常工作了。

对于Spring Security 5的更多详细信息,你可以查阅Spring Security官方文档

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 聊一聊 Spring Security 密码加密方案 | 继续送书

    2011 年 12 月 21 日,有人在网络上公开了一个包含 600 万个 CSDN 用户资料的数据库,数据全部为明文储存,包含用户名、密码以及注册邮箱。事件发生后 CSDN 在微博、官方网站等渠道发出了声明,解释说此数据库系 2009 年备份所用,因不明原因泄露,已经向警方报案,后又在官网发出了公开道歉信。在接下来的十多天里,金山、网易、京东、当当、新浪等多家公司被卷入到这次事件中。整个事件中最触目惊心的莫过于 CSDN 把用户密码明文存储,由于很多用户是多个网站共用一个密码,因此一个网站密码泄露就会造成很大的安全隐患。由于有了这么多前车之鉴,我们现在做系统时,密码都要加密处理。

    04
    领券