一个初始化类,继承AbstractSecurityWebApplicationInitializer
:
public class SecurityInitializer extends AbstractSecurityWebApplicationInitializer {
//不用重写任何内容
//这里实际上会自动注册一个Filter,SpringSecurity底层就是依靠N个过滤器实现的,我们之后再探讨
}
再创建一个配置类用于配置SpringSecurity:
@Configuration
@EnableWebSecurity //开启WebSecurity相关功能
public class SecurityConfiguration {
}
接着在MVC配置类也就是继承AbstractAnnotationConfigDispatcherServletInitializer
的类中添加此配置文件即可:
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[]{MainConfiguration.class, SecurityConfiguration.class};
}
这样,SpringSecurity的配置就完成了,我们再次运行项目,会发现无法进入的我们的页面中,无论我们访问哪个页面,都会进入到SpringSecurity为我们提供的一个默认登录页面。
这里如果重启时出现
Failed to register servlet with name 'dispatcher'. Check if there is another servlet registered under the same name
说明target目录中跟之前的Dispatcher重名,用Maven的Clean功能清理一下之前的编译内容即可,或者直接手动删掉文件夹。