in src/Amazon.AspNetCore.DataProtection.SSM/ExtensionMethods.cs [53:81]
public static IDataProtectionBuilder PersistKeysToAWSSystemsManager(this IDataProtectionBuilder builder, string parameterNamePrefix, Action<PersistOptions> setupAction = null)
{
if (builder == null)
{
throw new ArgumentNullException(nameof(builder));
}
builder.Services.TryAddAWSService<IAmazonSimpleSystemsManagement>();
builder.Services.AddSingleton<IConfigureOptions<KeyManagementOptions>>(services =>
{
var ssmOptions = new PersistOptions();
setupAction?.Invoke(ssmOptions);
var ssmClient = services.GetService<IAmazonSimpleSystemsManagement>();
var loggerFactory = services.GetService<ILoggerFactory>() ?? NullLoggerFactory.Instance;
return new ConfigureOptions<KeyManagementOptions>(options =>
{
options.XmlRepository = new SSMXmlRepository(ssmClient, parameterNamePrefix, ssmOptions, loggerFactory);
});
});
#if NET9_0_OR_GREATER
builder.Services.AddSingleton<IKeyManager, XmlDeletableKeyManager>();
#endif
return builder;
}