@EnableWebSecurity和@EnableWebMvcSecurity有什么区别?
@EnableWebSecurity
JavaDoc文档:
将此注释添加到
@Configuration类中,以使Spring Securityconfiguration在任何WebSecurityConfigurer定义,或者更可能通过扩展WebSecurityConfigurerAdapter基类和重写单个方法。
@EnableWebMvcSecurity
JavaDoc文档:
将此注释添加到
@Configuration类,以使Spring Securityconfiguration与Spring MVC集成。
- “ 与Spring MVC集成 ”究竟意味着什么? 我能得到什么额外的行为?
- 我find了指南和答案 ,这表明这个注释添加了
CSRF Tokens到Spring MVCForms,这是它增加的唯一的东西吗?
如果您查看这些类, @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中。
资源