diff options
author | Alex W <embezzle.dev@proton.me> | 2024-05-21 23:25:06 +0100 |
---|---|---|
committer | Mergify <37929162+mergify[bot]@users.noreply.github.com> | 2024-05-23 19:24:18 +0000 |
commit | 6c25888fe0e3773cb21b31ffac08c44af5d68a68 (patch) | |
tree | 4a87e95554462e45b482b260309d7da67cb8d694 /smoketest/scripts/cli | |
parent | 371517c4dcf91d07a2145f0a1a1dc52762464ed6 (diff) | |
download | vyos-1x-6c25888fe0e3773cb21b31ffac08c44af5d68a68.tar.gz vyos-1x-6c25888fe0e3773cb21b31ffac08c44af5d68a68.zip |
reverse-proxy: T6370: Set custom HTTP headers in reverse-proxy responses
(cherry picked from commit e1450096b4c667a4c33a3fcd8f67ebf6a39d441d)
Diffstat (limited to 'smoketest/scripts/cli')
-rwxr-xr-x | smoketest/scripts/cli/test_load-balancing_reverse-proxy.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/smoketest/scripts/cli/test_load-balancing_reverse-proxy.py b/smoketest/scripts/cli/test_load-balancing_reverse-proxy.py index c8b17316f..370a9276a 100755 --- a/smoketest/scripts/cli/test_load-balancing_reverse-proxy.py +++ b/smoketest/scripts/cli/test_load-balancing_reverse-proxy.py @@ -385,5 +385,26 @@ class TestLoadBalancingReverseProxy(VyOSUnitTestSHIM.TestCase): self.assertIn(f'mode {mode}', config) self.assertIn(f'server {bk_name} {bk_server}:{bk_server_port}', config) + def test_07_lb_reverse_proxy_http_response_headers(self): + # Setup base + self.configure_pki() + self.base_config() + + # Set example headers in both frontend and backend + self.cli_set(base_path + ['service', 'https_front', 'http-response-headers', 'Cache-Control', 'value', 'max-age=604800']) + self.cli_set(base_path + ['backend', 'bk-01', 'http-response-headers', 'Proxy-Backend-ID', 'value', 'bk-01']) + self.cli_commit() + + # Test headers are present in generated configuration file + config = read_file(HAPROXY_CONF) + self.assertIn('http-response set-header Cache-Control \'max-age=604800\'', config) + self.assertIn('http-response set-header Proxy-Backend-ID \'bk-01\'', config) + + # Test setting alongside modes other than http is blocked by validation conditions + self.cli_set(base_path + ['service', 'https_front', 'mode', 'tcp']) + with self.assertRaises(ConfigSessionError) as e: + self.cli_commit() + + if __name__ == '__main__': unittest.main(verbosity=2) |