mirror of
https://github.com/nsnail/Ocelot.git
synced 2025-04-22 20:12:51 +08:00
parent
1e5a20c2f2
commit
54cdc74293
@ -22,7 +22,7 @@ namespace Ocelot.Authentication.Middleware
|
|||||||
|
|
||||||
public async Task Invoke(DownstreamContext context)
|
public async Task Invoke(DownstreamContext context)
|
||||||
{
|
{
|
||||||
if (IsAuthenticatedRoute(context.DownstreamReRoute))
|
if (context.HttpContext.Request.Method.ToUpper() != "OPTIONS" && IsAuthenticatedRoute(context.DownstreamReRoute))
|
||||||
{
|
{
|
||||||
Logger.LogInformation($"{context.HttpContext.Request.Path} is an authenticated route. {MiddlewareName} checking if client is authenticated");
|
Logger.LogInformation($"{context.HttpContext.Request.Path} is an authenticated route. {MiddlewareName} checking if client is authenticated");
|
||||||
|
|
||||||
|
@ -46,6 +46,20 @@ namespace Ocelot.UnitTests.Authentication
|
|||||||
.BDDfy();
|
.BDDfy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void should_call_next_middleware_if_route_is_using_options_method()
|
||||||
|
{
|
||||||
|
this.Given(x => GivenTheDownStreamRouteIs(
|
||||||
|
new DownstreamReRouteBuilder()
|
||||||
|
.WithUpstreamHttpMethod(new List<string> { "Options" })
|
||||||
|
.WithIsAuthenticated(true)
|
||||||
|
.Build()))
|
||||||
|
.And(x => GivenTheRequestIsUsingOptionsMethod())
|
||||||
|
.When(x => WhenICallTheMiddleware())
|
||||||
|
.Then(x => ThenTheUserIsAuthenticated())
|
||||||
|
.BDDfy();
|
||||||
|
}
|
||||||
|
|
||||||
private void WhenICallTheMiddleware()
|
private void WhenICallTheMiddleware()
|
||||||
{
|
{
|
||||||
_next = (context) => {
|
_next = (context) => {
|
||||||
@ -68,6 +82,11 @@ namespace Ocelot.UnitTests.Authentication
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void GivenTheRequestIsUsingOptionsMethod()
|
||||||
|
{
|
||||||
|
_downstreamContext.HttpContext.Request.Method = "OPTIONS";
|
||||||
|
}
|
||||||
|
|
||||||
private void ThenTheUserIsAuthenticated()
|
private void ThenTheUserIsAuthenticated()
|
||||||
{
|
{
|
||||||
var content = _downstreamContext.HttpContext.Response.Body.AsString();
|
var content = _downstreamContext.HttpContext.Response.Body.AsString();
|
||||||
@ -84,7 +103,7 @@ namespace Ocelot.UnitTests.Authentication
|
|||||||
{
|
{
|
||||||
public static string AsString(this Stream stream)
|
public static string AsString(this Stream stream)
|
||||||
{
|
{
|
||||||
using(var reader = new StreamReader(stream))
|
using (var reader = new StreamReader(stream))
|
||||||
{
|
{
|
||||||
string text = reader.ReadToEnd();
|
string text = reader.ReadToEnd();
|
||||||
return text;
|
return text;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user