597 Commits

Author SHA1 Message Date
Ali
2eb8a19f7b Fix/issue666 (#889)
* cache key now can generate from query string for request with Get Methods and request content for requests with post methods

* MD5Helper Added. OutputCacheMiddleware now can generate cache key using method, url and content

* unit test created for CacheKeyGenerator

* CacheKeyGenerator Registered in OcelotBuilder as singletone
2019-05-20 15:43:45 +08:00
liweihan
1eb092ffbd add more flexible method to config ocelot pipeline (#880) 2019-05-10 11:33:50 +08:00
geffzhang
d147910e8e
kubernetes use in cluster (#882)
* refactor :kubernetes use in cluster

* feat:delete KubeClient
2019-05-10 11:31:48 +08:00
duszekmestre
08e01012a7 Fix UpstreamHost checking when reroutes duplicate validation (#864) 2019-05-04 14:28:35 +08:00
Alexander Langer
dc4cc14792 IOcelotPipelineBuilder.Use(): Return IOcelotPipelineBuilder (#875)
Fixes ThreeMammals/Ocelot#685
2019-05-04 14:27:38 +08:00
Michel Bretschneider
639011bc62 +dynamic claim variables (#855)
incl. tests
2019-04-15 10:51:34 +02:00
Thiago Loureiro
d9dbcc0865
Kubernetes Package, Code Cleanup (#845) 2019-03-29 20:20:50 +01:00
Andrew Stakhov
1d9df40af8 Change to use steeltoe discovery instead of pivotal discovery and bump up the version to be compatible with newer libraries due to interface change (#844) 2019-03-29 20:10:44 +01:00
Thiago Loureiro
963f93429a
Removed Warnings (#838) 2019-03-23 22:31:59 +01:00
Weidaicheng
bd058c22ca fix: Value must be greater than zero exception in Polly CircuitBreaker (#836)
when Only TimeoutValue was set in QoSOptions
2019-03-23 22:12:21 +01:00
Thiago Loureiro
a7eaed83a5
Updated FluentValidations Nuget Package (#833) 2019-03-22 23:30:55 +01:00
philia
9740dae482 Allows access to unpass node (#825)
* Fix bug:
If the registered Consul node is unexpectedly down and not restarted immediately, other services should continue to find the registered service.

* fix bug:
If the registered Consul node is unexpectedly down and not restarted immediately, other services should continue to find the registered service.
2019-03-22 13:38:03 +01:00
Thiago Loureiro
2a33397c39
Removed Packing to fix issues, will be sorted out after create a nuget package on Nuget.Org (#831) 2019-03-22 13:36:16 +01:00
liweihan
e46467ae3c fix HttpRequesterMiddleware does not call next bug (#830)
call next so that we can do something with the response, such as add some custom header etc...
2019-03-22 13:25:05 +01:00
liweihan
e281f1b3fb remove duplicate IHttpRequester register (#819)
* remove duplicate `IHttpRequester` register

* reserve the first
2019-03-19 23:28:13 +01:00
Thiago Loureiro
cb3989a714
Revert "Fix bug: (#810)" (#823)
This reverts commit 19c80afb05290fac3a144f652cd663c8b513a559.
2019-03-19 23:26:50 +01:00
philia
19c80afb05 Fix bug: (#810)
If the registered Consul node is unexpectedly down and not restarted immediately, other services should continue to find the registered service.
2019-03-19 15:38:01 +01:00
Weidaicheng
e76a51ffc9 Fix: errors when using rate limiting (#811)
* Fix: errors when using rate limiting
Add: QuotaExceededError class for requesting too much
Add: QuotaExceededError error code
Add: Add an error when limit is reached
Reflact: Extract GetResponseMessage method for getting default or configured response message for requ

* Fix: modify check_we_have_considered_all_errors_in_these_tests for adding a new OcelotErrorCode
2019-03-13 00:07:39 +01:00
geffzhang
799abf55c4
nuget package (#809)
* feat: Kubernetes ServiceDiscoveryProvider

* 编写k8s测试例子

* feat:fix kube config

* feat: remove port

* feat : complete the k8s test

* feat :  add kubeserviceDiscovery test

* feat : add kube provider unittest

* feat :add kubetnetes docs

how to use ocelot with kubetnetes docs

* keep the configuration as simple as possible, no qos, no cache

* fix: use http

* add PollingKubeServiceDiscovery

* feat : refactor logger

* feat : add  pollkube docs

* feat:Remove unnecessary code

* feat : code-block json

* feat: publish package Ocelot.Provider.Kubernetes

* feat : nuget package

* fix: Namesapce Spelling wrong

* fix:Namesapce Spelling Wrong
2019-03-12 10:33:34 +08:00
阿凌
4a1e8d571b IOcelotBuilder opens the IMvcCoreBuilder property for easy customization (#790)
* IOcelotBuilder opens the IMvcCoreBuilder property for easy customization

* Adjustment code
2019-03-11 22:39:27 +08:00
liweihan
49b2a0f0ce update cliamsParser (#798)
* update cliamsParser

* update using
2019-03-11 10:55:13 -03:00
geffzhang
fcefae273f
K8s package (#804)
* feat: Kubernetes ServiceDiscoveryProvider

* 编写k8s测试例子

* feat:fix kube config

* feat: remove port

* feat : complete the k8s test

* feat :  add kubeserviceDiscovery test

* feat : add kube provider unittest

* feat :add kubetnetes docs

how to use ocelot with kubetnetes docs

* keep the configuration as simple as possible, no qos, no cache

* fix: use http

* add PollingKubeServiceDiscovery

* feat : refactor logger

* feat : add  pollkube docs

* feat:Remove unnecessary code

* feat : code-block json

* feat: publish package Ocelot.Provider.Kubernetes
2019-03-11 10:08:17 +08:00
Nagy Bálint
b4f5b68614 UriBuilder - remove leading question mark #747 (#794) 2019-02-26 09:39:56 -03:00
Duke
8d99449b08 fix bug #791 (#795) 2019-02-25 16:36:25 +01:00
Chris Swinchatt
26ae9948d5 Ignore response content if null (fix #785) (#786) 2019-02-20 11:16:55 -03:00
Abolfazl
faaabbe7a7 fix issue #661 for Advanced aggregations (#704)
* Add Advanced Aggregation Feature

* fix overwrite error

* distinct data for better performance

* remove constructor parameter

* fix tests issue

* fix tests

* fix tests issue

* Add UnitTest and AcceptanceTest

* fix responseKeys typo

* Update SimpleJsonResponseAggregator.cs

* change port
2019-02-04 09:21:50 -03:00
geffzhang
44dccf1fce kubernetes provider (#772)
* feat: Kubernetes ServiceDiscoveryProvider

* 编写k8s测试例子

* feat:fix kube config

* feat: remove port

* feat : complete the k8s test

* feat :  add kubeserviceDiscovery test

* feat : add kube provider unittest

* feat :add kubetnetes docs

how to use ocelot with kubetnetes docs

* keep the configuration as simple as possible, no qos, no cache

* fix: use http

* add PollingKubeServiceDiscovery

* feat : refactor logger

* feat : add  pollkube docs

* feat:Remove unnecessary code

* feat : code-block json
2019-01-31 07:19:32 -03:00
Thiago Loureiro
02e5cea7b1 Reducing Warnings from Ocelot (#743) 2019-01-11 17:56:23 -03:00
Felix Boers
6495891a07 Support placeholder in service fabric services names (#722) 2019-01-11 08:54:54 -05:00
Brian Delgado
7ba6d303b4 Claim values are now being shown when constructing. ClaimValueNotAuthorisedError. (#711) 2019-01-11 09:58:33 +01:00
Tom Pallister
11a2d13f18
Feat/monorepo (#734)
* copied everything from repos back to ocelot repo

* added src projects to sln

* removed all test projects that have no tests

* added all test projects to sln

* removed test not on master

* merged unit tests

* merged acceptance tests

* merged integration tests

* fixed namepaces

* build script creates packages for all projects

* updated docs to make sure no references to external repos that we will remove

* +semver: breaking
2019-01-07 19:52:53 +00:00
Ronald van Helden
35253025c7 Added the possibility to manage the placeholders from outside ocelot (#724) 2019-01-03 05:55:23 -08:00
Phil Proctor
9bbb6364f2 Checkin for caching the template matching for significant route finder performance improvements (#728) 2018-12-26 17:05:20 -03:00
David Nissimoff
fa5892d236 Web Sockets: work around .NET FX bug (#702) 2018-12-17 19:39:06 +00:00
Ruben Mamo
37efe354ca Fixed error message when reroute configuration is not found #650 (#698) 2018-12-17 19:37:35 +00:00
Mike
7fb66dd34d Fix DI Registration for IDownstreamRouteProvider (#656)
The two singletons registered for IDownstreamRouteProvider,
DownstreamRouteFinder and DownstreamRouteCreator, were registered using
`TryAddSingleton`. This would cause DownstreamRouteFinder to be
instantiated and found but the "Try" made DownstreamRouteCreator not
registered.

This was noted in the following in `DownstreamRouteProviderFactory`:

```
_providers = provider.GetServices<IDownstreamRouteProvider>().ToDictionary(x => x.GetType().Name);
```

With the registration being done using `TryAddSingleton` only one
element was added to the dictionary. Changing this to `AddSingleton`
fixed this issue.

This was uncovered in an error on line 30 of
`DownstreamRouteProviderFactory`. The key for
`nameof(DownstreamRouteCreator)` did not exist causing an exception to
be thrown.
2018-10-13 11:53:59 +01:00
Tom Pallister
622de5efd0
#639 added copywrite notice (#648) 2018-09-30 10:17:51 +01:00
vasicvuk
b58b3810d8 Update to support Subprotocols. Solves #639 (#642)
Ocelot websocket middleware did not work for STOMP over websocket. After investigation i found out that the issue was with subprotocol and headers that are send and filtered. 

I the end i used ASP.Net core proxy as a reference to solve the issue here:

3015029f51/src/Microsoft.AspNetCore.Proxy/ProxyAdvancedExtensions.cs

So i modified the code to use the way ASP.Net proxy handles this.
2018-09-30 09:17:09 +01:00
Tom Pallister
2d834037e4
removed dep we dont need in dsrfm (#636) 2018-09-25 20:33:31 +01:00
Tom Pallister
dc28d49bda
Feature/rename middleware (#637)
* #630 only set status code if response hasnt started, otherwise exception

* #623 made {RemoteIpAddress} available as placeholder so you can do x-forwarded-for

* #623 local address different on mac, windows and linux for integration test

* renamed some middlewares so they make more sense

* add downstreamroutefindermiddleware benchmark
2018-09-25 20:25:38 +01:00
阿凌
4a8f4c2e03 add a security module (#628) (#629)
* Add security mechanisms, IP whitelists, blacklists, and extended security interfaces.

* Optimized configuration name

* Fix IP Security Bug

* Repair Security Protection Module Bug

* Add security module unit test

* Optimize log prompts
2018-09-25 18:29:38 +01:00
Tom Pallister
aa14b2f877
Feature/#623 (#632)
* #630 only set status code if response hasnt started, otherwise exception

* #623 made {RemoteIpAddress} available as placeholder so you can do x-forwarded-for

* #623 local address different on mac, windows and linux for integration test
2018-09-24 08:22:44 +01:00
Ariel Moraes
54cdc74293 #633 ignore OPTIONS requests on AuthenticationMiddleware (#634) 2018-09-24 07:55:52 +01:00
Tom Pallister
1e5a20c2f2
#630 only set status code if response hasnt started, otherwise exception (#631) 2018-09-22 08:51:19 +01:00
Tom Gardham-Pallister
dcc3f0deae #559 +semver: breaking always use environment when working out AddOcelot on builder 2018-09-20 18:33:00 +01:00
Tom Gardham-Pallister
7c0aa6f97e Merge branch 'feature/config_grow_when_merged' of https://github.com/snb83/Ocelot into snb83-feature/config_grow_when_merged 2018-09-20 18:19:46 +01:00
Tom Pallister
388b1fad90
#604 set use qos based on what we have in docs (#627) 2018-09-20 08:04:15 +01:00
Tom Pallister
669ece07b2
Feature/proxy reason phrase (#618)
* #599 started work to proxy reason phrase

* #599 test for aggregator
2018-09-12 19:48:56 +01:00
Roc Gao
0b9ff92549 fix #609 https://github.com/ThreeMammals/Ocelot/issues/609 (#610) 2018-09-12 07:44:22 +01:00
Erik Juhlin
f934620538 Set status code directly (#608)
Makes it possible for middlewares to read status codes and handle errors
2018-09-12 07:34:39 +01:00