hack: disable authorization + add fake identity service which takes userID straight from the header

This commit is contained in:
kct949 2023-02-11 13:01:23 +01:00
parent eef41bbf8a
commit 792866c8d5
5 changed files with 74 additions and 13 deletions

View File

@ -1,6 +1,7 @@
namespace Microsoft.eShopOnContainers.Services.Basket.API.Controllers; namespace Microsoft.eShopOnContainers.Services.Basket.API.Controllers;
[Route("api/v1/[controller]")] [Route("api/v1/[controller]")]
// HACK: no auth
// [Authorize] // [Authorize]
[ApiController] [ApiController]
public class BasketController : ControllerBase public class BasketController : ControllerBase
@ -56,8 +57,11 @@ public class BasketController : ControllerBase
return BadRequest(); return BadRequest();
} }
var userName = this.HttpContext.User.FindFirst(x => x.Type == ClaimTypes.Name).Value; // HACK: no auth
// Authorization is disabled so the Name claim will not be available
// var userName = this.HttpContext.User.FindFirst(x => x.Type == ClaimTypes.Name).Value;
var userName = "Dummy User Name";
var eventMessage = new UserCheckoutAcceptedIntegrationEvent(userId, userName, basketCheckout.City, basketCheckout.Street, var eventMessage = new UserCheckoutAcceptedIntegrationEvent(userId, userName, basketCheckout.City, basketCheckout.Street,
basketCheckout.State, basketCheckout.Country, basketCheckout.ZipCode, basketCheckout.CardNumber, basketCheckout.CardHolderName, basketCheckout.State, basketCheckout.Country, basketCheckout.ZipCode, basketCheckout.CardNumber, basketCheckout.CardHolderName,
basketCheckout.CardExpiration, basketCheckout.CardSecurityNumber, basketCheckout.CardTypeId, basketCheckout.Buyer, basketCheckout.RequestId, basket); basketCheckout.CardExpiration, basketCheckout.CardSecurityNumber, basketCheckout.CardTypeId, basketCheckout.Buyer, basketCheckout.RequestId, basket);

View File

@ -1,17 +1,41 @@
namespace Microsoft.eShopOnContainers.Services.Basket.API.Services; namespace Microsoft.eShopOnContainers.Services.Basket.API.Services;
public class IdentityService : IIdentityService public class IdentityServiceFake : IIdentityService
{ {
private IHttpContextAccessor _context; private IHttpContextAccessor _context;
public IdentityService(IHttpContextAccessor context) public IdentityServiceFake(IHttpContextAccessor context)
{ {
_context = context ?? throw new ArgumentNullException(nameof(context)); _context = context ?? throw new ArgumentNullException(nameof(context));
} }
public string GetUserIdentity() public string GetUserIdentity()
{ {
return _context.HttpContext.User.FindFirst("sub").Value; if (_context.HttpContext
.Request
.Headers
.TryGetValue("user-id", out var value))
{
return value.Single();
}
return null;
} }
} }
// HACK: no auth
// public class IdentityService : IIdentityService
// {
// private IHttpContextAccessor _context;
//
// public IdentityService(IHttpContextAccessor context)
// {
// _context = context ?? throw new ArgumentNullException(nameof(context));
// }
//
// public string GetUserIdentity()
// {
// return _context.HttpContext.User.FindFirst("sub").Value;
// }
// }

View File

@ -135,7 +135,9 @@ public class Startup
}); });
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>(); services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
services.AddTransient<IBasketRepository, RedisBasketRepository>(); services.AddTransient<IBasketRepository, RedisBasketRepository>();
services.AddTransient<IIdentityService, IdentityService>(); // HACK: no auth
// services.AddTransient<IIdentityService, IdentityService>();
services.AddTransient<IIdentityService, IdentityServiceFake>();
services.AddOptions(); services.AddOptions();

View File

@ -1,21 +1,50 @@
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Services; namespace Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Services;
public class IdentityService : IIdentityService public class IdentityServiceFake : IIdentityService
{ {
private IHttpContextAccessor _context; private IHttpContextAccessor _context;
public IdentityService(IHttpContextAccessor context) public IdentityServiceFake(IHttpContextAccessor context)
{ {
_context = context ?? throw new ArgumentNullException(nameof(context)); _context = context ?? throw new ArgumentNullException(nameof(context));
} }
public string GetUserIdentity() public string GetUserIdentity()
{ {
return _context.HttpContext.User.FindFirst("sub").Value; if (_context.HttpContext
.Request
.Headers
.TryGetValue("user-id", out var value))
{
return value.Single();
}
return null;
} }
public string GetUserName() public string GetUserName()
{ {
return _context.HttpContext.User.Identity.Name; return "Dummy User Name";
} }
} }
// HACK: no auth
// public class IdentityService : IIdentityService
// {
// private IHttpContextAccessor _context;
//
// public IdentityService(IHttpContextAccessor context)
// {
// _context = context ?? throw new ArgumentNullException(nameof(context));
// }
//
// public string GetUserIdentity()
// {
// return _context.HttpContext.User.FindFirst("sub").Value;
// }
//
// public string GetUserName()
// {
// return _context.HttpContext.User.Identity.Name;
// }
// }

View File

@ -250,7 +250,9 @@ static class CustomExtensionsMethods
public static IServiceCollection AddCustomIntegrations(this IServiceCollection services, IConfiguration configuration) public static IServiceCollection AddCustomIntegrations(this IServiceCollection services, IConfiguration configuration)
{ {
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>(); services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
services.AddTransient<IIdentityService, IdentityService>(); // HACK: no auth
// services.AddTransient<IIdentityService, IdentityService>();
services.AddTransient<IIdentityService, IdentityServiceFake>();
services.AddTransient<Func<DbConnection, IIntegrationEventLogService>>( services.AddTransient<Func<DbConnection, IIntegrationEventLogService>>(
sp => (DbConnection c) => new IntegrationEventLogService(c)); sp => (DbConnection c) => new IntegrationEventLogService(c));