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

b2b 网站系统外链

b2b 网站系统,外链,贵州建设厅考试网站二建成绩,wordpress博客站点地图一、Spring Boot集成Spring Security专栏 一、Spring Boot集成Spring Security之自动装配 二、Spring Boot集成Spring Security之实现原理 三、Spring Boot集成Spring Security之过滤器链详解 四、Spring Boot集成Spring Security之认证流程 五、Spring Boot集成Spring Se…

一、Spring Boot集成Spring Security专栏

一、Spring Boot集成Spring Security之自动装配

二、Spring Boot集成Spring Security之实现原理

三、Spring Boot集成Spring Security之过滤器链详解

四、Spring Boot集成Spring Security之认证流程

五、Spring Boot集成Spring Security之认证流程2

二、概要说明

  1. 上文已详细介绍了四、Spring Boot集成Spring Security之认证流程
  2. 本文则着重介绍用户名密码认证过滤器UsernamePasswordAuthenticationFilter的实现原理过程
  3. 认证管理器(authenticationManager)
  4. 认证提供者(AuthenticationProvider)
  5. 自定义配置用户名密码实现(UserDetailsService)

三、UsernamePasswordAuthenticationFilter

1、结构及作用

  1. 继承AbstractAuthenticationProcessingFilter
    1. 初始化请求地址
    2. 初始化authenticationManager
    3. 初始化successHandler
    4. 初始化failureHandler
    5. 实现过滤器入口doFilter方法
    6. doFilter方法调用抽象方法attemptAuthentication,attemptAuthentication供子类实现完成用户名密码验证业务
    7. 认证成功时更新安全上下文,并调用successHandler.onAuthenticationSuccess
    8. 认证失败时删除安全上下文,并调用failureHandler.onAuthenticationFailure
  2. 实现attemptAuthentication方法
    1. 从请求中获取用户名密码
    2. 生成未认证的Authentication
    3. 调用authenticationManager的authenticate方法完成用户名密码验证

image-20241014165945990

四、认证管理器(AuthenticationManager)

1、作用

  1. 完成Authentication的认证

2、ProviderManager(默认实现)

  1. ProviderManager实现AuthenticationManager接口
  2. AuthenticationManager的作用的是完成Authentication的认证
  3. 但是ProviderManager并未直接完成Authentication的认证
  4. 而是提供一个AuthenticationProvider集合
  5. 遍历AuthenticationProvider集合来完成Authentication的认证
  6. 当需要多种认证方式时,可以注册自定义的AuthenticationProvider,后续介绍注册方式

image-20241014170423837

五、AuthenticationProvider

1、作用

  • 调用接口获取用户信息UserDetails
  • 验证用户及密码是否可用

2、DaoAuthenticationProvider(默认实现)

  1. DaoAuthenticationProvider继承AbstractUserDetailsAuthenticationProvider实现AuthenticationProvider接口
  2. 调用retrieveUser方法获取用户信息UserDetails
    1. 调用userDetailsService.loadUserByUsername获取用户信息UserDetails
  3. 验证用户是否存在并可用,不存在或者不可用时抛异常(过期、锁定、启用)
  4. 验证密码是否可用,不可用时抛异常(为空、过期)
  5. 使用密码加密器校验密码(界面输入的密码和数据库已加密的密码)
  6. 密码不一致时抛异常

image-20241014171138597

六、UserDetailsService

1、作用

  • 通过用户名username获取用户信息UserDetails
  • 返回用户信息UserDetails

2、InMemoryUserDetailsManager(默认实现)

  1. 项目启动时会默认生成一个用户名密码,存在内存中
  2. 通过用户名获取该用户并返回

3、推荐实现:自定义UserDetailsService

  1. 通过用户名从数据库中获取到用户
  2. 数据库用户转为UserDetails,数据库中未设置的属性像是否启用、账号未过期、密码未过期、账号未锁定直接设置为true即可
package com.yu.demo.service.impl;import org.springframework.security.core.authority.AuthorityUtils;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;@Service
public class UserDetailsServiceImpl implements UserDetailsService {//@Autowired//private UserService userService;@Overridepublic UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {//TODO 通过username从数据库中获取用户,将用户转UserDetails//User user = userService.getByUsername(username);//return new User(username, user.getPassword(), user.getEnable(), user.getAccountNonExpired(), user.getCredentialsNonExpired(), user.getAccountNonLocked(), user.getAuthorities());//{noop}不使用密码加密器,密码123的都可以验证成功return new User(username, "{noop}123", true, true, true, true, AuthorityUtils.NO_AUTHORITIES);}
}

image-20241014175236518

http://www.mnyf.cn/news/50926.html

相关文章:

  • 动态网站制作新手教程块链友情链接平台
  • 网站图片展示代码培训网站搭建
  • 中山建设局网站首页网上推
  • 哪个网站做房子团购郑州网站优化
  • wordpress自动alt优化师培训机构
  • 网站建设费用科学新概念seo外链
  • 新闻资讯到底是哪个公司的淄博网站制作优化
  • 中职网站建设课件山东济南seo整站优化费用
  • 官方网站 优帮云seowhy
  • wordpress隐藏版权深圳百度快照优化
  • 东莞专业做网站杭州seo公司哪家好
  • 河北京电电力建设有限公司网站目前最牛的二级分销模式
  • 外贸服装网站模板申泽seo
  • 摄影网站建设策划完整方案平台推广员是做什么的
  • 注册免费微网站网站建设报价单模板
  • 个人网站备案备注口碑营销的形式
  • sublime做网站1688如何搜索关键词排名
  • 成都网站制作创新互联做网页用什么软件好
  • 做ppt的网站软文的概念
  • 网站构建的滚动新闻怎么做关键词英文
  • wordpress留言板win7优化教程
  • 1核1g服务器做网站最全磁力搜索引擎
  • 程序员用的编程软件晨阳seo
  • 潜江做网站的公司有哪些抖音排名优化
  • 重庆南川网站制作公司电话自己建网站需要钱吗
  • 做网站 php和java优化大师的使用方法
  • wordpress自动文章内容seo学习网站
  • 政府网站 建设思路网络销售平台有哪些软件
  • 西安网站制作公司官网百度地图推广怎么收费标准
  • 三好街网站建设与维护站长工具seo综合查询columbu cat