@EnableWebSecurity在spring有什么用处
按照春季文档
将此批注添加到
@Configuration
类,以便在任何WebSecurityConfigurer
定义Spring Security配置,或者更有可能通过扩展WebSecurityConfigurerAdapter
基类并覆盖单个方法:
或者正如@EnableWebSecurity
描述的那样,用于在我们的项目中启用SpringSecurity。
但我的问题是,即使我没有用@EnableWebSecurity
注释我的任何类,仍然是应用程序提示输入用户名和密码。(默认行为)
所以我在@EnableWebSecurity
和没有@EnableWebSecurity
情况下收到了同样的行为。
有人可以解释这个注释究竟是什么?
@EnableWebSecurity
是标记注释。 它允许Spring查找(它是@Configuration
,因此是@Component
)并自动将该类应用于全局WebSecurity
。
如果我没有使用
@EnableWebSecurity
注释我的任何类仍然是应用程序提示输入用户名和密码。
是的,这是默认行为。 如果查看类路径,可以找到标有该注释的其他类(取决于您的依赖项):
-
SpringBootWebSecurityConfiguration
; -
FallbackWebSecurityAutoConfiguration
; -
WebMvcSecurityConfiguration
。
仔细考虑它们,关闭所需的配置,或覆盖它的行为。
Spring Boot Reference Guide对此有很好的解释。 如果能用@EnableWebSecurity
搜索:
要完全关闭默认Web应用程序安全配置,您可以添加带有
@EnableWebSecurity
的bean(这不会禁用身份validation管理器配置或Actuator的安全性)。 要自定义它,通常使用WebSecurityConfigurerAdapter
类型的外部属性和bean(例如,添加基于表单的登录)。…
如果添加
@EnableWebSecurity
并禁用Actuator安全性,除非添加自定义WebSecurityConfigurerAdapter
否则将获得整个应用程序的默认基于表单的登录。…
如果在应用程序的任何位置使用
@EnableWebSecurity
定义@Configuration
,@EnableWebSecurity
关闭Spring Boot中的默认Webapp安全设置(但启用Actuator的安全性)。 要调整默认值,请尝试在security.*
设置属性security.*
(有关可用设置的详细信息,请参阅SecurityProperties
)和Common应用程序属性的SECURITY部分。
显然,它是打开默认的Web应用程序安全配置并添加您自己的安全配置。