Spring Security 的web基础是Filters,在Spring Security中,认证、授权等功能都是基于过滤器来完成的。
这句话展示了Spring Security的设计思想:即通过一层层的Filters来对web请求做处理
一个web请求会经过一条过滤器链,在经过过滤器链的过程中会完成认证与授权,如果中间发现这条请求未认证或者未授权,会根据被保护API的权限去抛出异常,然后由异常处理器去处理这些异常。
spring Filters
Spring Security提供的功能,都是通过这些过滤器来实现的,这些过滤器按照既定的优先级排列,最终形成一个过滤器链。开发者也可以自定义过滤器,并通过@Order注解去调整自定义过滤器在过滤器链中的位置。
需要注意的是,默认过滤器并不是直接放在Web项目的原生过滤器链中,而是通过一个FilterChainProxy来统一管理。Spring Security中的过滤器链通过FilterChainProxy嵌入到Web项目的原生过滤器链中,
过滤器示例
- formLogin对应着你form表单认证方式,即UsernamePasswordAuthenticationFilter。
- httpBasic对应着Basic认证方式,即BasicAuthenticationFilter。
Filter Chain
内建过滤器
UsernamePasswordAuthenticationFilter
�
日志
logging:
level:
org.springframework.security: DEBUG