Beispiel #1
0
        public void TestPassword()
        {
            CredentialParams сredential = new CredentialParams();

            сredential.Password = null;
            Assert.Null(сredential.Password);

            сredential.Password = "******";
            Assert.Equal("qwerty", сredential.Password);
        }
Beispiel #2
0
        public void TestAccessKey()
        {
            var сredential = new CredentialParams();

            сredential.AccessKey = null;
            Assert.Null(сredential.AccessKey);

            сredential.AccessKey = "key";
            Assert.Equal("key", сredential.AccessKey);
        }
Beispiel #3
0
        public void TestUsername()
        {
            var сredential = new CredentialParams();

            сredential.Username = null;
            Assert.Null(сredential.Username);

            сredential.Username = "******";
            Assert.Equal("Kate Negrienko", сredential.Username);
        }
Beispiel #4
0
        public void TestStoreKey()
        {
            var сredential = new CredentialParams();

            сredential.StoreKey = null;
            Assert.Null(сredential.StoreKey);

            сredential.StoreKey = "Store key";
            Assert.Equal("Store key", сredential.StoreKey);
            Assert.True(сredential.UseCredentialStore);
        }
Beispiel #5
0
        /// <summary>
        /// Lookups credential parameters by its key.
        /// </summary>
        /// <param name="correlationId">(optional) transaction id to trace execution through call chain.</param>
        /// <param name="key">a key to uniquely identify the credential parameters.</param>
        /// <returns>resolved credential parameters or null if nothing was found.</returns>
        public async Task <CredentialParams> LookupAsync(string correlationId, string key)
        {
            CredentialParams credential = null;

            lock (_lock)
            {
                _items.TryGetValue(key, out credential);
            }

            return(await Task.FromResult(credential));
        }
Beispiel #6
0
 /// <summary>
 /// Reads credentials from configuration parameters.
 /// Each section represents an individual CredentialParams
 /// </summary>
 /// <param name="credentials">configuration parameters to be read</param>
 private void ReadCredentials(ConfigParams credentials)
 {
     lock (_lock)
     {
         _items.Clear();
         foreach (var entry in credentials)
         {
             _items[entry.Key] = CredentialParams.FromString(entry.Value);
         }
     }
 }
Beispiel #7
0
        public void TestAccessKeyWithAnotherParamName()
        {
            var сredential = new CredentialParams();

            сredential.Add("client_key", "client key");

            Assert.Equal("client key", сredential.AccessKey);

            сredential.Add("secret_key", "secret key");
            сredential.Set("client_key", null);
            Assert.Equal("secret key", сredential.AccessKey);
        }
Beispiel #8
0
 /// <summary>
 /// Reads credentials from configuration parameters.
 /// Each section represents an individual CredentialParams
 /// </summary>
 /// <param name="config">configuration parameters to be read</param>
 public void ReadCredentials(ConfigParams config)
 {
     lock (_lock)
     {
         _items.Clear();
         var sections = config.GetSectionNames();
         foreach (var section in sections)
         {
             var value        = config.GetSection(section);
             var creadentials = CredentialParams.FromConfig(value);
             _items.Add(section, creadentials);
         }
     }
 }
Beispiel #9
0
        /// <summary>
        /// Stores credential parameters into the store.
        /// </summary>
        /// <param name="correlationId">(optional) transaction id to trace execution through call chain.</param>
        /// <param name="key">a key to uniquely identify the credential parameters.</param>
        /// <param name="credential">a credential parameters to be stored.</param>
        /// <returns></returns>
        public async Task StoreAsync(string correlationId, string key, CredentialParams credential)
        {
            lock (_lock)
            {
                if (credential != null)
                {
                    _items[key] = credential;
                }
                else
                {
                    _items.Remove(key);
                }
            }

            await Task.Delay(0);
        }
        public async void TestLookupAndStore()
        {
            var config = ConfigParams.FromTuples(
                "key1.username", "user1",
                "key1.password", "pass1",
                "key2.username", "user2",
                "key2.password", "pass2"
                );

            var credentialStore = new MemoryCredentialStore();

            credentialStore.ReadCredentials(config);

            var cred1 = await credentialStore.LookupAsync("123", "key1");

            var cred2 = await credentialStore.LookupAsync("123", "key2");

            Assert.Equal("user1", cred1.Username);
            Assert.Equal("pass1", cred1.Password);
            Assert.Equal("user2", cred2.Username);
            Assert.Equal("pass2", cred2.Password);

            var credConfig = new CredentialParams(
                ConfigParams.FromTuples(
                    "username", "user3",
                    "password", "pass3",
                    "access_id", "123"
                    ));

            await credentialStore.StoreAsync(null, "key3", credConfig);

            var cred3 = await credentialStore.LookupAsync("123", "key3");

            Assert.Equal("user3", cred3.Username);
            Assert.Equal("pass3", cred3.Password);
            Assert.Equal("123", cred3.AccessId);
        }
 /// <summary>
 /// Configures component by passing configuration parameters.
 /// </summary>
 /// <param name="config">configuration parameters to be set.</param>
 /// <param name="configAsDefault">boolean parameter for default configuration. If "true"
 /// the default value will be added to the result.</param>
 public void Configure(ConfigParams config, bool configAsDefault = true)
 {
     _credentials.AddRange(CredentialParams.ManyFromConfig(config, configAsDefault));
 }
        private async Task <CredentialParams> LookupInStoresAsync(string correlationId, CredentialParams credential)
        {
            if (credential.UseCredentialStore == false)
            {
                return(null);
            }

            var key = credential.StoreKey;

            if (_references == null)
            {
                return(null);
            }

            var components = _references.GetOptional(new Descriptor("*", "credential_store", "*", "*", "*"));

            if (components.Count == 0)
            {
                throw new ReferenceException(correlationId, "Credential store wasn't found to make lookup");
            }

            foreach (var component in components)
            {
                var store = component as ICredentialStore;
                if (store != null)
                {
                    var resolvedCredential = await store.LookupAsync(correlationId, key);

                    if (resolvedCredential != null)
                    {
                        return(resolvedCredential);
                    }
                }
            }

            return(null);
        }
 /// <summary>
 /// Adds a new credential to component credentials
 /// </summary>
 /// <param name="connection">new credential parameters to be added</param>
 public void Add(CredentialParams connection)
 {
     _credentials.Add(connection);
 }