结构总览
spring security所解决的问题就是安全访问控制,而安全访问控制功能就是对所有进入系统的请求进行拦截,校验每个请求是否能够访问它所期望的资源。可以通过Filter或AOP等技术来实现,spring security对web资源的保护是靠Filter实现的。
当初始化spring security时,会创建一个名为SpringSecurityFilterChain的Servlet过滤器,类型为org.springframework.security.web.FilterChainProxy,它实现了javax.servlet.Filter,因此外部的请求会经过此类,下图是spring security过滤器链结构图:

FilterChainProxy是一个代理,真正起作用的是FilterChainProxy中SecurityFilterChain所包含的各个Filter,同时这些Filter作为Bean被Spring管理,它们是spring security的核心,各有各的职责,但它们并不直接处理用户的认证和授权,而是交给AuthenticationManager认证管理器和AccessDecisionManager决策管理器。spring security功能的实现主要是由一系列的过滤器链相互配合完成。
springboot集成spring security的工程demo地址
https://github.com/south7/springboot-security