Skip to content

Commit

Permalink
Merge branch 'main' into tests/update-generateed
Browse files Browse the repository at this point in the history
  • Loading branch information
lucacome committed Nov 5, 2022
2 parents 6df6235 + 8ba2134 commit f8fe777
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 5 deletions.
23 changes: 21 additions & 2 deletions internal/configs/version2/nginx-plus.virtualserver.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -481,14 +481,33 @@ server {
proxy_set_header Connection $vs_connection_header;
proxy_pass_request_headers {{ if $l.ProxyPassRequestHeaders }}on{{ else }}off{{ end }};
{{ end }}

{{- $custom_headers := $l.ProxySetHeaders | headerListToCIMap }}

{{- if not ($custom_headers | hasCIKey "X-Real-IP") }}
{{ $proxyOrGRPC }}_set_header X-Real-IP $remote_addr;
{{- end }}

{{- if not ($custom_headers | hasCIKey "X-Forwarded-For") }}
{{ $proxyOrGRPC }}_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
{{- end }}

{{- if not ($custom_headers | hasCIKey "X-Forwarded-Host") }}
{{ $proxyOrGRPC }}_set_header X-Forwarded-Host $host;
{{- end }}

{{- if not ($custom_headers | hasCIKey "X-Forwarded-Port") }}
{{ $proxyOrGRPC }}_set_header X-Forwarded-Port $server_port;
{{- end }}

{{- if not ($custom_headers | hasCIKey "X-Forwarded-Proto") }}
{{ $proxyOrGRPC }}_set_header X-Forwarded-Proto {{ with $s.TLSRedirect }}{{ .BasedOn }}{{ else }}$scheme{{ end }};
{{ range $h := $l.ProxySetHeaders }}
{{- end }}

{{- range $h := $l.ProxySetHeaders }}
{{ $proxyOrGRPC }}_set_header {{ $h.Name }} "{{ $h.Value }}";
{{ end }}
{{- end }}

{{ range $h := $l.ProxyHideHeaders }}
{{ $proxyOrGRPC }}_hide_header {{ $h }};
{{ end }}
Expand Down
23 changes: 21 additions & 2 deletions internal/configs/version2/nginx.virtualserver.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -318,14 +318,33 @@ server {
proxy_set_header Connection $vs_connection_header;
proxy_pass_request_headers {{ if $l.ProxyPassRequestHeaders }}on{{ else }}off{{ end }};
{{ end }}

{{- $custom_headers := $l.ProxySetHeaders | headerListToCIMap }}

{{- if not ($custom_headers | hasCIKey "X-Real-IP") }}
{{ $proxyOrGRPC }}_set_header X-Real-IP $remote_addr;
{{- end }}

{{- if not ($custom_headers | hasCIKey "X-Forwarded-For") }}
{{ $proxyOrGRPC }}_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
{{- end }}

{{- if not ($custom_headers | hasCIKey "X-Forwarded-Host") }}
{{ $proxyOrGRPC }}_set_header X-Forwarded-Host $host;
{{- end }}

{{- if not ($custom_headers | hasCIKey "X-Forwarded-Port") }}
{{ $proxyOrGRPC }}_set_header X-Forwarded-Port $server_port;
{{- end }}

{{- if not ($custom_headers | hasCIKey "X-Forwarded-Proto") }}
{{ $proxyOrGRPC }}_set_header X-Forwarded-Proto {{ with $s.TLSRedirect }}{{ .BasedOn }}{{ else }}$scheme{{ end }};
{{ range $h := $l.ProxySetHeaders }}
{{- end }}

{{- range $h := $l.ProxySetHeaders }}
{{ $proxyOrGRPC }}_set_header {{ $h.Name }} "{{ $h.Value }}";
{{ end }}
{{- end }}

{{ range $h := $l.ProxyHideHeaders }}
{{ $proxyOrGRPC }}_hide_header {{ $h }};
{{ end }}
Expand Down
2 changes: 1 addition & 1 deletion internal/configs/version2/template_executor.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ type TemplateExecutor struct {
func NewTemplateExecutor(virtualServerTemplatePath string, transportServerTemplatePath string) (*TemplateExecutor, error) {
// template names must be the base name of the template file https://golang.org/pkg/text/template/#Template.ParseFiles

vsTemplate, err := template.New(path.Base(virtualServerTemplatePath)).ParseFiles(virtualServerTemplatePath)
vsTemplate, err := template.New(path.Base(virtualServerTemplatePath)).Funcs(helperFunctions).ParseFiles(virtualServerTemplatePath)
if err != nil {
return nil, err
}
Expand Down
26 changes: 26 additions & 0 deletions internal/configs/version2/template_helper.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package version2

import (
"strings"
"text/template"
)

func headerListToCIMap(headers []Header) map[string]string {
ret := make(map[string]string)

for _, header := range headers {
ret[strings.ToLower(header.Name)] = header.Value
}

return ret
}

func hasCIKey(key string, d map[string]string) bool {
_, ok := d[strings.ToLower(key)]
return ok
}

var helperFunctions = template.FuncMap{
"headerListToCIMap": headerListToCIMap,
"hasCIKey": hasCIKey,
}

0 comments on commit f8fe777

Please sign in to comment.