系列二、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.rhkb.cn/news/236186.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构与算法:堆

数据结构与算法:堆 堆堆的定义堆的实现结构分析初始化向上调整算法向下调整算法堆的插入堆的删除得到堆顶元素判断堆是否为空 堆的应用TopK问题 堆 堆的定义 定义: 堆是一种数据结构,本质上是一个特殊的树结构,它是一个完全二叉…

Qt - QML框架

文章目录 1 . 前言2 . 框架生成3 . 框架解析3.1 qml.pro解析3.2 main.cpp解析3.3 main.qml解析 4 . 总结 【极客技术传送门】 : https://blog.csdn.net/Engineer_LU/article/details/135149485 1 . 前言 什么是QML? QML是一种用户界面规范和编程语言。它允许开发人员…

Invalid bound statement(只有调用IService接口这一层会报错的)

问题描述:controller直接调用实现类可以,但是一旦调用IService这个接口这一层就报错. 找遍了大家都说是xml没对应好,但是我确实都可以一路往下跳,真的对应好了.结果发现是 MapperScan写错了,如下才是对的. MapperScan的作用是不需要在mapper上一直写注解了,只要启动类上写好就放…

python 计数器

这个Python脚本定义了一个名为new_counter()的函数,它读取系统时间并将其与存储在文件中的时间进行比较。然后根据比较结果更新存储在另一个文件中的计数器值。如果系统时间与存储的时间匹配,则计数器值增加1。如果系统时间与存储的时间不匹配&#xff0…

C#实现Excel合并单元格数据导入数据集

目录 功能需求 Excel与DataSet的映射关系 范例运行环境 Excel DCOM 配置 设计实现 组件库引入 ​方法设计 返回值 参数设计 打开数据源并计算Sheets 拆分合并的单元格 创建DataTable 将单元格数据写入DataTable 总结 功能需求 将Excel里的worksheet表格导入到Da…

MySQL连续案例续集

1、查询学过「张三」老师授课的同学的信息 分析:平均 avg:GROUP BY分组 从高到低:ORDER BY 所有学生的所有课程的成绩:行转列 所有学生----外联(所有):RIGHT JOIN右联 SELECTs.*,c.cname,t.tnam…

PPT自动化处理

python-pptx模块 可以创建、修改PPT(.pptx)文件非Python标准模块,需要单独安装 在线安装方式 pip install python-pptx 读取slide幻灯片 .slides 获取shape形状 slide.shapes 判断一个shape中是否存在文字 shape.has_text_frame 获取文字框 shape.text_f…

可以打印试卷的软件有哪些?推荐这几款

可以打印试卷的软件有哪些?随着科技的飞速发展,越来越多的学习工具如雨后春笋般涌现,其中,能够打印试卷的软件尤其受到广大学生和家长的青睐。这些软件不仅方便快捷,而且内容丰富,可以满足不同学科、不同年…

简单明了,汽车级LM317系列LM317D2TR4G线性电压稳压器电源设计-参数应用方案分享

低压差线性稳压器(LDO),是指一种具有恒定电流输出电压的装置,主要由输入变压器、整流器、输出变压器三部分构成,工业原理为将输入的交流电压经过整流、滤波后得到直流输出电压,再经过控制元件和开关器件将稳…

协作共生:数字孪生与智慧城市的共赢之路

引言 随着科技的飞速发展,数字孪生和智慧城市的概念逐渐融入现代城市的规划和建设中。数字孪生技术为智慧城市的建设提供了强大的支持,而智慧城市则为数字孪生的应用提供了广阔的舞台。本文将深入探讨数字孪生与智慧城市之间的相互影响与协作&#xff0…

使用Nginx作为反向代理服务器在Linux中的最佳实践

在Linux环境下,Nginx因其高效性能、稳定性以及丰富的功能集而广泛用于作为反向代理服务器。以下是在Linux中使用Nginx作为反向代理服务器的最佳实践: 1. 安装与配置 首先,确保你的Linux发行版已经安装了Nginx。大多数Linux发行版都提供了Ng…

分布式系统架构设计之分布式缓存技术选型

一、概述 随着互联网业务的快速发展,分布式系统已经成为了解决大规模并发请求、高可用性、可扩展性等问题的重要手段。在分布式系统中,缓存作为提高系统性能的关键技术,能够显著降低数据库负载、减少网络延迟、提高数据访问速度。当面对大量…

【局域网window10系统搭建共享文件夹或与手机共享】

局域网window10系统搭建共享文件夹或与手机共享 1、Window 10之间搭建共享文件夹1.1 ping通两台window 10 电脑1.2 创建共享账号(window 10专业版)1.3 创建共享文件夹以及配置1.4访问共享文件夹 2、手机访问window10 共享文件夹(结合步骤一&a…

Python 网络数据采集(四):Selenium 自动化

Python 网络数据采集(四):Selenium 自动化 前言一、背景知识Selenium 4Selenium WebDriver 二、Selenium WebDriver 的安装与配置2.1 下载 Chrome 浏览器的驱动程序2.2 配置环境变量三、Python 安装 Selenium四、页面元素定位4.1 选择浏览器开…

基于JAVA的数据可视化的智慧河南大屏 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 数据模块 A4.2 数据模块 B4.3 数据模块 C4.4 数据模块 D4.5 数据模块 E 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的数据可视化的智慧河南大屏,包含了GDP、…

MT8766安卓核心板/开发板_MTK联发科4G安卓手机主板方案定制开发

MT8766采用台积电 12 nm FinFET 制程工艺,4*A53架构,Android 9.0操作系统,搭载2.0GHz 的 Arm NEON 引擎。提供了支持最新 OpenOS 及其要求苛刻的应用程序所需的处理能力,专为具有全球蜂窝连接的高移动性和功能强大的平板设备而设计…

如何实现IOS APP被杀掉后依然可以接收到个推消息通知

背景 项目已经集成了个推SDK,但是在离线场景下无法收到推送消息,离线场景主要分2种情况,一种是用户将APP切换到了后台,一种是用户将APP杀掉了。 针对场景一:我们可以将APP支持后台运行,比如项目中使用到了…

【STM32单片机】步进电机控制系统设计

文章目录 一、主要功能二、软件设计三、实验现象联系作者 一、主要功能 本项目使用STM32F103C8T6单片机控制器,使用ULN2003电机模块、IIC OLED模块、按键模块等。 主要功能: 系统运行后,OLED显示电机当前运行档位、方向、状态。 可通过按键…

【Python从入门到进阶】46、58同城Scrapy项目案例介绍

接上篇《45、Scrapy框架核心组件介绍》 上一篇我们学习了Scrapy框架的核心组件的使用。本篇我们进入实战第一篇,以58同城的Scrapy项目案例,结合实际再次巩固一下项目结构以及代码逻辑的用法。 一、案例网站介绍 58同城是一个生活服务类平台&#xff0c…

13个自媒体文库平台(附通道链接)

划到最后“阅读原文” ——进入官网 Hi,我是胡猛夫,每天分享实用运营工具! 更多内容,更多资源,欢迎交流! 公 号 | 微视角文化 》》精彩推荐 >>微视角文化知识库:移动的自媒体运营百科全…