@EnableWebSecurity和@EnableWebMvcSecurity有什么区别?

2022-08-31 21:29:03

@EnableWebSecurity

JavaDoc documentaion:

将此批注添加到类中,以便通过扩展基类和重写各个方法,在任何或更可能的情况下定义配置。@ConfigurationSpring SecurityWebSecurityConfigurerWebSecurityConfigurerAdapter

@EnableWebMvcSecurity

JavaDoc documentaion:

将此注释添加到类中,以使配置与 集成。@ConfigurationSpring SecuritySpring MVC

  • 与Spring MVC集成”到底是什么意思?我会遇到哪些额外的行为?
  • 我找到了指南答案,这表明这个注释添加到表单中,这是它添加的唯一内容吗?CSRF TokensSpring MVC

答案 1

从Spring Security 4.0开始,已弃用。替换将确定根据类路径添加 Spring MVC 功能。@EnableWebMvcSecurity@EnableWebSecurity

要启用Spring Security与Spring MVC的集成,请将注释添加到您的配置中。@EnableWebSecurity


答案 2

如果看一下这些类,实际上会在 中添加注释。因此,做所有做的事情,以及更多。@EnableWebMvcSecurity@EnableWebSecurityWebMvcSecurityConfiguration@EnableWebMvcSecurity@EnableWebSecurity

你还问什么?

如果查看 ,您将看到它添加了 一个,以便您可以通过向控制器方法参数添加注释来访问身份验证主体。即:WebMvcSecurityConfigurationAuthenticationPrincipalArgumentResolver

public String show(@AuthenticationPrincipal CustomUser customUser) {
    // do something with CustomUser
    return "view";
}

它还与Spring Web MVC集成,将CSRF令牌添加到表单中。


推荐