1. SpringSecurity的强大之处
当我们并未设置登录页面时,我们只需要导入SpringSecurity的依赖就可以令我们的界面进入保护状态,由下面例子可以凸显出:
随便写个接口
@RequestMapping("/hello")
public String hello(){
return "Hello,SpringSecurity";
}
这是这时的页面返回的数据
导入依赖
<!--SpringSecurity-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
再运行
访问页面时,就会出现SpringSecurity自带的登录保护页面
密码会在控制台出现:
此时,登录之后就可以访问到我们的页面
2. 实现原理
在Spring Security中,认证、授权
等功能都是基于过滤器
实现的
如下图:
简述上方图片中信息:
需要注意的是,默认过滤器
并不是直接放在 Web 项目的原生过滤器链中,而是通过一个
FilterChainProxy
来统一管理。 Spring Security 中的过滤器链通过FilterChainProxy
嵌入到 Web 项目的原生过滤器链中。FilterChainProxy
作为一个顶层的管理者
,将统一管理 Security Filter
。FilterChainProxy
本身是通过 Spring 框架提供的DelegatingFilterProxy
整合到原生的过滤器链中