mirror of
https://github.com/microsoft/onefuzz.git
synced 2025-06-11 09:41:37 +00:00
Handle the case where the secret is not serialized as json (#3223)
This commit is contained in:
parent
a941020a11
commit
db1e489e55
@ -15,7 +15,7 @@ public interface ISecretsOperations {
|
||||
return new SecretData<T>(new SecretAddress<T>(address));
|
||||
}
|
||||
|
||||
public Task<T?> GetSecretValue<T>(ISecret<T> data);
|
||||
public Task<T?> GetSecretValue<T>(ISecret<T> data) where T : class;
|
||||
|
||||
Task<Uri> StoreSecret(ISecret secret);
|
||||
|
||||
@ -52,14 +52,20 @@ public class SecretsOperations : ISecretsOperations {
|
||||
};
|
||||
}
|
||||
|
||||
public async Task<T?> GetSecretValue<T>(ISecret<T> data) {
|
||||
public async Task<T?> GetSecretValue<T>(ISecret<T> data) where T : class {
|
||||
switch ((data)) {
|
||||
case SecretAddress<T> secretAddress:
|
||||
var secretValue = (await GetSecret(secretAddress.Url))?.Value;
|
||||
if (secretValue is null)
|
||||
return default;
|
||||
|
||||
if (typeof(T) == typeof(string)) {
|
||||
return secretValue as T;
|
||||
}
|
||||
|
||||
return JsonSerializer.Deserialize<T>(secretValue, EntityConverter.GetJsonSerializerOptions());
|
||||
|
||||
|
||||
case SecretValue<T> sValue:
|
||||
return sValue.Value;
|
||||
|
||||
|
@ -20,7 +20,7 @@ namespace Tests {
|
||||
|
||||
private readonly ConcurrentDictionary<Guid, string> _secrets = new();
|
||||
|
||||
public Task<T?> GetSecretValue<T>(ISecret<T> data) {
|
||||
public Task<T?> GetSecretValue<T>(ISecret<T> data) where T : class {
|
||||
switch (data) {
|
||||
case SecretAddress<T> secretAddress:
|
||||
var key = Guid.Parse(secretAddress.Url.Authority);
|
||||
|
Loading…
x
Reference in New Issue
Block a user