ingress-nginx-helm/internal/ingress/annotations
Christopher Larivière 65b8eeddec
Support cors-allow-origin with multiple origins (#7614)
* Add Initial support for multiple cors origins in nginx

- bump cluster version for `make dev-env`
- add buildOriginRegex function in nginx.tmpl
- add e2e 4 e2e tests for cors.go
- refers to feature request #5496

* add tests + use search to identify '*' origin

* add tests + use search to identify '*' origin

Signed-off-by: Christopher Larivière <lariviere.c@gmail.com>

* fix "should enable cors test" looking at improper values

* Modify tests and add some logic for origin validation

- add origin validation in cors ingress annotations
- add extra tests to validate regex
- properly escape regex using "QuoteMeta"
- fix some copy/paste errors

* add TrimSpace and length validation before adding a new origin

* modify documentation for cors and remove dangling comment

* add support for optional port mapping on origin

* support single-level wildcard subdomains + tests

* Remove automatic `*` fonctionality from incorrect origins

- use []string instead of basic string to avoid reparsing in template.go
- fix typo in docs
- modify template to properly enable only if the whole block is enabled
- modify cors parsing
- test properly by validating that the value returned is the proper
  origin
- update unit tests and annotation tests

* Re-add `*` when no cors origins are supplied + fix tests

- fix e2e tests to allow for `*`
- re-add `*` to cors parsing if trimmed cors-allow-origin is empty
(supplied but empty) and if it wasn't supplied at all.

* remove unecessary logic for building cors origin + remove comments

- add some edge cases in e2e tests
- rework logic for building cors origin

there was no need for logic in template.go for buildCorsOriginRegex
if there is a `*` it ill be short-circuited by first if.

if it's a wildcard domain or any domain (without a wildcard), it MUST
match the main/cors.go regex format.

if there's a star in a wildcard domain, it must be replaced with
`[A-Za-z0-9]+`

* add missing check in e2e tests
2021-11-02 12:31:42 -07:00
..
alias Release v1 (#7470) 2021-08-21 13:42:00 -07:00
auth Release v1 (#7470) 2021-08-21 13:42:00 -07:00
authreq Release v1 (#7470) 2021-08-21 13:42:00 -07:00
authreqglobal Release v1 (#7470) 2021-08-21 13:42:00 -07:00
authtls Additional AuthTLS assertions and doc change to demonstrate auth-tls-secret enables the other AuthTLS annotations (#7202) 2021-09-07 10:35:16 -07:00
backendprotocol Release v1 (#7470) 2021-08-21 13:42:00 -07:00
canary Release v1 (#7470) 2021-08-21 13:42:00 -07:00
clientbodybuffersize Release v1 (#7470) 2021-08-21 13:42:00 -07:00
connection Release v1 (#7470) 2021-08-21 13:42:00 -07:00
cors Support cors-allow-origin with multiple origins (#7614) 2021-11-02 12:31:42 -07:00
customhttperrors Release v1 (#7470) 2021-08-21 13:42:00 -07:00
defaultbackend Release v1 (#7470) 2021-08-21 13:42:00 -07:00
fastcgi Release v1 (#7470) 2021-08-21 13:42:00 -07:00
globalratelimit Release v1 (#7470) 2021-08-21 13:42:00 -07:00
http2pushpreload Release v1 (#7470) 2021-08-21 13:42:00 -07:00
influxdb Release v1 (#7470) 2021-08-21 13:42:00 -07:00
ipwhitelist Release v1 (#7470) 2021-08-21 13:42:00 -07:00
loadbalancing Release v1 (#7470) 2021-08-21 13:42:00 -07:00
log Release v1 (#7470) 2021-08-21 13:42:00 -07:00
mirror Release v1 (#7470) 2021-08-21 13:42:00 -07:00
modsecurity Release v1 (#7470) 2021-08-21 13:42:00 -07:00
opentracing configmap: option to not trust incoming tracing spans (#7045) 2021-10-24 14:36:21 -07:00
parser Release v1 (#7470) 2021-08-21 13:42:00 -07:00
portinredirect Release v1 (#7470) 2021-08-21 13:42:00 -07:00
proxy Release v1 (#7470) 2021-08-21 13:42:00 -07:00
proxyssl Release v1 (#7470) 2021-08-21 13:42:00 -07:00
ratelimit Release v1 (#7470) 2021-08-21 13:42:00 -07:00
redirect Release v1 (#7470) 2021-08-21 13:42:00 -07:00
rewrite Release v1 (#7470) 2021-08-21 13:42:00 -07:00
satisfy Release v1 (#7470) 2021-08-21 13:42:00 -07:00
secureupstream Release v1 (#7470) 2021-08-21 13:42:00 -07:00
serversnippet Release v1 (#7470) 2021-08-21 13:42:00 -07:00
serviceupstream Allow the usage of Services as Upstream on a global level (#7469) 2021-09-07 12:47:15 -07:00
sessionaffinity feat: add session-cookie-secure annotation (#7399) 2021-09-01 15:23:40 -07:00
snippet Release v1 (#7470) 2021-08-21 13:42:00 -07:00
sslcipher Release v1 (#7470) 2021-08-21 13:42:00 -07:00
sslpassthrough Release v1 (#7470) 2021-08-21 13:42:00 -07:00
upstreamhashby Release v1 (#7470) 2021-08-21 13:42:00 -07:00
upstreamvhost Release v1 (#7470) 2021-08-21 13:42:00 -07:00
xforwardedprefix Release v1 (#7470) 2021-08-21 13:42:00 -07:00
annotations.go Release v1 (#7470) 2021-08-21 13:42:00 -07:00
annotations_test.go Support cors-allow-origin with multiple origins (#7614) 2021-11-02 12:31:42 -07:00