SpringSecurity全家桶 (二) ——实现原理

1. SpringSecurity的强大之处

当我们并未设置登录页面时,我们只需要导入SpringSecurity的依赖就可以令我们的界面进入保护状态,由下面例子可以凸显出:

随便写个接口

    @RequestMapping("/hello")
    public String hello(){
        return "Hello,SpringSecurity";
    }

这是这时的页面返回的数据

SpringSecurity全家桶 (二) ——实现原理_第1张图片

导入依赖

        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-securityartifactId>
        dependency>

再运行
访问页面时,就会出现SpringSecurity自带的登录保护页面
SpringSecurity全家桶 (二) ——实现原理_第2张图片

密码会在控制台出现:

SpringSecurity全家桶 (二) ——实现原理_第3张图片
此时,登录之后就可以访问到我们的页面

2. 实现原理

在Spring Security中,认证、授权等功能都是基于过滤器实现的

如下图:SpringSecurity全家桶 (二) ——实现原理_第4张图片

简述上方图片中信息:
需要注意的是,默认过滤器并不是直接放在 Web 项目的原生过滤器链中,而是通过一个
FilterChainProxy 来统一管理。 Spring Security 中的过滤器链通过 FilterChainProxy 嵌入到 Web 项目的原生过滤器链中。 FilterChainProxy 作为一个顶层的管理者,将统一管理 Security FilterFilterChainProxy 本身是通过 Spring 框架提供的DelegatingFilterProxy 整合到原生的过滤器链中

你可能感兴趣的:(SpringSecurity,SpringSecurity)