Fix bad merge

- not exactly logging at the right spot in `GetAndStoreTokens()`
- test helpers were creating two separate `ServiceCollections`
 - also didn't compile!
This commit is contained in:
Doug Bunting 2016-02-09 16:43:01 -08:00
parent 73695fc443
commit c85badcf71
2 changed files with 18 additions and 21 deletions

View File

@ -50,19 +50,22 @@ namespace Microsoft.AspNetCore.Antiforgery.Internal
var antiforgeryContext = GetTokensInternal(httpContext); var antiforgeryContext = GetTokensInternal(httpContext);
var tokenSet = Serialize(antiforgeryContext); var tokenSet = Serialize(antiforgeryContext);
if (!antiforgeryContext.HaveStoredNewCookieToken && antiforgeryContext.NewCookieToken != null) if (!antiforgeryContext.HaveStoredNewCookieToken)
{ {
// Serialize handles the new cookie token string. if (antiforgeryContext.NewCookieToken != null)
Debug.Assert(antiforgeryContext.NewCookieTokenString != null); {
// Serialize handles the new cookie token string.
Debug.Assert(antiforgeryContext.NewCookieTokenString != null);
SaveCookieTokenAndHeader(httpContext, antiforgeryContext.NewCookieTokenString); SaveCookieTokenAndHeader(httpContext, antiforgeryContext.NewCookieTokenString);
antiforgeryContext.HaveStoredNewCookieToken = true; antiforgeryContext.HaveStoredNewCookieToken = true;
_logger.NewCookieToken(); _logger.NewCookieToken();
} }
else else
{ {
_logger.ReusedCookieToken(); _logger.ReusedCookieToken();
}
} }
return tokenSet; return tokenSet;

View File

@ -6,7 +6,6 @@ using System.Security.Claims;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Http.Internal; using Microsoft.AspNetCore.Http.Internal;
using Microsoft.AspNetCore.Testing;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
@ -878,28 +877,23 @@ namespace Microsoft.AspNetCore.Antiforgery.Internal
loggerFactory: loggerFactory); loggerFactory: loggerFactory);
} }
private IServiceProvider GetServices() private IServiceProvider GetServices(IAntiforgeryContextAccessor contextAccessor)
{ {
var builder = new ServiceCollection(); var builder = new ServiceCollection();
builder.AddSingleton<IAntiforgeryContextAccessor>(contextAccessor);
builder.AddSingleton<ILoggerFactory>(new LoggerFactory()); builder.AddSingleton<ILoggerFactory>(new LoggerFactory());
return builder.BuildServiceProvider(); return builder.BuildServiceProvider();
} }
private HttpContext GetHttpContext(IAntiforgeryContextAccessor contextAccessor) private HttpContext GetHttpContext(IAntiforgeryContextAccessor contextAccessor = null)
{ {
var httpContext = new DefaultHttpContext(); var httpContext = new DefaultHttpContext();
contextAccessor = contextAccessor ?? new DefaultAntiforgeryContextAccessor();
httpContext.RequestServices = GetServices(); httpContext.RequestServices = GetServices(contextAccessor);
httpContext.User = new ClaimsPrincipal(new ClaimsIdentity("some-auth")); httpContext.User = new ClaimsPrincipal(new ClaimsIdentity("some-auth"));
contextAccessor = contextAccessor ?? new DefaultAntiforgeryContextAccessor();
var serviceCollection = new ServiceCollection();
serviceCollection.AddSingleton<IAntiforgeryContextAccessor>(contextAccessor);
httpContext.RequestServices = serviceCollection.BuildServiceProvider();
return httpContext; return httpContext;
} }