spring security认证对密码进行MD5认证
在上一篇中写了如何自定义数据库用户表结构,这里补充一下怎么对用户输入的密码进行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认证相关推荐
- Spring Security中的密码安全
Spring Security中的密码安全 PasswordEncoder 接口 在 Spring Security 中,PasswordEncoder 接口代表的是一种密码编码器,其核心作用在于指定 ...
- Spring Security是什么? - 密码认证(四)
在 Spring Security当中,认证的过程,首先是获取用户名,然后通过用户名在数据库当中获取到用户的完整信息,然后根据用户信息再去 比对用户的密码.从源代码当中可以看出,密码的认证过程是有sp ...
- Springboot + Spring Security 实现前后端分离登录认证及权限控制
Spring Security简介 Spring Security 是 Spring 家族中的一个安全管理框架,实际上,在 Spring Boot 出现之前,Spring Security 就已经发展 ...
- spring security oauth2 基于 RBAC 的自定义认证
基于 RBAC 的自定义认证 概述 在实际开发中,我们的用户信息都是存在数据库里的,本章节基于 RBAC 模型 将用户的认证信息与数据库对接,实现真正的用户认证与授权 操作流程 继续 基于 JDBC ...
- Spring Boot 2.0 利用 Spring Security 实现简单的OAuth2.0认证方式1
0. 前言 之前帐号认证用过自己写的进行匹配,现在要学会使用标准了.准备了解和使用这个OAuth2.0协议. 1. 配置 1.1 配置pom.xml 有些可能会用不到,我把我项目中用到的所有包都贴出来 ...
- 用Spring Security实现后台登录及权限认证功能
测试权限 登录http://localhost:8080/ 在这里插入图片描述 点击会员中心,尝试访问受限的页面http://localhost:8080/home,由于未登录,结果被强制跳转到登录页 ...
- Spring Security Oauth2 之密码模式
点击关注公众号,实用技术文章及时了解 作者:歪桃 blog.csdn.net/m0_37892044/article/details/113058924 前言,因为最近的项目是用Spring ...
- Spring Security实现用户名密码验证的原理
title: Spring Security date: 2019-08-05 16:40:27 categories: 后端 tags: 后端 权限管理 Spring Security Spring ...
- 使用Spring Security 5进行密码编码器迁移
最近,我在一个使用自定义PasswordEncoder的项目中工作,需要将其迁移到bcrypt . 当前的密码存储为hash ,这意味着不可能将其还原为原始的String –至少不是简单的方法. 这里 ...
最新文章
- 投资计算机方面的策略构建,金融投资简单的策略分享和构建策略的基本思路
- 简单的并发测试工具 ab.exe ab.zip可下载 -摘自网络
- java代码里的JSON格式怎么写好看_谁会不爱让代码骚里骚气的VSCode扩展插件呢?...
- java并发编程--一道经典多线程题的2种解法
- 《从零开始学ASP.NET CORE MVC》:VS2019创建ASP.NET Core Web程序(三)
- ORACLE EBS 多账套总结
- REVERSE-PRACTICE-BUUCTF-9
- AJAX扩展-POST传递参数并跳转页面
- 开源软件执照检查和工具探讨(Discuss the audit tools for open source license GPL/LGPL/MIT)
- 五一假期四天_假期在家上班的12天
- 前端开发-家里蹲工作环境搭建
- cacti监控mysql
- CAD图纸无法编辑修改怎么回事?
- 37、购物系统需求分析
- android 展开收起功能,Android非常简单的TextView展开和收起,在列表中TextView文章展开全部和收起...
- iOS WKWebView 那些坑
- 超视频时代,数据洪峰何解?
- “第十届金融工程及量化投资者年会”来啦!
- “二老板”何以疯行互联网?
- 校友会小程序开发笔记六:校友活动聚会功能模块设计与实现
热门文章
- 免费CRM系统能用吗?免费客户管理系统的缺点?
- win7 64位“不是内部命令和外部命令,也不是可运行的程序和批处理文件”错误的解决办法。
- ACCESS 日期函數 常用函數
- 拓扑排序总结(Kahn算法)
- FRED应用:LED发光颜色优化
- 蒙特卡罗方法和拉斯维加斯方法
- 【Web技术】1106- 浅析前端异常及降级处理
- java tasklist_java 调用 cmd 中的 tasklist 来获取特定进程的PID
- python爬微信头像_itchat+pillow实现微信好友头像爬取和拼接
- 2021年考Java工程师的要求有哪些?