@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,这是它增加的唯一的东西吗?
2 Solutions collect form web for “@EnableWebSecurity和@EnableWebMvcSecurity有什么区别?”
<div class="list-group-item list-group-item-action flex-column align-items-start">
<p> 如果您查看这些类, <code>@EnableWebMvcSecurity</code>实际上在<code>@EnableWebSecurity</code>中添加了<code>@EnableWebSecurity</code>注释。 因此, <code>@EnableWebMvcSecurity</code>执行<code>@EnableWebMvcSecurity</code>所做的一切, <code>@EnableWebSecurity</code>一点。 </p>
你还问什么?
如果您查看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中。
<div class="navigation">
<div class="alignleft"></div>
<div class="alignright"></div>
</div>