@EnableWebSecurity和@EnableWebMvcSecurity有什么区别?
@EnableWebSecurity
JavaDoc文档:
将此注释添加到
@Configuration
类中,以使Spring Security
configuration在任何WebSecurityConfigurer
定义,或者更可能通过扩展WebSecurityConfigurerAdapter
基类和重写单个方法。
@EnableWebMvcSecurity
JavaDoc文档:
将此注释添加到
@Configuration
类,以使Spring Security
configuration与Spring MVC
集成。
- “ 与Spring MVC集成 ”究竟意味着什么? 我能得到什么额外的行为?
- 我find了指南和答案 ,这表明这个注释添加了
CSRF Tokens
到Spring MVC
Forms,这是它增加的唯一的东西吗?
如果您查看这些类, @EnableWebMvcSecurity
实际上在@EnableWebSecurity
中添加了@EnableWebSecurity
注释。 因此, @EnableWebMvcSecurity
执行@EnableWebMvcSecurity
所做的一切, @EnableWebSecurity
一点。
你还问什么?
如果您查看WebMvcSecurityConfiguration
,您将看到它添加了一个AuthenticationPrincipalArgumentResolver
以便您可以通过向控制器方法参数添加批注来访问authentication主体。 即:
public String show(@AuthenticationPrincipal CustomUser customUser) { // do something with CustomUser return "view"; }
它还与Spring Web MVC集成,为表单添加一个CSRF令牌。
从Spring Security 4.0开始,不推荐使用
@EnableWebMvcSecurity
。 replace是@EnableWebSecurity
将决定添加基于类path的Spring MVCfunction。为了使Spring Security与Spring MVC集成,将
@EnableWebSecurity
注释 添加 到您的configuration中。
资源