Java @EnableWebSecurity在春季有什么用途?

Java @EnableWebSecurity在春季有什么用途?,java,spring-boot,spring-security,annotations,Java,Spring Boot,Spring Security,Annotations,根据: 将此注释添加到@Configuration类中以获得弹簧 在任何Web安全配置程序或更多文件中定义的安全配置 可能通过扩展websecurityConfigureAdapter基类和 覆盖单个方法: 或者正如@EnableWebSecurity所描述的,用于在我们的项目中启用SpringSecurity 但我的问题是,即使我没有用@EnableWebSecurity注释我的任何类,应用程序仍然会提示输入用户名和密码。(默认行为) 因此,我在使用@EnableWebSecurity和不使用

根据:

将此注释添加到
@Configuration
类中以获得弹簧 在任何
Web安全配置程序
或更多文件中定义的安全配置
可能通过扩展
websecurityConfigureAdapter
基类和 覆盖单个方法:

或者正如
@EnableWebSecurity
所描述的,用于在我们的项目中启用SpringSecurity

但我的问题是,即使我没有用
@EnableWebSecurity
注释我的任何类,应用程序仍然会提示输入用户名和密码。(默认行为)

因此,我在使用
@EnableWebSecurity
和不使用
@EnableWebSecurity
时收到了相同的行为


有人能解释一下这个注释的确切用途吗?

这个
@EnableWebSecurity
是一个标记注释。它允许Spring查找(它是一个
@配置
,因此是
@组件
),并自动将该类应用于全局
Web安全性

如果我没有用
@EnableWebSecurity
注释我的任何类,应用程序仍然会提示输入用户名和密码

是的,这是默认行为。如果查看类路径,您可以找到其他用该注释标记的类(取决于您的依赖项):

  • SpringBootWebSecurity配置
  • FallbackWebSecurityAutoConfiguration
  • WebMVC安全配置
仔细考虑它们,关闭所需的配置,或覆盖其行为。

对其进行了很好的解释。如果使用
@EnableWebSecurity
搜索:

要完全关闭默认的web应用程序安全配置,您可以添加一个具有
@EnableWebSecurity
的bean(这不会禁用身份验证管理器配置或执行器的安全性)。要自定义它,您通常使用外部属性和类型为
websecurityConfigureAdapter
(例如添加基于表单的登录)的bean

如果添加
@EnableWebSecurity
并禁用执行器安全性,则将获得整个应用程序的默认基于表单的登录,除非添加自定义
websecurityConfigureAdapter

如果在应用程序中的任何位置使用
@EnableWebSecurity
定义
@配置
,它将在Spring Boot中关闭默认的webapp安全设置(但保持执行器的安全处于启用状态)。要调整默认设置,请尝试在
security.*
中设置属性(有关可用设置的详细信息,请参阅
SecurityProperties
)和常用应用程序属性的安全部分


显然,这是为了关闭默认的web应用程序安全配置并添加您自己的配置。

@EnableWebSecurity
用于spring security java配置。在扩展了
websecurityConfigureAdapter
的安全java类的顶部添加此注释,并添加
@configuration


覆盖
配置(WebSecurity web)
配置(HttpSecurity http)
。这是对基于xml的配置(如和)的替代。通过这种方式,您可以限制来自特定URL的请求URL,还可以启用基于表单的登录。

您能否详细说明“将其应用于全球
网站安全”