Commit Graph

201 Commits

Author SHA1 Message Date
Umputun
a896f08eec add middleware to optionally allow requests from giving ips/ranges
add new remote param to docker and file providers

lint: http nil body

add support of remote ips to consul provider

local implementation of onlyfrom middleware

lint: missing comment

make proxy tests more readable

preffer public IP if any forwwarded
2023-11-26 16:17:04 -06:00
Umputun
f37072e649 lint: minor warns in tests 2023-09-20 11:16:24 -05:00
Nikita Shoshin
2b92c11cc9 fix redirects
Before this change redirects didn't work because method `Service.extendMapper` didn't copy
the value of `URLMapper.RedirectType` to the extended result.

To fix this we return the original `URLMapper` instead of creating a new one (it can also help
to avoid similar bugs in the future). We can reuse `URLMapper` because it is passed
by value.
2023-05-13 22:48:22 -05:00
Umputun
197246a05a drop legacy rand.Seed 2023-02-27 14:51:25 -06:00
Umputun
34d9f4d1d5 lint: minor warn on deferred close 2023-02-27 00:00:04 -06:00
Umputun
ffd6b08257 increase timeout a little for a flaky test 2023-02-26 16:21:16 -06:00
Umputun
ca65980093 fix redirects for docker provider 2023-02-25 22:30:54 -06:00
Umputun
22063f08cd fix docker's labels max, make it include .9 for real 2023-02-25 12:57:16 -06:00
Umputun
0ce326dbaa update deps, switch to go 1.19 2022-09-06 22:24:41 -05:00
ravilushqa
546c2609b0 defer recover 2022-08-21 03:48:44 -05:00
Vadim YR
b9e994be0c type in return error 2022-06-23 22:57:35 -05:00
Umputun
6695079c57 make sure two consecutive Server calls return the same list of servers 2022-02-23 18:07:38 -06:00
Umputun
b4225a4a4d fix error message 2022-02-15 03:00:34 -06:00
Negasus
4126fa7993 update error message 2022-02-15 02:59:44 -06:00
Negasus
22bea287e4 return error on wrong ssl.type value 2022-02-15 02:59:44 -06:00
Umputun
e2a40bc7a6 update rest library for proper 404 content type 2022-01-06 01:07:50 -06:00
Umputun
a963516783 switch from legacy FS functions to new constructor 2022-01-06 00:16:18 -06:00
Umputun
64f57df860 add support of custom 404 page for assets server 2022-01-06 00:16:18 -06:00
Alexey Nesterov
2e8733b152 Correctly handle URL escaped paths
Consider proxy configuration `*,/test/(.*),https://dest/$1`.

When reproxy accepts a request with URL encoded path, i.e.
'/test/a%205%25%20b/' which the encoded form of '/test/a 5% b',
it is using request.URL.Path which is already URL decoded by Golang.

This causes an error in proxy.go while it is trying to validate the
destination with `url.Parse(match.Destination)` as, strictly speaking,
destination URL is not a valid URL anymore, it is `https://target-dest/a 5% b`.

With this fix, the original escaped URL stays as is, correctly passes
the validation and then it is up to destination server to URL decode and
correctly handle the URL.
2021-12-06 11:00:07 -06:00
Umputun
075f66825a update linter and address all lint warns 2021-11-09 12:47:41 -06:00
Umputun
8c59be3612 implement simple on/off basic-auth for all resources
lint: err shadowing

extract htpasswd file load and add tests
2021-11-09 12:47:41 -06:00
Alexey Nesterov
184d5ba87c Support regex in host / server
Main consideration is backward compatibility. example.com should be treated as an exact
match, where possible. So current order is: exact host, regex host, * or "".

Regex matches are cached for better performance, cache is invalidated once mappings are refreshed.
2021-11-04 12:00:17 -05:00
Umputun
76fa56777f add ability to drop incoming headers #108
In some cases proxy should sanitize incoming headers. --drop-header and $DROP_HEADERS set list of headers (keys) and those headers removed from the request.
2021-09-11 14:38:56 -05:00
Umputun
c7a2308267 add OverrideHeadersIn and OverrideHeadersOut support
This is an attempt to address #108

Instead of dedicated support of header`s removal it allows to return a flag indicating plugin's full control over headers. With this flag set, the conductor won't mix response headers with originals but rather will count on a plugin to provide all the headers.
2021-09-07 01:53:54 -05:00
Umputun
506ded3ad4 add a warning on missing configuration file for file provider 2021-08-28 12:25:07 -05:00
Umputun
d364904dd8 fix flaky tests 2021-08-12 22:31:15 -05:00
Umputun
803a076b79 fix incorrect detection of header's dbl quotes 2021-07-09 15:20:45 -05:00
Umputun
9218ad8bac simplify unnecessary complicated TestCheckHealth 2021-07-08 17:08:35 -05:00
Umputun
cd41237fa5 lint: simplify empty string check 2021-07-08 16:40:14 -05:00
Umputun
56e040b80b allow longer time to start proxy in limiter test 2021-07-08 16:32:24 -05:00
Umputun
cbe7f6f84d drop leading and trailing dbl-quotes from the headers #100 2021-07-08 16:27:42 -05:00
Umputun
207a467960
Header comma (#101)
* allow comma inside of header env list #100

* set proxy header to manually split version
2021-07-08 02:31:27 -05:00
Umputun
71039681e2
Merge pull request #97
* revendor with latest rest lib

* simplify with passThroughHandler

* add deps for throttling
2021-07-03 01:23:50 -05:00
Umputun
2eb78e0e47 fix typo in mock file name 2021-06-29 20:35:50 -05:00
Umputun
5dcb303615 fix comment typo 2021-06-26 12:12:47 -05:00
Umputun
13c70eb8e8 add health integration test 2021-06-12 13:26:42 -05:00
Umputun
503f0b6dca drop regex group in source priority sorting #89 2021-06-08 15:32:35 -05:00
Umputun
297612e7c4 add test 2021-06-08 03:53:16 -05:00
Umputun
247cf13016 fix static match / without webroot defined 2021-06-08 03:48:37 -05:00
Umputun
3fb723c8b9 fix static match on / url 2021-06-08 03:28:30 -05:00
Umputun
3497599d03 add comments and fix docs 2021-06-08 00:45:16 -05:00
Umputun
e44ca79f23 add support of spa to common assets 2021-06-07 19:16:18 -05:00
Umputun
f0049ef7ac add support of spa-like assets handling 2021-06-07 19:16:18 -05:00
Umputun
687e78e87b drop attempt to parse form in limiter, conflicts with form body 2021-06-07 16:20:23 -05:00
Umputun
fb57a6bb45 remove commented code 2021-06-07 14:54:31 -05:00
Umputun
f8f5871411 quick attempt to de-prioritize assets rules 2021-06-07 14:54:09 -05:00
Umputun
15616dfa57 longer sleep for flaky test 2021-06-06 18:20:38 -05:00
Umputun
aea74d717f
Redirect (#87)
* add @code redirect prefix

* add proxy handling for redirects #86

* add info about redirects
2021-06-06 18:13:59 -05:00
Umputun
680d988d42 change url value in final proxy to const usage 2021-06-01 04:00:38 -05:00
Umputun
56cd1205a1 clean usage of plugin context in proxy 2021-06-01 03:59:23 -05:00