Spring Security系统设计SpringSecurity

Spring-security-oauth2 与 Spring-

2019-11-15  本文已影响0人  骑着红驴逛青楼

spring security 认证流程:

spring security 权限校验流程:

以上流程图源自:

http://www.spring4all.com/article/439

http://www.spring4all.com/article/458

关键的类和接口介绍:

AbstractAuthenticationProcessingFilter 类:在不同maven包下的展现形式:

spring-boot-starter-security包下:

spring-boot-starter-security

spring-security-oauth2包下:

spring-security-oauth2

可以看出多了一个OAuth2ClientAuthenticationProcessingFilter和ClientCredentialsTokenEndpointFilter;

当使用Oauth2认证时,主要走的两个Filter;

AuthenticationManager 接口:认证时主要是PrividerManager 实现类去做认证;

PrividerManager 实现类中主要的方法和属性介绍:

认证器集合:providers

authenticate 方法:

1. 遍历认证器.

2.判断认证器是否支持token的认证

3.如果支持,进行具体的认证逻辑

AuthenticationProvider 接口:

AbstractUserDetailsAuthenticationProvider 抽象类:

authenticate 方法:

子类实现retrieveUser 方法,通过不同的方式获取UserDetails;

DaoAuthenticationProvider 实现类(去实现retrieveUser ):

retrieveUser方法:

DaoAuthenticationProvider  方法

通过UserDetailsService 对象获取UserDetails对象;

UserDetailsService  属性:

DaoAuthenticationProvider  属性

UserDetailsService 接口:

spring-boot-starter-security包下:

spring-boot-starter-security

spring-security-oauth2包下:

spring-security-oauth2

可以看出在spring-security-oauth2包下多一个ClientDetailsUserDetailsService类,这个也就是spring security实现Oauth2的主要认证类;

上一篇下一篇

猜你喜欢

热点阅读