首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CORS spring安全过滤器vs WebMvcConfigurer.addCorsMappings

问CORS spring安全过滤器vs WebMvcConfigurer.addCorsMappings
EN

Stack Overflow用户
提问于 2020-08-15 20:25:08
回答 1查看 598关注 0票数 2

cors()类的configure方法中的WebSecurityConfigurerAdapter过滤器和WebMvcConfigurer的创建bean和重写addCorsMappings方法有什么区别?当我们使用哪一种?有人能解释一下吗?

代码语言:javascript
复制
@Bean
public WebMvcConfigurer corsConfigurer() {
    return new WebMvcConfigurer() {
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/**")
                    .allowedOrigins("http://localhost:3000");
        }
    };
}

vs

代码语言:javascript
复制
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.cors().and()
                .csrf().disable()
                .authorizeRequests()
                .mvcMatchers("/rest/**").authenticated()
                .anyRequest().permitAll()
                .and()
          .oauth2ResourceServer().jwt().jwtAuthenticationConverter(this.jwtAuthenticationConverter())
        ;
    }

}

EN

回答 1

Stack Overflow用户

发布于 2020-08-16 18:11:50

Spring Web MVC

WebMvcConfigurer是Spring Web MVC库的一部分。使用addCorsMappings配置CORS会将CORS添加到Spring Web MVC处理的所有URL中,请参阅1.7.2. Processing

Spring MVC HandlerMapping实现提供了对CORS的内置支持。在成功地将请求映射到处理程序之后,HandlerMapping实现将检查给定请求和处理程序的CORS配置,并采取进一步的操作。

如果没有使用Spring Security (不安全的应用程序),或者Spring Security并不能处理所有的Spring Web MVC URL(有些ULR是不安全的),那么您必须使用它。

您不能将其用于非Spring Web MVC URL,如JSF、Servlet、JAX-WS、JAX-RS、...

Spring安全

WebSecurityConfigurerAdapter 是Spring Security库的一部分。使用cors()配置CORS会将CORS添加到Spring Security处理的所有URL中,请参阅15.8. CORS

Spring Framework为CORS提供了一流的支持。CORS必须在Spring Security之前处理,因为飞行前请求不会包含任何cookies (即JSESSIONID)。如果请求不包含任何cookies,并且Spring Security是第一个,则请求将确定用户未通过身份验证(因为请求中没有cookies )并拒绝它。

确保首先处理CORS的最简单方法是使用CorsFilter。

如果你使用Spring Security,你必须使用它。

如果您同时使用Spring Web MVC和Spring Security,则可以共享配置,请参阅15.8. CORS

如果您正在使用Spring MVC的CORS支持,则可以省略指定CorsConfigurationSource,Spring Security将利用提供给Spring MVC的CORS配置。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63426010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档