Browse Source

Backport the none flow removal to OpenIddict 1.x

pull/553/head
Kévin Chalet 8 years ago
parent
commit
43b00fcf31
  1. 5
      src/OpenIddict/OpenIddictProvider.Authentication.cs
  2. 21
      test/OpenIddict.Tests/OpenIddictProviderTests.Authentication.cs

5
src/OpenIddict/OpenIddictProvider.Authentication.cs

@ -118,9 +118,8 @@ namespace OpenIddict
var logger = context.HttpContext.RequestServices.GetRequiredService<ILogger<OpenIddictProvider<TApplication, TAuthorization, TScope, TToken>>>();
// Note: the OpenID Connect server middleware supports authorization code, implicit, hybrid,
// none and custom flows but OpenIddict uses a stricter policy rejecting unknown flows.
if (!context.Request.IsAuthorizationCodeFlow() && !context.Request.IsHybridFlow() &&
!context.Request.IsImplicitFlow() && !context.Request.IsNoneFlow())
// none and custom flows but OpenIddict uses a stricter policy rejecting none and custum flows.
if (!context.Request.IsAuthorizationCodeFlow() && !context.Request.IsHybridFlow() && !context.Request.IsImplicitFlow())
{
logger.LogError("The authorization request was rejected because the '{ResponseType}' " +
"response type is not supported.", context.Request.ResponseType);

21
test/OpenIddict.Tests/OpenIddictProviderTests.Authentication.cs

@ -115,6 +115,27 @@ namespace OpenIddict.Tests
Assert.Equal("The specified 'request_id' parameter is invalid.", response.ErrorDescription);
}
[Fact]
public async Task ValidateAuthorizationRequest_NoneFlowIsRejected()
{
// Arrange
var server = CreateAuthorizationServer();
var client = new OpenIdConnectClient(server.CreateClient());
// Act
var response = await client.PostAsync(AuthorizationEndpoint, new OpenIdConnectRequest
{
ClientId = "Fabrikam",
RedirectUri = "http://www.fabrikam.com/path",
ResponseType = OpenIdConnectConstants.ResponseTypes.None
});
// Assert
Assert.Equal(OpenIdConnectConstants.Errors.UnsupportedResponseType, response.Error);
Assert.Equal("The specified 'response_type' parameter is not supported.", response.ErrorDescription);
}
[Fact]
public async Task ValidateAuthorizationRequest_UnknownResponseTypeParameterIsRejected()
{

Loading…
Cancel
Save