Append elements on match, instead of removing for cors-annotations (#8185)
* fixes https://github.com/kubernetes/ingress-nginx/issues/8168 by appending elements on match, instead of removing * refactor the corsOriginRegex comparison, and initialize CorsAllowOrigin
This commit is contained in:
parent
86964b15a8
commit
5754eb60f4
1 changed files with 6 additions and 3 deletions
|
@ -121,19 +121,22 @@ func (c cors) Parse(ing *networking.Ingress) (interface{}, error) {
|
||||||
config.CorsEnabled = false
|
config.CorsEnabled = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
config.CorsAllowOrigin = []string{}
|
||||||
unparsedOrigins, err := parser.GetStringAnnotation("cors-allow-origin", ing)
|
unparsedOrigins, err := parser.GetStringAnnotation("cors-allow-origin", ing)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
config.CorsAllowOrigin = strings.Split(unparsedOrigins, ",")
|
origins := strings.Split(unparsedOrigins, ",")
|
||||||
for i, origin := range config.CorsAllowOrigin {
|
for _, origin := range origins {
|
||||||
origin = strings.TrimSpace(origin)
|
origin = strings.TrimSpace(origin)
|
||||||
if origin == "*" {
|
if origin == "*" {
|
||||||
config.CorsAllowOrigin = []string{"*"}
|
config.CorsAllowOrigin = []string{"*"}
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
if !corsOriginRegex.MatchString(origin) {
|
if !corsOriginRegex.MatchString(origin) {
|
||||||
klog.Errorf("Error parsing cors-allow-origin parameters. Supplied incorrect origin: %s. Skipping.", origin)
|
klog.Errorf("Error parsing cors-allow-origin parameters. Supplied incorrect origin: %s. Skipping.", origin)
|
||||||
config.CorsAllowOrigin = append(config.CorsAllowOrigin[:i], config.CorsAllowOrigin[i+1:]...)
|
continue
|
||||||
}
|
}
|
||||||
|
config.CorsAllowOrigin = append(config.CorsAllowOrigin, origin)
|
||||||
klog.Infof("Current config.corsAllowOrigin %v", config.CorsAllowOrigin)
|
klog.Infof("Current config.corsAllowOrigin %v", config.CorsAllowOrigin)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue