在上一篇中写了如何自定义数据库用户表结构,这里补充一下怎么对用户输入的密码进行MD5认证,在老版本的spring security(笔者使用的是org.springframework.security:spring-security-core:5.0.0.M2)中可以找到一个org.springframework.security.authentication.encoding.Md5PasswordEncoder,要加密的话只需要:

@Overridepublic void configure(AuthenticationManagerBuilder auth) throws Exception {auth.jdbcAuthentication().dataSource(dataSource).passwordEncoder(new Md5PasswordEncoder())  //对输入的密码进行MD5加密,在注册时会将用户密码加密后放入数据库.usersByUsernameQuery("select userid,userpassword,enableflag "+"from ftp_user where userid=?").authoritiesByUsernameQuery("select username, authority "+"from authorities where username=?");}

而在使用新的版本(spring-security-core-5.0.6.RELEASE)时,发现没有这个包了,取而代之的是org.springframework.security.crypto.password.MessageDigestPasswordEncoder,新的MD5加密写法如下:

@Overridepublic void configure(AuthenticationManagerBuilder auth) throws Exception {auth.jdbcAuthentication().dataSource(dataSource).passwordEncoder(new MessageDigestPasswordEncoder("MD5")).usersByUsernameQuery("select userid,userpassword,enableflag "+"from ftp_user where userid=?").authoritiesByUsernameQuery("select username, authority "+"from authorities where username=?");}

这里使用的MessageDigestPasswordEncoder方法被标记为过时方法,原因为spring security不推荐这中加密方法,到该类的定义中可以看到:

* @deprecated Digest based password encoding is not considered secure. Instead use an* adaptive one way funciton like BCryptPasswordEncoder, Pbkdf2PasswordEncoder, or* SCryptPasswordEncoder. Even better use {@link DelegatingPasswordEncoder} which supports* password upgrades. There are no plans to remove this support. It is deprecated to indicate* that this is a legacy implementation and using it is considered insecure.

虽然被标记为过时方法,但是并没有打算废弃,还是能用的。

spring security认证对密码进行MD5认证相关推荐

  1. Spring Security中的密码安全

    Spring Security中的密码安全 PasswordEncoder 接口 在 Spring Security 中,PasswordEncoder 接口代表的是一种密码编码器,其核心作用在于指定 ...

  2. Spring Security是什么? - 密码认证(四)

    在 Spring Security当中,认证的过程,首先是获取用户名,然后通过用户名在数据库当中获取到用户的完整信息,然后根据用户信息再去 比对用户的密码.从源代码当中可以看出,密码的认证过程是有sp ...

  3. Springboot + Spring Security 实现前后端分离登录认证及权限控制

    Spring Security简介 Spring Security 是 Spring 家族中的一个安全管理框架,实际上,在 Spring Boot 出现之前,Spring Security 就已经发展 ...

  4. spring security oauth2 基于 RBAC 的自定义认证

    基于 RBAC 的自定义认证 概述 在实际开发中,我们的用户信息都是存在数据库里的,本章节基于 RBAC 模型 将用户的认证信息与数据库对接,实现真正的用户认证与授权 操作流程 继续 基于 JDBC ...

  5. Spring Boot 2.0 利用 Spring Security 实现简单的OAuth2.0认证方式1

    0. 前言 之前帐号认证用过自己写的进行匹配,现在要学会使用标准了.准备了解和使用这个OAuth2.0协议. 1. 配置 1.1 配置pom.xml 有些可能会用不到,我把我项目中用到的所有包都贴出来 ...

  6. 用Spring Security实现后台登录及权限认证功能

    测试权限 登录http://localhost:8080/ 在这里插入图片描述 点击会员中心,尝试访问受限的页面http://localhost:8080/home,由于未登录,结果被强制跳转到登录页 ...

  7. Spring Security Oauth2 之密码模式

    点击关注公众号,实用技术文章及时了解   作者:歪桃   blog.csdn.net/m0_37892044/article/details/113058924 前言,因为最近的项目是用Spring ...

  8. Spring Security实现用户名密码验证的原理

    title: Spring Security date: 2019-08-05 16:40:27 categories: 后端 tags: 后端 权限管理 Spring Security Spring ...

  9. 使用Spring Security 5进行密码编码器迁移

    最近,我在一个使用自定义PasswordEncoder的项目中工作,需要将其迁移到bcrypt . 当前的密码存储为hash ,这意味着不可能将其还原为原始的String –至少不是简单的方法. 这里 ...

最新文章

  1. 投资计算机方面的策略构建,金融投资简单的策略分享和构建策略的基本思路
  2. 简单的并发测试工具 ab.exe ab.zip可下载 -摘自网络
  3. java代码里的JSON格式怎么写好看_谁会不爱让代码骚里骚气的VSCode扩展插件呢?...
  4. java并发编程--一道经典多线程题的2种解法
  5. 《从零开始学ASP.NET CORE MVC》:VS2019创建ASP.NET Core Web程序(三)
  6. ORACLE EBS 多账套总结
  7. REVERSE-PRACTICE-BUUCTF-9
  8. AJAX扩展-POST传递参数并跳转页面
  9. 开源软件执照检查和工具探讨(Discuss the audit tools for open source license GPL/LGPL/MIT)
  10. 五一假期四天_假期在家上班的12天
  11. 前端开发-家里蹲工作环境搭建
  12. cacti监控mysql
  13. CAD图纸无法编辑修改怎么回事?
  14. 37、购物系统需求分析
  15. android 展开收起功能,Android非常简单的TextView展开和收起,在列表中TextView文章展开全部和收起...
  16. iOS WKWebView 那些坑
  17. 超视频时代,数据洪峰何解?
  18. “第十届金融工程及量化投资者年会”来啦!
  19. “二老板”何以疯行互联网?
  20. 校友会小程序开发笔记六:校友活动聚会功能模块设计与实现

热门文章

  1. 免费CRM系统能用吗?免费客户管理系统的缺点?
  2. win7 64位“不是内部命令和外部命令,也不是可运行的程序和批处理文件”错误的解决办法。
  3. ACCESS 日期函數 常用函數
  4. 拓扑排序总结(Kahn算法)
  5. FRED应用:LED发光颜色优化
  6. 蒙特卡罗方法和拉斯维加斯方法
  7. 【Web技术】1106- 浅析前端异常及降级处理
  8. java tasklist_java 调用 cmd 中的 tasklist 来获取特定进程的PID
  9. python爬微信头像_itchat+pillow实现微信好友头像爬取和拼接
  10. 2021年考Java工程师的要求有哪些?