mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-04-12 12:06:58 +00:00
parent
babc3e4f1a
commit
2787c7fc52
5 changed files with 95 additions and 85 deletions
|
|
@ -25,7 +25,11 @@ namespace PepperDash.Essentials.Core
|
|||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Set secret for item in the CrestronSecretsProvider
|
||||
/// </summary>
|
||||
/// <param name="key">Secret Key</param>
|
||||
/// <param name="value">Secret Value</param>
|
||||
public void SetSecret(string key, object value)
|
||||
{
|
||||
var secret = value as string;
|
||||
|
|
@ -34,7 +38,6 @@ namespace PepperDash.Essentials.Core
|
|||
Debug.Console(2, this, "Unable to set secret for {0}:{1} - value is empty.", Key, key);
|
||||
return;
|
||||
}
|
||||
Debug.Console(2, this, "Attempting to set Secret to {0}", secret);
|
||||
var setErrorCode = CrestronDataStoreStatic.SetLocalStringValue(key, secret);
|
||||
switch (setErrorCode)
|
||||
{
|
||||
|
|
@ -47,6 +50,11 @@ namespace PepperDash.Essentials.Core
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Retrieve secret for item in the CrestronSecretsProvider
|
||||
/// </summary>
|
||||
/// <param name="key">Secret Key</param>
|
||||
/// <returns>ISecret Object containing key, provider, and value</returns>
|
||||
public ISecret GetSecret(string key)
|
||||
{
|
||||
string mySecret;
|
||||
|
|
@ -56,7 +64,6 @@ namespace PepperDash.Essentials.Core
|
|||
{
|
||||
case CrestronDataStore.CDS_ERROR.CDS_SUCCESS:
|
||||
Debug.Console(2, this, "Secret Successfully retrieved for {0}:{1}", Key, key);
|
||||
Debug.Console(2, this, "Retreived Secret = {0}", mySecret);
|
||||
return new CrestronSecret(key, mySecret, this);
|
||||
default:
|
||||
Debug.Console(2, this, Debug.ErrorLogLevel.Notice, "Unable to retrieve secret for {0}:{1} - {2}",
|
||||
|
|
@ -66,6 +73,9 @@ namespace PepperDash.Essentials.Core
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Special container class for CrestronSecret provider
|
||||
/// </summary>
|
||||
public class CrestronSecret : ISecret
|
||||
{
|
||||
public ISecretProvider Provider { get; private set; }
|
||||
|
|
|
|||
|
|
@ -2,6 +2,9 @@
|
|||
|
||||
namespace PepperDash.Essentials.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// All ISecrecretProvider classes must implement this interface.
|
||||
/// </summary>
|
||||
public interface ISecretProvider : IKeyed
|
||||
{
|
||||
void SetSecret(string key, object value);
|
||||
|
|
@ -9,6 +12,9 @@ namespace PepperDash.Essentials.Core
|
|||
ISecret GetSecret(string key);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// interface for delivering secrets in Essentials.
|
||||
/// </summary>
|
||||
public interface ISecret
|
||||
{
|
||||
ISecretProvider Provider { get; }
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@ namespace PepperDash.Essentials.Core
|
|||
{
|
||||
public static List<ISecretProvider> Secrets { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Initialize the SecretsManager
|
||||
/// </summary>
|
||||
public static void Initialize()
|
||||
{
|
||||
Secrets = new List<ISecretProvider> {new CrestronSecretsProvider("default")};
|
||||
|
|
@ -30,6 +33,11 @@ namespace PepperDash.Essentials.Core
|
|||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method to return a ISecretProvider to Set, Get, and Delete Secrets
|
||||
/// </summary>
|
||||
/// <param name="key">Secret Provider Key</param>
|
||||
/// <returns></returns>
|
||||
public static ISecretProvider GetSecretProviderByKey(string key)
|
||||
{
|
||||
var secret = Secrets.FirstOrDefault(o => o.Key == key);
|
||||
|
|
|
|||
|
|
@ -7,6 +7,9 @@ using Newtonsoft.Json;
|
|||
|
||||
namespace PepperDash.Essentials.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// Provide a way to easily deserialize into a secret object from config
|
||||
/// </summary>
|
||||
public class SecretsPropertiesConfig
|
||||
{
|
||||
[JsonProperty("provider")]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue