当前位置: 首页 > news >正文

系列二、Spring Security中的核心类

一、Spring Security中的核心类

1.1、自动配置类

UserDetailsServiceAutoConfiguration

1.2、密码加密器

1.2.1、概述

        Spring Security 提供了多种密码加密方案,官方推荐使用 BCryptPasswordEncoder,BCryptPasswordEncoder 使用 BCrypt 强哈希函数,开发者在使用时可以选择提供 strength 和 SecureRandom 实例。strength 越大,密钥的迭代次数越多,密钥迭代次数为 2^strength。strength 取值在 4~31 之间,默认为 10。不同于 Shiro 中需要自己处理密码加盐,在 Spring Security 中,BCryptPasswordEncoder 就自带了盐,处理起来非常方便。而 BCryptPasswordEncoder 就是 PasswordEncoder 接口的实现类。

1.2.2、PasswordEncoder

public interface PasswordEncoder {/** encode 方法用来对明文密码进行加密,返回加密之后的密文*/String encode(CharSequence var1);/** matches方法是一个密码校对方法,在用户登录的时候,将用户传来的明文密码和数据库中保存的密文密码作为参数,* 传入到这个方法中去,根据返回的 Boolean 值判断用户密码是否输入正确*/	boolean matches(CharSequence var1, String var2);/** upgradeEncoding 是否还要进行再次加密,这个一般来说就不用了*/	default boolean upgradeEncoding(String encodedPassword) {return false;}
}

1.3、UserDetailService

1.3.1、概述

        Spring Security支持多种数据源,例如内存、数据库、LDAP等,这些不同来源的数据被共同封装成了UserDetailService接口,换句话说任何实现了UserDetailService接口的对象都可以作为认证数据源,因为我们还可以通过重写WebSecurityConfigurerAdapter 中的 userDetailsService 方法来提供一个 UserDetailService 实例进而配置多个用户。

1.3.2、继承结构(基于spring-boot-starter-security:2.3.2.RELEASE)

http://www.lryc.cn/news/278749.html

相关文章:

  • 基于多反应堆的高并发服务器【C/C++/Reactor】(中)HttpRequest 提取请求行、解析请求行和优化 以及解析请求头并存储
  • 数据结构-测试1
  • 【设计模式】01-前言
  • SpringBoot源码分析
  • 约数个数和约数之和算法总结
  • 数据结构-怀化学院期末题(322)
  • 小手也能用的高性能鼠标,自定义空间还挺高,雷柏VT9Pro mini上手
  • CDN加速原理详解
  • sqlachemy orm create or delete table
  • 科普小米手机、华为手机、红米手机、oppo手机、vivo手机、荣耀手机、一加手机、realme手机如何设置充电提示音
  • zookeeper应用场景之分布式的ID生成器
  • Java--Spring项目生成雪花算法数字(Twitter SnowFlake)
  • 紫光展锐M6780丨画质增强——更炫的视觉体验
  • 控制el-table的列显示隐藏
  • 2024上海国际冶金及材料分析测试仪器设备展览会
  • 商业定位,1元平价商业咨询:豪威尔咨询!平价咨询。
  • 2. Presto应用
  • 工业级安卓PDA超高频读写器手持掌上电脑,RFID电子标签读写器
  • Prompt提示工程上手指南:基础原理及实践(一)
  • Redis如何保证缓存和数据库一致性?
  • 学完C/C++,再学Python是一种什么体验?
  • ssm基于Java的壁纸网站设计与实现论文
  • 零基础也可以探索 PyTorch 中的上采样与下采样技术
  • 代码随想录算法训练营Day23|669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
  • 乱 弹 篇(一)
  • 《JVM由浅入深学习【八】 2024-01-12》JVM由简入深学习提升分(JVM的垃圾回收算法)
  • 在矩阵回溯中进行累加和比较的注意点
  • AI语音机器人的发展
  • SQL语句错误this is incompatible with sql_mode=only_full_group_by解决方法
  • 静态长效代理IP和动态短效代理IP有哪些用途?分别适用场景是什么?