SpringSecurity的基本原理(一)

来源:互联网 发布:抑制性欲的药 知乎 编辑:程序博客网 时间:2024/06/05 19:11

SpringSecurity基本原理
SpringSecurity 最核心的东西 其实是一个过滤器链,一组Filter
所有发送的请求都会经过Filter链,同样响应也会经过Filter链,在系统启动的时候springboot会自动的把他们配置进去(Springboot只是一种框架,只是方便了使用,其核心还是一样的)

这里写图片描述

UsernamePasswordAuthticationFilter 表单登陆
BasicAuthenticationFilter Http登陆
–》
FilterSecurityInterceptor这个过滤器是整个SpringSecurity过滤器链的最后一环
然后进入到ExceptionTranslatonFilter中根据抛出的异常做出决定

断点跟进
1.FilterSecurityInterceptor

    // L124    InterceptorStatusToken token = super.beforeInvocation(fi);

2.ExceptionTranslationFilter

    // L66   Throwable[] causeChain = this.throwableAnalyzer.determineCauseChain(var10);

3.UsernamePasswordAuthenticationFilter

    // L75    String username = obtainUsername(request);

只会处理/login post的请求

   // L61    public UsernamePasswordAuthenticationFilter() {        super(new AntPathRequestMatcher("/login", "POST"));     }

4.Controller层执行方法的断点

/** * security配置 * Created by ZhuPengWei on 2017/11/27. */@Configurationpublic class BrowserSecurityConfig extends WebSecurityConfigurerAdapter {    @Override    protected void configure(HttpSecurity http) throws Exception {        http.formLogin() //表单登陆                .and()                .authorizeRequests() // 请求授权                .anyRequest()  // 任何请求                .authenticated();  // 都需要认证    }}
原创粉丝点击