繁体   English   中英

Spring CORS. 在允许的来源添加图案

[英]Spring CORS. Add pattern in the allowed origins

查看CORS的spring指南,以下代码启用所有允许的来源:

public class MyWebMVCConfigurer extends WebMvcConfigurerAdapter {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**").allowedOrigins("*");
    }
}

对于多个来源,方法 allowedOrigins 允许多个域,例如:

registry.addMapping("/**").allowedOrigins("http://domain1.com", "http://domain2.com");

那么,是否可以在 allowedOrigins 中使用常规模式? 在我的工作中,我需要在开发环境中测试 REST 服务,并且它们的主机在创建时是可变的,例如: http://www.devXXXXXX.company.com其中 XXXXXX 是一个随机数。

com.ge.predix.web.cors.CORSFilter 具有一种机制 ,使您可以使用cors.xhr.allowed.origins属性指定以逗号分隔的常规表达式原始模式列表。

您可以将cors.xhr.allowed.origins属性放入application.properties文件中

cors.xhr.allowed.origins=http:\/\/www\.dev[0-9]+\.company\.com 

从 Spring 5.3 开始,您可以使用setAllowedOriginPatterns(@Nullable List allowedOriginPatterns)

但是,它不接受 RegEx,而是一种通配符模式,您可以在其中使用“*”表示任何字符序列,使用 [xxxx] 表示端口。

在您的情况下,模式为 http://www.dev*.company.com

不幸的是,由于这是使用通配符模式而不是正则表达式,这意味着它不那么严格,并且像http://www.devdevdev.company.com这样的来源也会被匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM