在使用 spring-boot-starter-security:1.3.3:RELEASE 使用简单的 Web 应用程序测试 Spring Boot (1.3.3) 时,我观察到以下行为:
为了覆盖默认的 Spring web 安全配置,我提供了一个自定义的 Java 配置类,如下所示:
@Configuration
// @EnableWebSecurity apparently obsolete ?
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
// http security checking left out for brevity ...
}
@Override
protected void configure(
AuthenticationManagerBuilder auth) throws Exception {
// user authentication left out for brevity ...
}
}
启动后,应用程序重定向到登录页面并正确检查用户名/密码是否提供了@EnableWebSecurity 注释(如上例所示)。因此,此上下文中的此注释是否已过时?如果是这样,为什么?
请您参考如下方法:
Spring Boot 的自动配置会自动启用 web 安全性,并在满足某些条件时检索所有 WebSecurityConfigurerAdapter 类型的 bean 以自定义配置(类路径上的 spring-boot-starter-security
等。 )。在 org.springframework.boot.autoconfigure.security.SpringBootWebSecurityConfiguration
类中启用了 web 安全的自动配置(Spring Boot 1.2.7,新版本中类名可能已更改)。