MVC Security安全配置介绍
使用Spring Boot与Spring MVC进行Web开发时,如果项目引入spring-boot-starter-security依赖启动器,MVC Security安全管理功能就会自动生效,其默认的安全配置是在SecurityAutoConfiguration和UserDetailsServiceAutoConfiguration中实现的。其中,SecurityAutoConfiguration会导入并自动化配置SpringBootWebSecurityConfiguration用于启动Web安全管理,UserDetailsServiceAutoConfiguration则用于配置用户身份信息。
要完全关闭Security提供的Web应用默认安全配置,可以自定义WebSecurityConfigurerAdapter类型的Bean组件,但是不会关闭UserDetailsService用户信息自动配置类。如果要关闭UserDetailsService默认用户信息配置,可以自定义UserDetailsService、AuthenticationProvider或AuthenticationManager类型的Bean组件。另外,可以通过自定义WebSecurityConfigurerAdapter类型的Bean组件来覆盖默认访问规则,Spring Boot提供了非常多方便的方法,可用于覆盖请求映射和静态资源的访问规则。
从上面的介绍可以发现,MVC Security安全配置与WebSecurityConfigurerAdapter类的关系非常密切,这里通过Spring Security API查看其主要方法,具体如表1所示。
》表1 WebSecurityConfigurerAdapter类的主要方法及说明
方法 | 描述 |
---|---|
configure(AuthenticationManagerBuilder auth) | 定制用户认证管理器来实现用户认证 |
configure(HttpSecurity http) | 定制基于HTTP请求的用户访问控制 |
从表1可以看到,WebSecurityConfigurerAdapter类中包含有两个非常重要的配置方法,分别是configure(AuthenticationManagerBuilder auth)和configure(HttpSecurity http)。configure(AuthenticationManagerBuilder auth)方法用于构建认证管理器,configure(HttpSecurity http)方法用于对基于HTTP的请求进行请求访问控制。