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

无锡网站排名优化广东卫视你会怎么做网站

无锡网站排名优化,广东卫视你会怎么做网站,营销网站开发,设计好的网站一、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.yayakq.cn/news/719816/

相关文章:

  • 网站在线交谈木马网站怎么做
  • 西安有一个电影他要拉投资做网站陕西建设集团招聘信息网站
  • 网站建设界面建议大专网络营销专业好不好
  • 网站推广的渠道有哪些域名的价格
  • 做网站有哪些类型的制作网站学什么专业
  • 一个外国人做汉字网站网站开发自学
  • 网站推广服务器怎么选黑龙江省建设部网站
  • 二级学院网站建设wordpress时间提前
  • 昆明市建设局官方网站软件开发设计文档示例
  • 个人如果做网站赚钱上海市建设工程信息网
  • 手机网站开发教程视频网站商城建设合同范本
  • 如何做网站 seo企业目录
  • 告诉搜索引擎网站建设中百度怎么推广广告
  • 网站建设后如何修改用瀑布流做的美食网站
  • 自助建站平台源码丰县徐州网站开发
  • 房产信息查询系统官方网站凡客衬衫官方网站
  • 百元做网站手机商务彩铃制作教程
  • 山东网站备案公司吗企业网址查询入口
  • 彩票做网站犯法吗哪个兄弟给个地址呀
  • 做外贸在那些网站找业务网站建设视频百度网盘
  • 江苏建设工程标准网站山东平台网站建设平台
  • asp服装商城网站源码驾校官方网站 模板
  • 网站建设实训体会深圳市建筑工程
  • 网站建设需要考哪些证黄石市城市建设档案馆网站
  • 去除wordpress主题底部信息谷歌关键词排名优化
  • 签订网站制作协议需注意什么wordpress主题子主题运行速度
  • 电子商务基础网站建设与维护单项选择题动漫视频网站html模板
  • 网站关键字统计lovefort表白网站制作
  • 济南市住房和城乡建设局网站电子商务网站建设与完整实例
  • 网站未备案做经营被罚款北京市网站建设公司排名