Spring Security登录验证过程详解_springsecurity判断是否登录-程序员宅基地

技术标签: spring  Java  java问题解决类  电脑主机  

前端:
在前端页面输入username和password,通过地址login访问验证。
后台:

  1. 调用 AbstractAuthenticationProcessingFilter.doFilter()方法
    原因:SpringSecurity对Spring Web项目提供支持,AbstractAuthenticationProcessingFilte 作为验证请求入口的
    2.在AbstractAuthenticationProcessingFilter.doFilter()调用UsernamePasswordAuthenticationFilter中的attemptAuthentication()方法
    2.1 该方法获取请求中带的参数username和password
    2.2 将表单请求的信息(用户、密码等信息)赋值给 UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(username, password);
    2.3 调用getAuthenticationManager().authenticate(authRequest)对用户密码的正确性进行验证。
    3.调用ProviderManager中的authenticate()方法
    3.1 根据用户名,查看缓存中是否存在用户实体对象
    如果存在,只对密码进行验证,
    如果不存在,先验证用户信息,执行DaoAuthenticationProvider中的retrieveUser方法,调用loadUserByUsername()方法,注意这里的loadUserByUsername()方法需要自定义类实现UserDetailsService接口并重写loadUserByUsername()方法,获取一个UserDetails对象。 然后一些属性验证之后,对用户密码进行验证。
    4.调用passwordEncoder.isPasswordValid()方法验证密码,
    该方法中调用matches()方法判断输入密码和数据库密码是否相同。
    验证通过返回true,成功登录系统。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41375630/article/details/121381079

智能推荐

manjaro 配置zsh以及powerLine主题安装_manjaro 主题安装-程序员宅基地

文章浏览阅读2.2w次,点赞8次,收藏25次。manjaro 配置 vim zsh安装 zsh安装 oh-my-zsh安装 powerline及字体使用zsh替换bash(重新打开终端生效)powerline 配置bashrc 配置(注意python版本)vim .zshrc(注意python版本)vim支持powerline-vim配置配置ZSH更换powerline主题安装 zshsudo pacman -S zsh安装 oh-..._manjaro 主题安装

现代电子计算机英文,现代计算机辅助技术,modern computer aid technology,音标,读音,翻译,英文例句,英语词典...-程序员宅基地

文章浏览阅读123次。补充资料:铸造工艺计算机辅助设计技术2.1 铸造工艺CAD在铸造工艺设计过程中,有许多繁琐的数学计算和大量的查表选择等工作,仅凭工艺设计人员的个人经验和手工操作,不但要花费很多时间,而且设计结果往往因人而异,很难保证铸件质量,60年代以来,特别是进入80年代后,随着电子计算机技术的迅猛发展,计算机辅助设计技术在工业中得到愈来愈广泛的应用,也为铸造工艺设计的科学化、精确化提供了良好的工具,成为铸造技..._现代电子计算机的英文

镜头指标及传感器指标_镜头和传感器-程序员宅基地

文章浏览阅读448次。镜头指标:杂光、解析度、畸变、眩光、漏光1.什么是杂光:杂光是一种非正常传输的光学现象,如果有杂光现象,十字架会被拍成和一个圆圈,这是由于镜头内部及表面缺陷造成的反射。2.什么是解析度:解析度是判断图像细节的多少(测试解析度的工具ISO1223)1.镜头2.模组装配误差3.模组调焦不准4.软件 传感器sharpness gamma的设置3.畸变:枕型畸变和桶型畸变4.眩光:视野中由于不适宜亮度分布,在空间存在极端的亮度对比,各镜片偶次反射,特别是二次反射是造成眩光的主要原因之一。5.漏光传_镜头和传感器

iTOP6818——针对ubuntu系统的双屏异显kernel配置_ubuntu 设置界面显示fb1-程序员宅基地

文章浏览阅读572次。引言iTOP6818是8核嵌入式开发平台,在ubuntu系统下可以设置触摸屏显示或HDMI显示,但官方并没有做对应的双屏异显,即触摸屏和HDMI显示不同的画面。基于个人需求,本人完成了该功能配置,现将配置方法说明如下。资料下载配置思路在内核中重新创建一个fb节点来挂载HDMI设备,主设备触摸屏为fb0,次设备HDMI为fb1,通过修改内核驱动代码可以实现双屏异显。配置方法..._ubuntu 设置界面显示fb1

【鸿蒙HarmonyOS开发笔记】ArkUI常用组件介绍汇总(更新中)-程序员宅基地

文章浏览阅读601次,点赞15次,收藏6次。此文总结开发中用到的一些常用组件,便于查阅,此文持续更新,闲的没事就更。

maven的生命周期,插件介绍(二)-程序员宅基地

文章浏览阅读55次。1.maven生命周期一个完整的项目构建过程通常包括清理、编译、测试、打包、集成测试、验证、部署等步骤,Maven从中抽取了一套完善的、易扩展的生命周期。Maven的生命周期是抽象的,其中的具体任务都交由插件来完成。Maven为大多数构建任务编写并绑定了默认的插件,如针对编译的插件:mave...

随便推点

点击收藏代码 php,php 实现收藏功能的示例代码-程序员宅基地

文章浏览阅读436次。整理文档,搜刮出一个php 实现收藏功能的示例代码,稍微整理精简一下做下分享。HTML:取消收藏收藏Js://点击收藏,实现已收藏$('.x').on('click',function(){var Oa=$(this);var id=Oa.attr('id');//获取图片id属性var uid = Oa.attr('uid');//获取用户idvar status = Oa.attr('stat..._收藏按钮代码

java docker java api_Java API 操作Docker示例-程序员宅基地

文章浏览阅读661次。大家好,我是邵奈一,一个不务正业的程序猿、正儿八经的斜杠青年。1、世人称我为:被代码耽误的诗人、没天赋的书法家、五音不全的歌手、专业跑龙套演员、不合格的运动员…2、这几年,我整理了很多IT技术相关的教程给大家,爱生活、爱分享。3、如果您觉得文章有用,请收藏,转发,评论,并关注我,谢谢!博客导航跳转(请收藏):邵奈一的技术博客导航| 公众号 | 微信 | 微博 | CSDN | 简书 |0x00 教..._java docker api demo

K线入门之初识K线-程序员宅基地

文章浏览阅读2w次。K线图

¥3EG踩坑记录¥Vitis HLS xfopencv库的安装解决minGW32-make 编译opencv时 error_vitishls导入xfopencv库导入不进去怎么办-程序员宅基地

文章浏览阅读4.3k次。解决minGW32-make 编译opencv时 error1、'mutex' in namespace 'std' does not name a type。minGW64下载解决办法:下载如图所示版本2、gcc: error: long: No such file or directory解决办法:在cmake里面找到OPENCV_ENABLE_ALLOCATOR_STATS,然后把后面的勾选去掉,重新生成后继续编译。3、error: 'std::_hypot' has no_vitishls导入xfopencv库导入不进去怎么办

linux 文件夹 attr,Linux 虚拟文件系统sysfs之属性文件attribute 整理(一)-程序员宅基地

文章浏览阅读1.1k次。sysfs接口函数到建立_DEVICE_ATTR架构图:最近在弄Sensor驱动,看过一个某厂家的成品驱动,里面实现的全都是sysfs接口,hal层利用sysfs生成的接口,对Sensor进行操作。说道sysfs接口,就不得不提到函数宏DEVICE_ATTR原型是#define DEVICE_ATTR(_name, _mode, _show, _store) \struct device_att...___attr_null

AIO 详解-程序员宅基地

文章浏览阅读1.4k次。AIO(Asynchronous Input and Output)异步IO则采用“订阅-通知”模式: 即应用程序向操作系统注册IO监听,然后继续做自己的事情。 当操作系统发生IO事件,并且准备好数据后,在主动通知应用程序,触发相应的函数NIO在网络操作中,提供了非阻塞的方法,但是NIO的IO行为还是同步的。NIO的业务线程是在IO操作准备好时,得到通知,接着就..._aio

推荐文章

热门文章

相关标签