514 Commits

Author SHA1 Message Date
Nick Sharp
6209681b2c Adding code ##BROKEN TESTS## 2017-06-26 11:50:58 +01:00
TomPallister
26e7621798 fixed stupid double request bug from bad merge 2017-06-25 22:07:19 +01:00
TomPallister
4d3d3e1bc0 changes to get this going again 2017-06-25 21:46:59 +01:00
Tom Gardham-Pallister
e96d66139f boost test coverage 2017-06-24 13:04:25 +01:00
Tom Gardham-Pallister
6cdf4e67df can now use tokens from ocelot a on ocelot b when using admin area 2017-06-23 15:17:40 +01:00
TomPallister
2d94884c6f trying to get cluster working 2017-06-23 11:25:23 +01:00
TomPallister
6c1b95f95b fixed some broken tests due to recent merges! 2017-06-10 15:52:31 +01:00
TomPallister
190c967655 Merge branch 'master' into develop 2017-06-10 15:20:37 +01:00
Tom Pallister
6ff976f964 Merge pull request #104 from juancash/checking-identity-server
Identity Server - Check's issues with Audience and AllowedScopes
2017-06-10 15:16:15 +01:00
Tom Pallister
c8564d81e1 Merge pull request #97 from juancash/case-sensitive-routing-fix
Updated CharactersDontMatch method
2017-06-10 14:31:23 +01:00
geffzhang
4d8da86950 refactor: Refactor HttpClientHttpRequester Httpclient queue 2017-06-03 22:57:45 +08:00
geffzhang
0b09644d7e Fix Ratelimit every day, every minute, every hour logic bugs 2017-06-03 22:51:11 +08:00
geffzhang
02162dd7a6 RoundRobin loadblancer cause config error https://github.com/TomPallister/Ocelot/issues/103 2017-06-03 22:32:47 +08:00
Juan Carlos Santana Herrera
efa68e9949 Allowed scopes checking added to AuthorisationMiddleware.
Acceptance tests added.
2017-05-31 18:27:28 +01:00
Juan Carlos Santana Herrera
07671b8fdb Updated all IdentityServer packages. 2017-05-19 14:46:25 +01:00
Juan Carlos Santana Herrera
7748262ecf Updated IdentityServer4.AccessTokenValidation package from 1.0.2 to 1.2.0.
The removed version had a known issue with the audience check.
2017-05-19 11:49:35 +01:00
Juan Carlos Santana Herrera
ac49022274 Updated CharactersDontMatch method.
At this point the comparer must ignore case sensitive.
2017-05-09 19:02:26 +01:00
Philip Wood
0507806aae Rough first go at test coverage. Might need tidying up. 2017-05-06 17:53:44 +01:00
Juan Carlos Santana Herrera
24f7b9a171 UpstreamHttpMethod property (of class FileReRoute) changes from string to List<string>. 2017-05-05 11:47:28 +01:00
Juan Carlos Santana Herrera
e91da1ac23 Add the possibility of set mutiple verbs in the UpstreamHttpMethod property.
Add UnitTests and AcceptanceTests to try this feature.
2017-05-04 10:56:16 +01:00
tom.pallister
be3a2fb6ed Change to fix issue not setting content type header 2017-04-28 13:04:40 +01:00
TomPallister
1a76c9fbd9 Merge branch 'master' into develop 2017-04-23 15:40:50 +01:00
Juan Carlos Santana Herrera
b8ee43c737 Adds the posibility of use final paths in the reroutes of configuration.json file.
Adds a unit test method to test the functionality.
2017-04-20 11:05:46 +01:00
Philip Wood
80e728aa00 Made changes based on PR comments. Also added lots more tests! 2017-04-19 20:12:08 +01:00
Philip Wood
878eacf1db Remove obsolete code 2017-04-18 15:35:54 +01:00
Philip Wood
a1c6ab4ce4 Get rest of unit tests working 2017-04-18 15:16:27 +01:00
Philip Wood
7c1a277147 Fixed some unit tests 2017-04-18 14:05:15 +01:00
Philip Wood
8b93f44077 Fix request id middleware 2017-04-18 11:05:37 +01:00
Philip Wood
da922c0e04 Initial mapping of request 2017-04-18 10:13:10 +01:00
Philip Wood
eeb8f691c7 Very hacky proof of concept 2017-04-17 21:25:04 +01:00
Marc Denman
637d93dc4b Use DiagnosticListner for middleware logging
Instead of each middleware having to log that it has started and ended,
the DianosticListner package allows for capturing of these events in a
lightwieght manner.

This commit implements this and removes unncessary logging from most
middleware.
2017-04-17 11:23:34 +01:00
TomPallister
c3cd181b90 added a new implementation that stores the ocelot config in consul kv store, had to change some major things and add cache settings as default 2017-04-16 19:35:59 +01:00
geffzhang
81e2e8a5be refactor : ConcurrentDictionary and ConcurrentQueue replace MemoryCache for cache HttpClient 2017-04-04 16:06:27 +08:00
Tom Pallister
f58da434ba Merge pull request #70 from MarcDenman/feature/updateLogging
Update logging
2017-03-19 15:57:28 +00:00
Marc Denman
34be5a2955 Update middelware to use logging extension methods 2017-03-18 18:33:51 +00:00
Marc Denman
ad81b7a305 Update OcelotLogger to accept name of class
OcelotLogger now has a property called "Name" intended to store the name
of the type for which the logger has been built for. This is intended to
keep the code a little bit cleaner and also allows for a few extention
methods for common logging scenarios
2017-03-18 18:30:09 +00:00
geffzhang
aa66fdddd3 Merge branch 'develop' of https://github.com/geffzhang/Ocelot into develop 2017-03-18 19:58:04 +08:00
geffzhang
faf6d40d73 refactor: TryAddSingleton replace AddSingleton 2017-03-18 19:56:08 +08:00
geffzhang
18d4013e61 Fix: This string.Equals Method Windows is normal, but running under Centos, due to a case of the string problem, seems to be. NET core implementation issues on a Linux system is case sensitive.
Modifications are as follows
            var applicableReRoutes = configuration.Data.ReRoutes.Where(r => string.Equals(r.UpstreamHttpMethod.Method.ToLower(), upstreamHttpMethod.ToLower(), StringComparison.CurrentCultureIgnoreCase));
2017-03-16 20:13:27 +08:00
Marc Denman
82ecd667e0 Merged in develop 2017-03-14 21:50:03 +00:00
David Derman
a3b387aeb1 Renamed ScopeName to ApiName, ScopeSecret to ApiSecret, and
AdditionalScopes to Allowed Scoped in order to be more consistent with
Identity Server naming conventions.
2017-03-14 16:54:55 -04:00
Marc Denman
9774580c4e Change logging for various middleware
As part #35 logging is being checked. This commit changes the first four
middlewares within the pipeline to be more standardised.

Also added an extension method to easily print out the errors from a list
of errors.
2017-03-14 17:43:24 +00:00
Marc Denman
0ad41aa3fa Add LogError(string) to logger
Added LogError(string) to interface as sometimes there isn't an exception
to be logged. Additionally, split Logger and LoggerFactory implementations
into seperate files just for tidiness.

Additonally added some very basic unit tests to the HttpDataRepository as
a bit of regression safety and to prove that Get never returns a null.

Slightly refactored the logic within AspDotNetLogger under
GetMessageWithOcelotRequestId so that the if statement is a little easier
to read. Attempted to remove the requestId == null, however this broke
numerous tests as the mocks don't set the behviour for dataReposioty
getting the requestId
2017-03-14 11:52:44 +00:00
Marc Denman
c01f778bf9 Add LogTrace to IOcelotLogger
Previously only LogDebug and LogError were implemented, however this
could/will lead to very noisy logging. Implementing trace should allow a
better seperation when debugging.
2017-03-14 10:06:53 +00:00
Marc Denman
a007887461 Add MiddelwareName into base OcelotMiddleware
Following TomPallister suggestion, it makes sense to call GetType only
once and in the constructor (middlewares are only instantiated once). I
have also taken the oppturniuty to add it as a property on the base
middleware allowing any other middleware to utlise it as well.
2017-03-14 09:45:07 +00:00
Marc Denman
0c33323352 Change HttpStatusCodeMapper not to wrap responses
As part of #66 we realised that the implementation of
IErrorToHttpStatusCodeMapper would always return a wrapped StatusCode
within an OK response, in turn meaning that ResponderMiddleware would
never fall into the else branch for returning a 500.

This commit removes the wrapping of the status code and removes the unused
logic for generating the 500 status code, giving the mapper full
responsbility for generating the correct status code.
2017-03-14 09:15:19 +00:00
Marc Denman
3fb83077fb Changed log messages to be a bit more descriptive 2017-03-13 17:23:09 +00:00
Marc Denman
0ec7fc44ad Change all ctor's to use IOcelotLoggerFactory
As part of #35 we are we are standardising on using IOcelotLoggerFactory
over the default ILogger for DI purposes. Following a sln search, the use
of ILogger was only found in one place (FileOcelotConfigurationCreator)
and it's corresponding tests.

This commit changes them and ensures the unit tests still pass.
2017-03-13 11:44:02 +00:00
TomPallister
efec217cab changes suggest by mr mash 2017-03-11 09:13:50 +00:00
TomPallister
c49a1c9004 removed a bunch of orig files checked in by accident 2017-03-09 17:00:51 +00:00