Spring Security必须配置在一个实现了WebSecurityConfigurer的bean中,或扩展WebSecurityConfigurerAdapter。
任何实现了WebSecurityConfigurer的bean都能配置SpringSecurity,但最简单的还是扩展WebSecurityConfigurerAdapter类。
@Configuration
@EnableWebMvcSecurity //启用Web安全性
/**
* @EnableWebSecurity可以启用任意web应用的安全性功能,但当使用springMVC时,应考虑用@EnableWebMvcSecurity替代。
* @EnableWebMvcSecurity注解还配置了一个SpringMVC参数解析器,使控制器方法能够通过带有@AuthenticationPrincipal注解的参数获得认证用户的principal(或username)
* @EnableWebMvcSecurity还配置了一个bean,在使用Spring表单绑定标签库来定义表单时,这个bean会自动添加一个隐藏的跨站请求伪造token输入域。
*/
public class SecurityConfig extends WebSecurityConfigurerAdapter{
.......
}
通过重载三个configure()方法来配置Web安全性,指定Web安全的细节:
//默认的configure(HttpSecurity)方法
@Override
protected void configure(HttpSecurity http) throws Exception{
http
.authorizeRequests().anyRequest().authenticated()//要求所有的HTTP请求都进行认证
.and()
.formLogin()//配置支持基于表单的登陆
.and()
.httpBasic();//httpBasic方式的认证
}
// 重载用户存储支撑认证过程
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {}