首先上整体的项目文件路径:
Spring Security是为基于Spring的应用程序提供声明式安全保护的安全性框架。Spring Security提供了完整的安全性解决方案,它能够在Web请求级别和方法调用级别处理身份认证和授权。因为基于Spring框架,所以Spring Security充分利用了依赖注入(dependency injection,DI)和面向切面的技术。Spring Security借助一系列Servlet Filter来提供各种安全性功能,但是我们只需要配置一个Filter就可以了,DelegatingFilterProxy是一个特殊的Servlet Filter,它本身所做的工作并不多。只是将工作委托给一个javax.servlet.Filter实现类,这个实现类作为一个<bean>注册在Spring应用的上下文中。
要使用springSecurity要添加相关的jar包
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>4.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>4.2.2.RELEASE</version>
</dependency>
AbstractSecurityWebApplicationInitializer实现了WebApplicationInitializer,因此Spring会发现它,并用它在Web容器中注册DelegatingFilterProxy。尽管我们可以重载它的appendFilters()或insertFilters()方法来注册自己选择的Filter,但是要注册DelegatingFilterProxy的话,我们并不需要重载任何方法。
package spittr.config;
import org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer;
/**
* AbstractSecurityWebApplicationInitializer实现了WebApplicationInitializer
* 因此Spring会发现它,并用它在Web容器中注册DelegatingFilterProxy
*/
public class SecurityWebInitializer extends AbstractSecurityWebApplicationInitializer {
}
DelegatingFilterProxy会拦截发往应用中的请求,并将请求委托给ID为springSecurityFilterChain bean。springSecurityFilterChain本身是另一个特殊的Filter,它也被称
为FilterChainProxy。它可以链接任意一个或多个其他的Filter。Spring Security依赖一系列Servlet Filter来提供不同的安全特性。但是,