Browse Source

React to API/namespace changes in aspnet-contrib/AspNet.Security.OpenIdConnect.Server

146759e15e
7f0760bbc7
pull/276/head
Kévin Chalet 10 years ago
parent
commit
cc79326fb4
  1. 2
      samples/Mvc.Server/Controllers/AccountController.cs
  2. 1
      samples/Mvc.Server/Controllers/AuthorizationController.cs
  3. 2
      samples/Mvc.Server/Controllers/ErrorController.cs
  4. 59
      src/OpenIddict.Core/Infrastructure/OpenIddictHelpers.cs
  5. 16
      src/OpenIddict.Core/Infrastructure/OpenIddictProvider.Authentication.cs
  6. 2
      src/OpenIddict.Core/Infrastructure/OpenIddictProvider.Discovery.cs
  7. 1
      src/OpenIddict.Core/Infrastructure/OpenIddictProvider.Exchange.cs
  8. 1
      src/OpenIddict.Core/Infrastructure/OpenIddictProvider.Introspection.cs
  9. 1
      src/OpenIddict.Core/Infrastructure/OpenIddictProvider.Revocation.cs
  10. 1
      src/OpenIddict.Core/Infrastructure/OpenIddictProvider.Serialization.cs
  11. 17
      src/OpenIddict.Core/Infrastructure/OpenIddictProvider.Session.cs
  12. 29
      src/OpenIddict.Core/Managers/OpenIddictApplicationManager.cs
  13. 2
      src/OpenIddict.Core/OpenIddictBuilder.cs
  14. 2
      src/OpenIddict.Core/OpenIddictExtensions.cs
  15. 2
      src/OpenIddict.Mvc/OpenIddictModelBinder.cs
  16. 5
      test/OpenIddict.Core.Tests/Infrastructure/OpenIddictProviderTests.Authentication.cs
  17. 3
      test/OpenIddict.Core.Tests/Infrastructure/OpenIddictProviderTests.Discovery.cs
  18. 2
      test/OpenIddict.Core.Tests/Infrastructure/OpenIddictProviderTests.Exchange.cs
  19. 8
      test/OpenIddict.Core.Tests/Infrastructure/OpenIddictProviderTests.Introspection.cs
  20. 6
      test/OpenIddict.Core.Tests/Infrastructure/OpenIddictProviderTests.Revocation.cs
  21. 3
      test/OpenIddict.Core.Tests/Infrastructure/OpenIddictProviderTests.Serialization.cs
  22. 5
      test/OpenIddict.Core.Tests/Infrastructure/OpenIddictProviderTests.Session.cs
  23. 2
      test/OpenIddict.Core.Tests/Infrastructure/OpenIddictProviderTests.Userinfo.cs
  24. 1
      test/OpenIddict.Core.Tests/Infrastructure/OpenIddictProviderTests.cs
  25. 2
      test/OpenIddict.Core.Tests/OpenIddictBuilderTests.cs
  26. 2
      test/OpenIddict.Core.Tests/OpenIddictExtensionsTests.cs
  27. 1
      test/OpenIddict.Core.Tests/project.json
  28. 2
      test/OpenIddict.Mvc.Tests/OpenIddictModelBinderTests.cs

2
samples/Mvc.Server/Controllers/AccountController.cs

@ -2,7 +2,7 @@
using System.Security.Claims;
using System.Threading.Tasks;
using AspNet.Security.OAuth.Validation;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Primitives;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;

1
samples/Mvc.Server/Controllers/AuthorizationController.cs

@ -7,6 +7,7 @@
using System.Linq;
using System.Threading.Tasks;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Primitives;
using AspNet.Security.OpenIdConnect.Server;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;

2
samples/Mvc.Server/Controllers/ErrorController.cs

@ -4,7 +4,7 @@
* the license and the contributors participating to this project.
*/
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Primitives;
using Microsoft.AspNetCore.Mvc;
using Mvc.Server.ViewModels.Shared;

59
src/OpenIddict.Core/Infrastructure/OpenIddictHelpers.cs

@ -1,59 +0,0 @@
/*
* Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)
* See https://github.com/openiddict/openiddict-core for more information concerning
* the license and the contributors participating to this project.
*/
using System;
using System.Threading.Tasks;
using JetBrains.Annotations;
namespace OpenIddict.Infrastructure {
public static class OpenIddictHelpers {
/// <summary>
/// Determines whether an application is a confidential client.
/// </summary>
/// <typeparam name="TApplication">The type of the Application entity.</typeparam>
/// <param name="manager">The application manager.</param>
/// <param name="application">The application.</param>
/// <returns><c>true</c> if the application is a confidential client, <c>false</c> otherwise.</returns>
public static async Task<bool> IsConfidentialAsync<TApplication>(
[NotNull] this OpenIddictApplicationManager<TApplication> manager,
[NotNull] TApplication application) where TApplication : class {
if (manager == null) {
throw new ArgumentNullException(nameof(manager));
}
if (application == null) {
throw new ArgumentNullException(nameof(application));
}
var type = await manager.GetClientTypeAsync(application);
return string.Equals(type, OpenIddictConstants.ClientTypes.Confidential, StringComparison.OrdinalIgnoreCase);
}
/// <summary>
/// Determines whether an application is a public client.
/// </summary>
/// <typeparam name="TApplication">The type of the Application entity.</typeparam>
/// <param name="manager">The application manager.</param>
/// <param name="application">The application.</param>
/// <returns><c>true</c> if the application is a public client, <c>false</c> otherwise.</returns>
public static async Task<bool> IsPublicAsync<TApplication>(
[NotNull] this OpenIddictApplicationManager<TApplication> manager,
[NotNull] TApplication application) where TApplication : class {
if (manager == null) {
throw new ArgumentNullException(nameof(manager));
}
if (application == null) {
throw new ArgumentNullException(nameof(application));
}
var type = await manager.GetClientTypeAsync(application);
return string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase);
}
}
}

16
src/OpenIddict.Core/Infrastructure/OpenIddictProvider.Authentication.cs

@ -10,6 +10,7 @@ using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Primitives;
using AspNet.Security.OpenIdConnect.Server;
using JetBrains.Annotations;
using Microsoft.AspNetCore.Builder;
@ -20,6 +21,7 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Newtonsoft.Json.Bson;
using Newtonsoft.Json.Linq;
namespace OpenIddict.Infrastructure {
public partial class OpenIddictProvider<TApplication, TAuthorization, TScope, TToken> : OpenIdConnectServerProvider
@ -84,12 +86,14 @@ namespace OpenIddict.Infrastructure {
// Restore the authorization request parameters from the serialized payload.
using (var reader = new BsonReader(new MemoryStream(payload))) {
var serializer = JsonSerializer.CreateDefault();
// Note: JsonSerializer.Populate() automatically preserves
// the original request parameters resolved from the cache
// when parameters with the same names are specified.
serializer.Populate(reader, context.Request);
foreach (var parameter in JObject.Load(reader)) {
// Avoid overriding the current request parameters.
if (context.Request.HasParameter(parameter.Key)) {
continue;
}
context.Request.SetParameter(parameter.Key, parameter.Value);
}
}
}
}

2
src/OpenIddict.Core/Infrastructure/OpenIddictProvider.Discovery.cs

@ -5,7 +5,7 @@
*/
using System.Threading.Tasks;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Primitives;
using AspNet.Security.OpenIdConnect.Server;
using JetBrains.Annotations;
using Microsoft.AspNetCore.Builder;

1
src/OpenIddict.Core/Infrastructure/OpenIddictProvider.Exchange.cs

@ -7,6 +7,7 @@
using System.Diagnostics;
using System.Threading.Tasks;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Primitives;
using AspNet.Security.OpenIdConnect.Server;
using JetBrains.Annotations;
using Microsoft.AspNetCore.Builder;

1
src/OpenIddict.Core/Infrastructure/OpenIddictProvider.Introspection.cs

@ -8,6 +8,7 @@ using System;
using System.Diagnostics;
using System.Threading.Tasks;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Primitives;
using AspNet.Security.OpenIdConnect.Server;
using JetBrains.Annotations;
using Microsoft.Extensions.DependencyInjection;

1
src/OpenIddict.Core/Infrastructure/OpenIddictProvider.Revocation.cs

@ -7,6 +7,7 @@
using System.Diagnostics;
using System.Threading.Tasks;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Primitives;
using AspNet.Security.OpenIdConnect.Server;
using JetBrains.Annotations;
using Microsoft.Extensions.DependencyInjection;

1
src/OpenIddict.Core/Infrastructure/OpenIddictProvider.Serialization.cs

@ -7,6 +7,7 @@
using System;
using System.Threading.Tasks;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Primitives;
using AspNet.Security.OpenIdConnect.Server;
using JetBrains.Annotations;
using Microsoft.Extensions.DependencyInjection;

17
src/OpenIddict.Core/Infrastructure/OpenIddictProvider.Session.cs

@ -7,7 +7,7 @@
using System;
using System.IO;
using System.Threading.Tasks;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Primitives;
using AspNet.Security.OpenIdConnect.Server;
using JetBrains.Annotations;
using Microsoft.AspNetCore.Diagnostics;
@ -17,6 +17,7 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Newtonsoft.Json.Bson;
using Newtonsoft.Json.Linq;
namespace OpenIddict.Infrastructure {
public partial class OpenIddictProvider<TApplication, TAuthorization, TScope, TToken> : OpenIdConnectServerProvider
@ -57,12 +58,14 @@ namespace OpenIddict.Infrastructure {
// Restore the logout request parameters from the serialized payload.
using (var reader = new BsonReader(new MemoryStream(payload))) {
var serializer = JsonSerializer.CreateDefault();
// Note: JsonSerializer.Populate() automatically preserves
// the original request parameters resolved from the cache
// when parameters with the same names are specified.
serializer.Populate(reader, context.Request);
foreach (var parameter in JObject.Load(reader)) {
// Avoid overriding the current request parameters.
if (context.Request.HasParameter(parameter.Key)) {
continue;
}
context.Request.SetParameter(parameter.Key, parameter.Value);
}
}
}
}

29
src/OpenIddict.Core/Managers/OpenIddictApplicationManager.cs

@ -157,6 +157,35 @@ namespace OpenIddict {
return Store.GetTokensAsync(application, CancellationToken);
}
/// <summary>
/// Determines whether an application is a confidential client.
/// </summary>
/// <param name="application">The application.</param>
/// <returns><c>true</c> if the application is a confidential client, <c>false</c> otherwise.</returns>
public async Task<bool> IsConfidentialAsync([NotNull] TApplication application) {
if (application == null) {
throw new ArgumentNullException(nameof(application));
}
var type = await GetClientTypeAsync(application);
return string.Equals(type, OpenIddictConstants.ClientTypes.Confidential, StringComparison.OrdinalIgnoreCase);
}
/// <summary>
/// Determines whether an application is a public client.
/// </summary>
/// <param name="application">The application.</param>
/// <returns><c>true</c> if the application is a public client, <c>false</c> otherwise.</returns>
public async Task<bool> IsPublicAsync(TApplication application) {
if (application == null) {
throw new ArgumentNullException(nameof(application));
}
var type = await GetClientTypeAsync(application);
return string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase);
}
/// <summary>
/// Validates the redirect_uri associated with an application.

2
src/OpenIddict.Core/OpenIddictBuilder.cs

@ -10,7 +10,7 @@ using System.IdentityModel.Tokens.Jwt;
using System.IO;
using System.Reflection;
using System.Security.Cryptography.X509Certificates;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Primitives;
using JetBrains.Annotations;
using Microsoft.AspNetCore.DataProtection;
using Microsoft.AspNetCore.Http;

2
src/OpenIddict.Core/OpenIddictExtensions.cs

@ -5,7 +5,7 @@
*/
using System;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Primitives;
using JetBrains.Annotations;
using Microsoft.Extensions.Caching.Distributed;
using Microsoft.Extensions.DependencyInjection;

2
src/OpenIddict.Mvc/OpenIddictModelBinder.cs

@ -1,6 +1,6 @@
using System;
using System.Threading.Tasks;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Primitives;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Mvc.ModelBinding;
using Microsoft.AspNetCore.Mvc.ModelBinding.Validation;

5
test/OpenIddict.Core.Tests/Infrastructure/OpenIddictProviderTests.Authentication.cs

@ -1,7 +1,8 @@
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Client;
using AspNet.Security.OpenIdConnect.Primitives;
using Microsoft.Extensions.Caching.Distributed;
using Microsoft.Extensions.DependencyInjection;
using Moq;
@ -416,7 +417,7 @@ namespace OpenIddict.Core.Tests.Infrastructure {
var identifier = (string) response[OpenIdConnectConstants.Parameters.RequestId];
// Assert
Assert.Equal(1, response.Count());
Assert.Equal(1, response.GetParameters().Count());
Assert.NotNull(identifier);
cache.Verify(mock => mock.SetAsync(

3
test/OpenIddict.Core.Tests/Infrastructure/OpenIddictProviderTests.Discovery.cs

@ -1,6 +1,7 @@
using System.Linq;
using System.Threading.Tasks;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Client;
using AspNet.Security.OpenIdConnect.Primitives;
using Xunit;
namespace OpenIddict.Core.Tests.Infrastructure {

2
test/OpenIddict.Core.Tests/Infrastructure/OpenIddictProviderTests.Exchange.cs

@ -1,6 +1,8 @@
using System.Security.Claims;
using System.Threading.Tasks;
using AspNet.Security.OpenIdConnect.Client;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Primitives;
using AspNet.Security.OpenIdConnect.Server;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Http.Authentication;

8
test/OpenIddict.Core.Tests/Infrastructure/OpenIddictProviderTests.Introspection.cs

@ -1,7 +1,9 @@
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
using AspNet.Security.OpenIdConnect.Client;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Primitives;
using AspNet.Security.OpenIdConnect.Server;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Http.Authentication;
@ -196,7 +198,7 @@ namespace OpenIddict.Core.Tests.Infrastructure {
});
// Assert
Assert.Equal(1, response.Count());
Assert.Equal(1, response.GetParameters().Count());
Assert.False((bool) response[OpenIdConnectConstants.Claims.Active]);
}
@ -253,7 +255,7 @@ namespace OpenIddict.Core.Tests.Infrastructure {
});
// Assert
Assert.Equal(1, response.Count());
Assert.Equal(1, response.GetParameters().Count());
Assert.False((bool) response[OpenIdConnectConstants.Claims.Active]);
Mock.Get(manager).Verify(mock => mock.FindByIdAsync("3E228451-1555-46F7-A471-951EFBA23A56"), Times.Once());
@ -312,7 +314,7 @@ namespace OpenIddict.Core.Tests.Infrastructure {
});
// Assert
Assert.Equal(1, response.Count());
Assert.Equal(1, response.GetParameters().Count());
Assert.False((bool) response[OpenIdConnectConstants.Claims.Active]);
Mock.Get(manager).Verify(mock => mock.FindByIdAsync("3E228451-1555-46F7-A471-951EFBA23A56"), Times.Once());

6
test/OpenIddict.Core.Tests/Infrastructure/OpenIddictProviderTests.Revocation.cs

@ -3,7 +3,9 @@ using System.IdentityModel.Tokens.Jwt;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
using AspNet.Security.OpenIdConnect.Client;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Primitives;
using AspNet.Security.OpenIdConnect.Server;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Http.Authentication;
@ -300,7 +302,7 @@ namespace OpenIddict.Core.Tests.Infrastructure {
});
// Assert
Assert.Equal(0, response.Count());
Assert.Equal(0, response.GetParameters().Count());
Mock.Get(manager).Verify(mock => mock.FindByIdAsync("3E228451-1555-46F7-A471-951EFBA23A56"), Times.Once());
Mock.Get(manager).Verify(mock => mock.RevokeAsync(It.IsAny<object>()), Times.Never());
@ -343,7 +345,7 @@ namespace OpenIddict.Core.Tests.Infrastructure {
});
// Assert
Assert.Equal(0, response.Count());
Assert.Equal(0, response.GetParameters().Count());
Mock.Get(manager).Verify(mock => mock.FindByIdAsync("3E228451-1555-46F7-A471-951EFBA23A56"), Times.Once());
Mock.Get(manager).Verify(mock => mock.RevokeAsync(token), Times.Once());

3
test/OpenIddict.Core.Tests/Infrastructure/OpenIddictProviderTests.Serialization.cs

@ -1,5 +1,6 @@
using System.Threading.Tasks;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Client;
using AspNet.Security.OpenIdConnect.Primitives;
using Microsoft.Extensions.DependencyInjection;
using Moq;
using Xunit;

5
test/OpenIddict.Core.Tests/Infrastructure/OpenIddictProviderTests.Session.cs

@ -1,6 +1,7 @@
using System.Linq;
using System.Threading.Tasks;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Client;
using AspNet.Security.OpenIdConnect.Primitives;
using Microsoft.Extensions.Caching.Distributed;
using Microsoft.Extensions.DependencyInjection;
using Moq;
@ -100,7 +101,7 @@ namespace OpenIddict.Core.Tests.Infrastructure {
var identifier = (string) response[OpenIdConnectConstants.Parameters.RequestId];
// Assert
Assert.Equal(1, response.Count());
Assert.Equal(1, response.GetParameters().Count());
Assert.NotNull(identifier);
cache.Verify(mock => mock.SetAsync(

2
test/OpenIddict.Core.Tests/Infrastructure/OpenIddictProviderTests.Userinfo.cs

@ -1,6 +1,8 @@
using System.Security.Claims;
using System.Threading.Tasks;
using AspNet.Security.OpenIdConnect.Client;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Primitives;
using AspNet.Security.OpenIdConnect.Server;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Http.Authentication;

1
test/OpenIddict.Core.Tests/Infrastructure/OpenIddictProviderTests.cs

@ -3,6 +3,7 @@ using System.Reflection;
using System.Security.Claims;
using System.Threading.Tasks;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Primitives;
using AspNet.Security.OpenIdConnect.Server;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Builder;

2
test/OpenIddict.Core.Tests/OpenIddictBuilderTests.cs

@ -1,7 +1,7 @@
using System;
using System.IdentityModel.Tokens.Jwt;
using System.Reflection;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Primitives;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.DataProtection;
using Microsoft.AspNetCore.Http;

2
test/OpenIddict.Core.Tests/OpenIddictExtensionsTests.cs

@ -1,5 +1,5 @@
using System;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Primitives;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Builder.Internal;
using Microsoft.AspNetCore.DataProtection;

1
test/OpenIddict.Core.Tests/project.json

@ -8,6 +8,7 @@
},
"dependencies": {
"AspNet.Security.OpenIdConnect.Client": "1.0.0-beta7-*",
"dotnet-test-xunit": "2.2.0-preview2-build1029",
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.TestHost": "1.0.0",

2
test/OpenIddict.Mvc.Tests/OpenIddictModelBinderTests.cs

@ -1,7 +1,7 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using AspNet.Security.OpenIdConnect.Extensions;
using AspNet.Security.OpenIdConnect.Primitives;
using AspNet.Security.OpenIdConnect.Server;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Http.Features;

Loading…
Cancel
Save