Commit Graph

426 Commits

Author SHA1 Message Date
YuanSheng Wang
251625d8ab
bugfix: set random seed for each worker process at init_worker phase, only init phase is not enough. (#2357) 2020-10-09 16:39:49 +08:00
YuanSheng Wang
73dfdf2185
feat: add new filed meta_style, collect the request information with original style. (#2364) 2020-10-09 16:33:07 +08:00
Joey
9d0d351226
Add lables for Route/Service/Consumer/SSL (#2345)
Signed-off-by: imjoey <majunjiev@gmail.com>
2020-10-09 14:05:14 +08:00
罗泽轩
5b97223592
feat: implemented referer-restriction plugin (#2352) 2020-10-06 18:20:17 +08:00
Firstsawyou
c3de84e285
feature: support consumer_name as key for limit-req plugin. (#2270)
fix #2267
2020-10-06 18:18:22 +08:00
L
720d135fd2
fix: Update error message when Route doesn't exist (#2304)
Fixes #2302

Co-authored-by: YuanSheng Wang <membphis@gmail.com>
2020-10-06 11:48:52 +08:00
YuanSheng Wang
50c99a5e3b
bugfix: create etcd object in xpcall, this step may fail (#2312)
* bugfix: create the etcd object in `xpcall`, it may fail, the return values of `etcd.new` should be `res, err`.

fix issue: #2310

1. The old process, if creating etcd fails, etcd data will no longer be synchronized. We need to create the etcd object in xpcall.
2. the return value should be res, err of etcd.new.

* test: old test case is unstable, should delete some checkpoint which is wrong.
2020-10-05 10:22:28 +08:00
YuanSheng Wang
5d172d606f
test: use the absolute path of $apisix_home instead of ., search the lua source fine in the folder $apisix_home. (#2348) 2020-10-05 08:42:13 +08:00
YuanSheng Wang
20c670ce09
change(hmac-auth): update the organization of signing_string . (#2337)
fix #2336 .

ref:
https://help.aliyun.com/document_detail/29475.html?spm=a2c4g.11186623.2.15.62c73e789LVg02
https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html#RESTAuthenticationConstructingCanonicalizedAmzHeaders
2020-10-04 19:57:57 +08:00
Firstsawyou
dd5a36e207
feat: support to fetch consumer_name or consumer_id via ctx.var (#2333) 2020-10-04 19:16:29 +08:00
罗泽轩
1db42368c0
fix(basic-auth): split schema to adapt different occasions (#2331) 2020-10-04 14:39:20 +08:00
YuanSheng Wang
c5dcced1cf
bugfix: when service works with upstream that contains a domain name, the merged configuration should not always changing. (#2322) 2020-10-04 13:12:28 +08:00
YuanSheng Wang
05840ca9e2
test: wait for more time and check the error log, old way is unstable. (#2341) 2020-09-30 17:05:46 +08:00
Shuyang Wu
e0ee327c08
bugfix: use etcd:watchcancel to reduce connections in etcdv3 (#2299) 2020-09-28 18:05:47 +08:00
Joey
ebe4f6620a
feat: Add labels for upstream object (#2279) 2020-09-28 11:20:09 +08:00
nic-chen
c375bd0cac
feat: replace timestamp with date and time in GMT format in plugin hmac-auth (#2301) 2020-09-28 09:10:26 +08:00
Firstsawyou
b1770d4ca7
feat: support to fetch route_id and service_id via ctx.var (#2326) 2020-09-27 22:29:59 +08:00
罗泽轩
70bd9802c5
bugfix: avoid overwriting Vary header in cors plugin (#2271) 2020-09-27 16:43:09 +08:00
YuanSheng Wang
65db7a4837
bugfix(lrucache): store the original value in a new table, and use ver to store the cached version. (#2321) 2020-09-27 11:38:05 +08:00
guyang
ce6dc643dd
bugfix: return right response code when http_to_https enabled in redirect plugin. (#2311) 2020-09-27 09:35:28 +08:00
Wen Ming
13b0968340
Revert "feat(http-logger): support for specified the log formats via admin API (#2294)" (#2307)
This reverts commit 89f89f3004.
2020-09-24 23:50:22 +08:00
YuanSheng Wang
89f89f3004
feat(http-logger): support for specified the log formats via admin API (#2294) 2020-09-24 20:45:50 +08:00
YuanSheng Wang
3f9685f823
feat(http-logger): support to concat multiple log with separator. (#2286) 2020-09-24 10:58:44 +08:00
Vinci Xu
7beafd345a
fix: increase wait to avoid fail (#2290) 2020-09-23 22:48:34 +08:00
nic-chen
1b24f36639
feat: support storing metadata for plugins (#2268)
fix #2263
2020-09-23 21:02:56 +08:00
Alex Zhang
36d3b82ec4
bugfix: supported the encryption/decryption for multi priv keys (#2179)
Co-authored-by: Wen Ming <moonbingbing@gmail.com>
2020-09-22 20:37:14 +08:00
Firstsawyou
a651a29e20
feature: allow empty service object, it does not contain any upstream and plugin (#2259) 2020-09-21 16:52:18 +08:00
罗泽轩
8493a607ce
test: also lint the test helpers (#2252)
Close #2215
2020-09-19 19:07:39 +08:00
Firstsawyou
e94a5b3f58
feature: consumer provides access to a collection of service (#2241)
* test: add more test cases.

Co-authored-by: Yuansheng Wang <membphis@gmail.com>
2020-09-19 18:21:21 +08:00
Vinci Xu
89f4389ba7
fix[key-auth]: skip consumer when config has no key (#2120) 2020-09-18 21:49:01 +08:00
nic-chen
0a4bc95e3d
feat: hmac-auth add signed headers to calculate signature (#2239)
Co-authored-by: YuanSheng Wang <membphis@gmail.com>
2020-09-18 20:25:41 +08:00
YuanSheng Wang
03d818e175
test: before creating and deleting routes in batches, clear all routes first (#2253)
* test: set larger timeout.
2020-09-18 18:43:02 +08:00
Alex Zhang
dd6ee5e99f
improve: use optimistic locking to avoid concurrency problem in admin PATCH APIs. (#2216)
There is a potential concurrency problem in all admin PATCH APIs when
two patch requests come in simultaneously, in such case, the patched
result of the first applied request will be overridden, also the
probability is tidy, but from the perspective of software's robust,
that's not what we wanna to see.

In this commit, we use the optimistic locking to avoid this problem, for
the example aforementioned, the second PATCH request will failure, and
it's up to the user to retry this PATCH request again.

The optimistic locking mechanism in ETCD v3 APIs is showed by it's
transcation mechanism.

Signed-off-by: tokers <zchao1995@gmail.com>
2020-09-18 17:20:55 +08:00
YuanSheng Wang
4f900390f9
bugfix: independently check the "disabled" field to avoid schema ve… (#2099)
* bugfix: independently check the "disabled" field to avoid `schema` verification
  with other parameters.
2020-09-17 22:31:02 +08:00
Zhang Qiang
d05071868d
fix: return ok in kafka-logger (#2222) 2020-09-17 15:17:51 +08:00
YuanSheng Wang
68b1f9cc57
bugfix: clear all cached object when got delete action, and removing (#2168)
stale boolean data in table `self.values` with a safer way.
2020-09-17 09:30:44 +08:00
nic-chen
84ce7ba781
feat: add AK/SK(HMAC) auth plugin. (#2192) 2020-09-16 14:27:56 +08:00
Shuyang Wu
4722198548
feature: support etcd v3 by mocking v2 API (#2036) 2020-09-16 10:19:04 +08:00
YuanSheng Wang
12a0b13145
bugfix: use the route's has_domain if it contains any upstream object. (#2211) 2020-09-15 12:12:09 +08:00
nic-chen
087f87a7e4
bugfix: grpc-transcode plugin converts http/json parameters abnormally (#2139)
* fix bug

* optimiz

* update grpc_server_example

* add test cases

* fix: test case

* fix: test case

* return val directly

* fix: test case respond body compare text

* fix test case error

Co-authored-by: Wen Ming <moonbingbing@gmail.com>
2020-09-10 18:02:16 +08:00
罗泽轩
37817e4198
chore: add string utility for simplicity and correctness (#2181)
* chore: add string utility for simplicity and correctness

* localize error

* correct the misuse string.find

Co-authored-by: YuanSheng Wang <membphis@gmail.com>
2020-09-10 16:49:20 +08:00
Alex Zhang
1556cd0d7e
improve: cache parsed certs and pkeys to LRU cache (#2163) 2020-09-10 15:35:55 +08:00
maosy
47d39e7b0e
bugfix: serverless plugin not work in header_filter phase (#2148) 2020-09-09 16:12:32 +08:00
gy
a8621fb5a1
bugfix: updated the value of remaining when count changes in limit-count plugin. (#2121) 2020-09-06 21:52:13 +08:00
gy
d4216831e3
fix: log-rotate.t is unstable (#2164)
fix #2138
2020-09-06 12:10:42 +08:00
nic-chen
502310bef6
feat: support different modes to pass host to upstream (#2132)
* test: using `httpbin.org` for test cases.
* doc: add doc
* remove golang apt repository and runtime in travis.
* download proto file
Co-authored-by: Yuansheng <membphis@gmail.com>
2020-08-30 22:43:28 +08:00
redynasc
98bb5933d6
feature: implement ewma balancer for upstream node (#2001)
ewma is a different balancing implementation that will generate a weight for every backend IP based on the last server response time, basically it tries to dispatch more requests to the backends that reply faster, supposing that they are less loaded.

fix #1996
2020-08-29 23:14:16 +08:00
Vinci Xu
a3f865aa4b
fix: wait time is too short it will easy fail in some bad hardware environment (#2127) 2020-08-27 16:47:09 +08:00
YuanSheng Wang
9070a4fa95
feature: implemented plugin log-rotate, rotate log by interval time. (#2097) 2020-08-26 16:40:36 +08:00
nic-chen
4f83f09eeb
fix: return response code and msg instead of exit directly in plugins. (#2115) 2020-08-25 09:56:45 +08:00