mirror of
https://github.com/bitwarden/server.git
synced 2025-12-12 18:30:24 -06:00
* Add logging to token usages * Add settings manipulation of log levels * Maintain no logging for dev * Log exception causing Token failure in TryUnprotect * dotnet format 🤖 * Added deconstruction operator on new debug logs. * Split off log level settings into separate files * Improve log messages * dotnet format 🤖 * Fix token serialization * Final review notes Co-authored-by: Todd Martin <>
79 lines
4.2 KiB
C#
79 lines
4.2 KiB
C#
using Bit.Core.Models.Business.Tokenables;
|
|
using Bit.Core.OrganizationFeatures.OrganizationApiKeys;
|
|
using Bit.Core.OrganizationFeatures.OrganizationApiKeys.Interfaces;
|
|
using Bit.Core.OrganizationFeatures.OrganizationConnections;
|
|
using Bit.Core.OrganizationFeatures.OrganizationConnections.Interfaces;
|
|
using Bit.Core.OrganizationFeatures.OrganizationSponsorships.FamiliesForEnterprise;
|
|
using Bit.Core.OrganizationFeatures.OrganizationSponsorships.FamiliesForEnterprise.Cloud;
|
|
using Bit.Core.OrganizationFeatures.OrganizationSponsorships.FamiliesForEnterprise.Interfaces;
|
|
using Bit.Core.OrganizationFeatures.OrganizationSponsorships.FamiliesForEnterprise.SelfHosted;
|
|
using Bit.Core.Services;
|
|
using Bit.Core.Settings;
|
|
using Bit.Core.Tokens;
|
|
using Microsoft.AspNetCore.DataProtection;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
namespace Bit.Core.OrganizationFeatures;
|
|
|
|
public static class OrganizationServiceCollectionExtensions
|
|
{
|
|
public static void AddOrganizationServices(this IServiceCollection services, IGlobalSettings globalSettings)
|
|
{
|
|
services.AddScoped<IOrganizationService, OrganizationService>();
|
|
services.AddTokenizers();
|
|
services.AddOrganizationConnectionCommands();
|
|
services.AddOrganizationSponsorshipCommands(globalSettings);
|
|
services.AddOrganizationApiKeyCommands();
|
|
}
|
|
|
|
private static void AddOrganizationConnectionCommands(this IServiceCollection services)
|
|
{
|
|
services.AddScoped<ICreateOrganizationConnectionCommand, CreateOrganizationConnectionCommand>();
|
|
services.AddScoped<IDeleteOrganizationConnectionCommand, DeleteOrganizationConnectionCommand>();
|
|
services.AddScoped<IUpdateOrganizationConnectionCommand, UpdateOrganizationConnectionCommand>();
|
|
}
|
|
|
|
private static void AddOrganizationSponsorshipCommands(this IServiceCollection services, IGlobalSettings globalSettings)
|
|
{
|
|
services.AddScoped<ICreateSponsorshipCommand, CreateSponsorshipCommand>();
|
|
services.AddScoped<IRemoveSponsorshipCommand, RemoveSponsorshipCommand>();
|
|
services.AddScoped<ISendSponsorshipOfferCommand, SendSponsorshipOfferCommand>();
|
|
services.AddScoped<ISetUpSponsorshipCommand, SetUpSponsorshipCommand>();
|
|
services.AddScoped<IValidateRedemptionTokenCommand, ValidateRedemptionTokenCommand>();
|
|
services.AddScoped<IValidateSponsorshipCommand, ValidateSponsorshipCommand>();
|
|
services.AddScoped<IValidateBillingSyncKeyCommand, ValidateBillingSyncKeyCommand>();
|
|
services.AddScoped<IOrganizationSponsorshipRenewCommand, OrganizationSponsorshipRenewCommand>();
|
|
services.AddScoped<ICloudSyncSponsorshipsCommand, CloudSyncSponsorshipsCommand>();
|
|
services.AddScoped<ISelfHostedSyncSponsorshipsCommand, SelfHostedSyncSponsorshipsCommand>();
|
|
services.AddScoped<ISelfHostedSyncSponsorshipsCommand, SelfHostedSyncSponsorshipsCommand>();
|
|
services.AddScoped<ICloudSyncSponsorshipsCommand, CloudSyncSponsorshipsCommand>();
|
|
services.AddScoped<IValidateBillingSyncKeyCommand, ValidateBillingSyncKeyCommand>();
|
|
if (globalSettings.SelfHosted)
|
|
{
|
|
services.AddScoped<IRevokeSponsorshipCommand, SelfHostedRevokeSponsorshipCommand>();
|
|
}
|
|
else
|
|
{
|
|
services.AddScoped<IRevokeSponsorshipCommand, CloudRevokeSponsorshipCommand>();
|
|
}
|
|
}
|
|
|
|
private static void AddOrganizationApiKeyCommands(this IServiceCollection services)
|
|
{
|
|
services.AddScoped<IGetOrganizationApiKeyCommand, GetOrganizationApiKeyCommand>();
|
|
services.AddScoped<IRotateOrganizationApiKeyCommand, RotateOrganizationApiKeyCommand>();
|
|
}
|
|
|
|
private static void AddTokenizers(this IServiceCollection services)
|
|
{
|
|
services.AddSingleton<IDataProtectorTokenFactory<OrganizationSponsorshipOfferTokenable>>(serviceProvider =>
|
|
new DataProtectorTokenFactory<OrganizationSponsorshipOfferTokenable>(
|
|
OrganizationSponsorshipOfferTokenable.ClearTextPrefix,
|
|
OrganizationSponsorshipOfferTokenable.DataProtectorPurpose,
|
|
serviceProvider.GetDataProtectionProvider(),
|
|
serviceProvider.GetRequiredService<ILogger<DataProtectorTokenFactory<OrganizationSponsorshipOfferTokenable>>>())
|
|
);
|
|
}
|
|
}
|