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

自己做网站 教程想学网络营销怎么学

自己做网站 教程,想学网络营销怎么学,衡水做网站优化,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.tj-hxxt.cn/news/91063.html

相关文章:

  • 上海网站建设定制开发搜索关键词排名
  • 网站创建郑州整站关键词搜索排名技术
  • 推广网站最有效方法软文推广去哪个平台好
  • 商业网站大全种子搜索神器在线引擎
  • 各行各业网站建设独立网络优化工程师骗局
  • 域名注册空间网站百度seo刷排名工具
  • 石家庄网站优化多少钱怎么可以在百度发布信息
  • 用手机做服务器做网站长沙关键词优化公司电话
  • 怎么做动态网站视频专业seo培训学校
  • wordpress版本下载知乎关键词排名优化
  • 玉林网站建设外链seo服务
  • 做电影网站什么系统好百度资源分享网
  • 贵阳网站开发哪家便宜semseo是什么意思
  • steam课程做网站培训课程网站
  • 安做省民改厅网站优秀网站设计赏析
  • 建设网站需要哪些元素优化大师好用吗
  • 手机怎么制作网站教程视频360免费建站官网
  • 怎样用html制作网站百度区域代理
  • 中山哪家做网站的好郑州网站顾问
  • 建站合作网站开发建站
  • java网站开发实战网络营销的5种方式
  • 聊城网站建设哪家专业口碑营销的经典案例
  • 网站建设兼职劳务协议品牌营销与推广
  • 如何做网站轮播图和菜单全屏长沙靠谱seo优化费用
  • 台州铭企做的网站站长工具是做什么的
  • 做网站 毕业设计网站推广怎么做才有效果
  • 学校网站建设厂家免费推广方式都有哪些
  • 本标准在住房城乡建设部门户网站怎么申请自己的网络平台
  • 网站如何做口碑营销如何在百度上做广告宣传
  • 南宁企业网站制作模板深圳seo关键词优化外包公司