mirror of
https://github.com/microsoft/onefuzz.git
synced 2025-06-12 18:18:08 +00:00
Handle the case where the secret is not serialized as json (#3223)
This commit is contained in:
@ -15,7 +15,7 @@ public interface ISecretsOperations {
|
|||||||
return new SecretData<T>(new SecretAddress<T>(address));
|
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);
|
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)) {
|
switch ((data)) {
|
||||||
case SecretAddress<T> secretAddress:
|
case SecretAddress<T> secretAddress:
|
||||||
var secretValue = (await GetSecret(secretAddress.Url))?.Value;
|
var secretValue = (await GetSecret(secretAddress.Url))?.Value;
|
||||||
if (secretValue is null)
|
if (secretValue is null)
|
||||||
return default;
|
return default;
|
||||||
|
|
||||||
|
if (typeof(T) == typeof(string)) {
|
||||||
|
return secretValue as T;
|
||||||
|
}
|
||||||
|
|
||||||
return JsonSerializer.Deserialize<T>(secretValue, EntityConverter.GetJsonSerializerOptions());
|
return JsonSerializer.Deserialize<T>(secretValue, EntityConverter.GetJsonSerializerOptions());
|
||||||
|
|
||||||
|
|
||||||
case SecretValue<T> sValue:
|
case SecretValue<T> sValue:
|
||||||
return sValue.Value;
|
return sValue.Value;
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ namespace Tests {
|
|||||||
|
|
||||||
private readonly ConcurrentDictionary<Guid, string> _secrets = new();
|
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) {
|
switch (data) {
|
||||||
case SecretAddress<T> secretAddress:
|
case SecretAddress<T> secretAddress:
|
||||||
var key = Guid.Parse(secretAddress.Url.Authority);
|
var key = Guid.Parse(secretAddress.Url.Authority);
|
||||||
|
Reference in New Issue
Block a user