Spring web security:@EnableWebSecurity 过时了吗?
Posted
技术标签:
【中文标题】Spring web security:@EnableWebSecurity 过时了吗?【英文标题】:Spring web security: is @EnableWebSecurity obsolete? 【发布时间】:2016-07-20 02:13:33 【问题描述】:在使用 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 注释(如上例所示)。因此,此上下文中的此注释是否已过时?如果是这样,为什么?
【问题讨论】:
【参考方案1】:Spring Boot 的自动配置会自动启用 web 安全性,并在满足某些条件时检索所有 WebSecurityConfigurerAdapter 类型的 bean 以自定义配置(类路径上的spring-boot-starter-security
等)。在 org.springframework.boot.autoconfigure.security.SpringBootWebSecurityConfiguration
类中启用了网络安全的自动配置(Spring Boot 1.2.7,新版本中类名可能已更改)。
【讨论】:
以上是关于Spring web security:@EnableWebSecurity 过时了吗?的主要内容,如果未能解决你的问题,请参考以下文章
Maven Repository 上 4.1.1 中的 spring-security-web 在哪里?
web应用安全框架选型:Spring Security与Apache Shiro
我应该在 web 应用程序的 spring/spring-security 中将用户 ID 密钥存储在哪里?
Spring web security:@EnableWebSecurity 过时了吗?