SpringSecurity是能够提供身份认证(Authentication)和访问控制(Authorization)的Java应用框架,同时还支持多种安全机制以及OAuth2、SMAL2等协议,是一款功能强大的框架。
SpringSecurity是基于Servlet Filter实现,在应用中注册一个Filter,其设计思想为委托代理,是用于处理SpringSecurity逻辑功能的入口。SpringSecurity内部可以注册多个过滤链,过滤链中为实现各种逻辑的过滤器。SpringSecurity通过访问URL路径来决定调用哪个过滤链。
SpringSecurity的多种功能的Filter,组合成FilterChain,插入进DelegatingFilterProxy中。使用者则可以通过xml配置或者注解进行使用,也可以进行客户化定制。