目录
2.1 WebSecurityConfig中config方法的执行顺序
2.5.1 securityContextHolder的写入
2.5.2 securityContextHolder的获取
一 springsecurity 认证授权
1.1 总流程
1.阶段1:启动阶段:应用启动时的配置加载顺序;先执行WebSecurityConfig类;Configure(websecurity web) 最先执行,忽略某些请求
Configure(HttpSecurity http) 其次执行,如何保护请求。
Configure(AuthenticationManagerBuilder auth) 最后执行,用户数据从哪里来。Spring security中的websecurityconfig(通常是通过@Enablewebsecurity)注解的配置类)主要是在应用启动阶段执行的。它的核心作用是配置和初始化整个 Spring Security 的过滤器链,而不是在每次请求时都执行
2.阶段2:请求执行阶段:请求处理时执行顺序:先执行usernameandpaaswordauthenticationfilter进行表单认证;
然后通过filtersecurityinterceptor进行授权;期间抛出异常,则执行ExceptionTranslationFilter。ExceptionTranslationFilter 是一个非常重要的过滤器,它负责处理认证和授权过程中抛出的所有异常。
3.configure方法:在应用启动时执行,用于配置和构建安全过滤器链。
认证/授权过滤器:在每个请求到达时执行,是构建好的过滤器链中的一个个执行节点。
启动时configure(...) 方法执行 -> 构建过滤器链 ->运行时请求到达 -> 按链中顺序 先经过认证过滤器 -> 最后经过授权过滤器。

1.2 关键代码详解
1.在websecurityconfig类中加载各种认证,授权类。

2.其中authenticationManager()这个方法在父WebSecurityConfigurerAdapter中

3.其中这里注入的userDetailsService的实现类是UserDetailsServiceImpl

4.认证时候,自动加载通过用户名查询数据库信息。

1.3 资料
29-33 详细说明配置流程执行
二 详解流程
2.1 WebSecurityConfig中config方法的执行顺序
2.2.1 完整的执行流程
WebSecurityConfigurerAdapter中有多个configure方法,它们的执行顺序和目的完全不同。加载和配置的总体顺序是:
Step1:configure(WebSecurity web)
执行时机:最早。用于配置全局的、忽略的安全规则。
作用:配置那些需要被 Spring Security完全忽略的请求(通常用于静态资源)。这些请求不会经过任何安全过滤器链。如下:
| @Override public void configure(WebSecurity web) throws Exception { web.ignoring().antMatchers("/css/**", "/js/**", "/images/**"); } |

最低0.47元/天 解锁文章
1504

被折叠的 条评论
为什么被折叠?



