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.CorsAllowOrigin = []string{}
|
||||
unparsedOrigins, err := parser.GetStringAnnotation("cors-allow-origin", ing)
|
||||
if err == nil {
|
||||
config.CorsAllowOrigin = strings.Split(unparsedOrigins, ",")
|
||||
for i, origin := range config.CorsAllowOrigin {
|
||||
origins := strings.Split(unparsedOrigins, ",")
|
||||
for _, origin := range origins {
|
||||
origin = strings.TrimSpace(origin)
|
||||
if origin == "*" {
|
||||
config.CorsAllowOrigin = []string{"*"}
|
||||
break
|
||||
}
|
||||
|
||||
if !corsOriginRegex.MatchString(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)
|
||||
}
|
||||
} else {
|
||||
|
|
Loading…
Reference in a new issue