- 博客(10)
- 资源 (1)
- 收藏
- 关注
原创 Spring Security(十)— 过滤器链初始化流程分析
实现了SecurityBuilder 接口,并对 build 做了完善,确保只build 一次。AbstractConfigureSecurityBuilder 中声明了一个枚举类,用来描述构建过程中的不同状态。还提供了两个判断方法,isInitializing 表示是否正在初始化中,isConfigured 方法表示是否完成配置。AbstractConfigureSecurityBuilder 中还声明了 configurers 变量,用来保存所有的配置类。
2022-09-29 16:04:37
588
1
原创 Spring Security(八)— 配置多数据源
当系统进行身份认证的时候,就会遍历ProviderManager 中不同的 DaoAuthenticationProvider ,进而调用到不同的数据源。认证要经过AuthenticationProvider,每一个 AuthenticationProvider 中都配置了一个 UserDetailsService,而不同的UserDetailsService 则可以代表不同的数据源。多数据源是指在同一个系统中,用户数据来自不同的表,在认证时,如果第一张表没有查到用户,那就去第二章表中查找,以此类推。
2022-09-18 23:15:00
452
原创 Spring Security(七)—登录认证流程
AuthenticationManager 对传入的Authentication 对象进行身份认证,此时传入的Authentication 参数只有用户名/密码等简单的属性,如果认证成功,返回的Authentication 的属性会得到完全填充,包括用户所具备的角色信息。在Spring Security中,由于系统可能同时支持多种不同的认证方式,而不同的认证方式对应不同的AuthenticationProvider,所以一个完整的认证流程可能由多个AuthenticationProvider 来提供。
2022-09-17 17:14:12
826
原创 Spring Security(六)—用户自定义
InMemoryUserDetailsManager 间接实现了UserDetailsService 接口并重写了里面的loaduserByUsername 方法,同时它里面维护了一个HashMap变量,Map的key 就是用户名,value 则是用户对象, createUser 就是往这个Map 中存储数据,loaduserByUsername 方法则是从该Map中取数据。其中一共创建了两个表(users、authorities),users 表就是存放用户信息,authorities 存放用户角色。
2022-09-15 16:46:41
1256
原创 Spring Security(二)
在Spring Security的架构设计中,认证(Authentication)和授权(Authorization)是分开的,无论使用什么样的认证都不影响授权,这是两个独立的存在,这种独立带来的好处之一,就是Spring Security可以非常方便的整合一些外部的认证方案。在Spring Security中,用户的认证信息主要由Authentication的实现类来保存,Authentication接口定义如下:当用户使用用户名/密码登录或使用Remember-me登录时,都会对应一个不同的Authe
2022-09-09 20:45:00
204
原创 Spring Security(一)
随着Spring Boot 和微服务的流行,Spring Security越来越受开发者的重视,因为Spring Security在和Spring Boot整合时具有先天优势。Shiro本身是一个老牌的安全管理框架,有着众多的优点,比如轻量、简单、基于集成、可以在JavaSE环境中使用等。不过在微服务时代,Shiro就显得力不从心了,在微服务面前,它无法充分展示自己的优势。通俗点说,认证就是身份证(你是谁?)授权就是访问控制(你可以做什么?)。
2022-09-08 17:23:20
246
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人