diff --git a/net/haproxy/pkg-descr b/net/haproxy/pkg-descr index e0f6044fe..056cc01d9 100644 --- a/net/haproxy/pkg-descr +++ b/net/haproxy/pkg-descr @@ -8,6 +8,7 @@ Plugin Changelog Added: * add support for built-in OCSP update feature +* add support for forwarded header (RFC7239) Fixed: * fix typo in cert sync script diff --git a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogBackend.xml b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogBackend.xml index c7babd3a7..5895c1013 100644 --- a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogBackend.xml +++ b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogBackend.xml @@ -173,6 +173,21 @@ true + + backend.forwardedHeader + + checkbox + + + + backend.forwardedHeaderParameters + + select_multiple + + true + true + HAProxy documentation for a full description.]]> + header diff --git a/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml b/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml index 5c42f7c20..c4eff76bc 100644 --- a/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml +++ b/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml @@ -1053,6 +1053,23 @@ HTTP/1.0 + + 0 + N + + + N + Y + Y + + proto + host + by + by_port + for + for_port + + N sticktable diff --git a/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf b/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf index bcfc4c6e2..19b5c50ea 100644 --- a/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf +++ b/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf @@ -1686,6 +1686,15 @@ backend {{backend.name}} {% if backend.tuning_httpreuse|default("") != "" and backend.mode == "http" %} http-reuse {{backend.tuning_httpreuse}} {% endif %} +{% if backend.forwardedHeader == '1' and backend.mode == 'http' %} +{% set forwarded_params = [] %} +{% if backend.forwardedHeaderParameters|default("") != "" %} +{% for fwd_param in backend.forwardedHeaderParameters.split(",") %} +{% do forwarded_params.append(fwd_param) %} +{% endfor %} +{% endif %} + option forwarded {{forwarded_params|join(' ')}} +{% endif %} {% if helpers.exists('OPNsense.HAProxy.general.cache') and OPNsense.HAProxy.general.cache.enabled|default("") == "1" and backend.tuning_caching|default("") == "1" and backend.mode == "http" %} http-request cache-use opnsense-haproxy-cache http-response cache-store opnsense-haproxy-cache