SpringSecurity的基本原理(一)

本文深入探讨了SpringSecurity的工作原理,介绍了其核心组件过滤器链的运作方式,并详细分析了关键过滤器如UsernamePasswordAuthenticationFilter、BasicAuthenticationFilter及ExceptionTranslationFilter的作用流程。

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.
 */
@Configuration
public class BrowserSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {

        http.formLogin() //表单登陆
                .and()
                .authorizeRequests() // 请求授权
                .anyRequest()  // 任何请求
                .authenticated();  // 都需要认证
    }

}
Spring Security款基于 Spring 框架的安全框架,其基本原理可概括如下: 1. 认证(Authentication):Spring Security 提供了多种认证方式,包括表单认证、HTTP 基本认证、OpenID 认证、LDAP 认证等,可以根据具体需求进行选择。认证的目的是验证用户身份以及权限信息。 2. 授权(Authorization):Spring Security 支持基于角色的访问控制(Role-Based Access Control, RBAC)和基于资源的访问控制(Resource-Based Access Control, RBAC),通过授权可以限制用户访问资源的权限。 3. 过滤器链(Filter Chain):Spring Security 的核心就是系列过滤器,这些过滤器组成了个过滤器链,每个过滤器负责不同的安全功能。比如,UsernamePasswordAuthenticationFilter 是用来处理用户名密码认证请求的过滤器,AccessDecisionManager 是用来进行授权决策的过滤器等。 4. 安全上下文(Security Context):Spring Security 通过 SecurityContextHolder 来管理安全上下文,其中包括了认证信息、授权信息等。 5. 集成其他框架(Integration with Other Frameworks):Spring Security 可以和其他框架进行集成,比如 Spring MVC、Spring Boot、Spring Cloud 等,以实现更完善的安全保护。 综上所述,Spring Security基本原理是基于认证、授权、过滤器链、安全上下文以及集成其他框架等实现的,可以帮助开发者快速实现安全保护功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值