add multiple cross origin urls in spring boot

前端 未结 6 1226
太阳男子
太阳男子 2021-02-02 13:50

I found an example on how to set cors headers in spring-boot application. Since we have many origins, I need to add them. Is the following valid?

@Configuration
         


        
6条回答
  •  一个人的身影
    2021-02-02 13:57

    The way you are setting will only set the third origin and the other two will be gone.

    if you want all the three origins to be set then you need to pass them as comma separated Strings.

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/api/**")
            .allowedOrigins("http://domain1.com","http://domain2.com"
                            "http://domain3.com");
    }
    

    you can find the actual code here:

    https://github.com/spring-projects/spring-framework/blob/00d2606b000f9bdafbd7f4a16b6599fb51b53fa4/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/CorsRegistration.java#L61

    https://github.com/spring-projects/spring-framework/blob/31aed61d1543f9f24a82a204309c0afb71dd3912/spring-web/src/main/java/org/springframework/web/cors/CorsConfiguration.java#L122

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.PropertySource;
    import org.springframework.core.env.Environment;
    import org.springframework.web.servlet.config.annotation.CorsRegistry;
    import org.springframework.web.servlet.config.annotation.EnableWebMvc;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
    
    @Configuration
    @EnableWebMvc
    @PropertySource("classpath:config.properties")
    public class CorsClass extends WebMvcConfigurerAdapter {
    
        @Autowired
        private Environment environment;
    
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            String origins = environment.getProperty("origins");
            registry.addMapping("/api/**")
                    .allowedOrigins(origins.split(","));
        }
    }
    

提交回复
热议问题