555 Commits

Author SHA1 Message Date
Thiago Loureiro
60655c4056 Fixed Merge Conflicts 2019-06-01 19:52:34 +08:00
Paul Arnett
b707cd6175 Updated Consul discovery to resolve hostname (#909)
* Updated Consul discovery to resolve target API location to hostname if known Consul node, to allow SSL API certificate validation

* Handling added for null response from Consul client when querying nodes
2019-06-01 19:22:33 +08:00
Thiago Loureiro
5d82e68534
Removed unused usings, removed empty spaces, removed tons os warnings (#903) 2019-05-28 11:00:54 +08:00
liweihan
4476f8273e [WIP] use HttpContext.RequestAborted to support cancel a request (#902)
* use HttpContext.RequestAborted to support cancel a request

* register context.HttpContext.RequestAborted.ThrowIfCancellationRequested() in ExceptionHandlerMiddleware

* add LangVersion

* add default number to OcelotErrorCode
fix unit test

* revert back to one line
2019-05-27 16:23:30 +08:00
Thiago Loureiro
fe3cf44c45
Upgrade Projects (#900)
* Upgrade Projects

* Push to trigger builds

* Tried Thread Sleep before deleting file

* FileDeleteTryCatch

* Updated from AspnetCore All to App

* Travis version Upgrade (.net core 2.2)

* dotnet 2.2.105
2019-05-24 10:06:16 +08:00
Ali
5b02fb7fe7 Fix/consul poller option (#899)
* 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

* ConsulFileConfigurationPollerOption created. consul poller option bug fixed

* ConsulFileConfigurationPollerOptionTest created
2019-05-23 09:39:12 +08:00
Thiago Loureiro
57580afa74
Release/13.6.0 (#895)
* Fixed Format Issue for Kubernetes ServiceDiscoveryProvider

* Fixes broken links (#858)

* Fix link to issue 262

* Fixes broken link to issue 340

* Fixed broken link to issue 340 (#857)

* Update information for Okta Authorization (#853)

* +dynamic claim variables (#855)

incl. tests

* IOcelotPipelineBuilder.Use(): Return IOcelotPipelineBuilder (#875)

Fixes ThreeMammals/Ocelot#685

* Fix UpstreamHost checking when reroutes duplicate validation (#864)

* Format json in reame (#877)

Format json file in AdministrationApi ReadMe

* kubernetes use in cluster (#882)

* refactor :kubernetes use in cluster

* feat:delete KubeClient

* add more flexible method to config ocelot pipeline (#880)

* update k8s doc & samples (#885)

* refactor :kubernetes use in cluster

* feat:delete KubeClient

* feat :  update k8s doc & samples

* Update kubernetes.rst

* 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

* Fix issue #890 IDefinedAggregator can't handle error codes from downstream requests (#892)

* Release/13.2.0 (#834)

* Fix formatting in getting started page (#752)

* updated release docs (#745)

* Update README.md (#756)

Fixed typo "Ocleot"

* Fixed typo there => their (#763)

* Some Typo fixes (#765)

* Typo algorythm => algorithm (#764)

* Typo querystring => query string (#766)

* Typo usual => usually (#767)

* Typos (#768)

* 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

* 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

* Fix code example for SSL Errors (#780)

DangerousAcceptAnyServerCertificateValidator has to be set to "true" to disable certification validation, not "false".

* Changed wording for ease of reading (#776)

Just some wording changes for clarification.

* Ignore response content if null (fix #785) (#786)

* fix bug #791 (#795)

* Update loadbalancer.rst (#796)

* UriBuilder - remove leading question mark #747 (#794)

* Update qualityofservice.rst (#801)

Tiny typo

* 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

* Okta integration (#807)

Okta integration

* update cliamsParser (#798)

* update cliamsParser

* update using

* IOcelotBuilder opens the IMvcCoreBuilder property for easy customization (#790)

* IOcelotBuilder opens the IMvcCoreBuilder property for easy customization

* Adjustment code

* 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

* 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

* added missing COPY csproj files (#821)

* Add note on In-Process hosting (#816)

When using ASP.NET Core 2.2 with In-Process hosting in IIS it's important to use .UseIIS() instead of .UseIISIntegration().

* Fix bug: (#810)

If the registered Consul node is unexpectedly down and not restarted immediately, other services should continue to find the registered service.

* Fixed Dockerfile (missing Kubernetes)

* Revert "Fix bug: (#810)" (#823)

This reverts commit 19c80afb05290fac3a144f652cd663c8b513a559.

* remove duplicate `IHttpRequester` register (#819)

* remove duplicate `IHttpRequester` register

* reserve the first

* 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...

* Removed Packing to fix issues, will be sorted out after create a nuget package on Nuget.Org (#831)

* 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.

* Updated FluentValidations Nuget Package (#833)

* Removed Warnings

* Make the full DownstreamContext available to user defined aggregators

This allows error codes to be handled
2019-05-20 16:25:44 +08:00
Jason Morton
4b6c88de14 Fix issue #890 IDefinedAggregator can't handle error codes from downstream requests (#892)
* Release/13.2.0 (#834)

* Fix formatting in getting started page (#752)

* updated release docs (#745)

* Update README.md (#756)

Fixed typo "Ocleot"

* Fixed typo there => their (#763)

* Some Typo fixes (#765)

* Typo algorythm => algorithm (#764)

* Typo querystring => query string (#766)

* Typo usual => usually (#767)

* Typos (#768)

* 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

* 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

* Fix code example for SSL Errors (#780)

DangerousAcceptAnyServerCertificateValidator has to be set to "true" to disable certification validation, not "false".

* Changed wording for ease of reading (#776)

Just some wording changes for clarification.

* Ignore response content if null (fix #785) (#786)

* fix bug #791 (#795)

* Update loadbalancer.rst (#796)

* UriBuilder - remove leading question mark #747 (#794)

* Update qualityofservice.rst (#801)

Tiny typo

* 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

* Okta integration (#807)

Okta integration

* update cliamsParser (#798)

* update cliamsParser

* update using

* IOcelotBuilder opens the IMvcCoreBuilder property for easy customization (#790)

* IOcelotBuilder opens the IMvcCoreBuilder property for easy customization

* Adjustment code

* 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

* 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

* added missing COPY csproj files (#821)

* Add note on In-Process hosting (#816)

When using ASP.NET Core 2.2 with In-Process hosting in IIS it's important to use .UseIIS() instead of .UseIISIntegration().

* Fix bug: (#810)

If the registered Consul node is unexpectedly down and not restarted immediately, other services should continue to find the registered service.

* Fixed Dockerfile (missing Kubernetes)

* Revert "Fix bug: (#810)" (#823)

This reverts commit 19c80afb05290fac3a144f652cd663c8b513a559.

* remove duplicate `IHttpRequester` register (#819)

* remove duplicate `IHttpRequester` register

* reserve the first

* 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...

* Removed Packing to fix issues, will be sorted out after create a nuget package on Nuget.Org (#831)

* 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.

* Updated FluentValidations Nuget Package (#833)

* Removed Warnings

* Make the full DownstreamContext available to user defined aggregators

This allows error codes to be handled
2019-05-20 15:44:16 +08:00
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