public void ShouldConfigureFromFile() { // Arrange HmacConfigurationManager configurationManager = new HmacConfigurationManager(); HmacConfiguration expectedConfiguration = new HmacConfiguration { Name = "TestConfiguration", UserHeaderName = "X-Test-User", AuthorizationScheme = "TEST", SignatureDataSeparator = "_", SignatureEncoding = "UTF-32", HmacAlgorithm = "HMACSHA256", MaxRequestAge = TimeSpan.FromMinutes(2), SignRequestUri = false, ValidateContentMd5 = true, Headers = new List <string> { "X-Test-Header-1", "X-Test-Header-2" } }; // Act configurationManager.ConfigureFromFile("Hmac.config"); IHmacConfiguration configuration = configurationManager.Get(expectedConfiguration.Name); // Assert AssertConfiguration(expectedConfiguration, configuration); }
public void ShouldGetDefaultConfiguration() { // Arrange HmacConfigurationManager configurationManager = new HmacConfigurationManager(); HmacConfiguration expectedConfiguration = new HmacConfiguration { Name = configurationManager.DefaultConfigurationKey, UserHeaderName = "X-Auth-User", AuthorizationScheme = "HMAC", SignatureDataSeparator = "\n", SignatureEncoding = "UTF-8", HmacAlgorithm = "HMACSHA512", MaxRequestAge = TimeSpan.FromMinutes(5), SignRequestUri = true, ValidateContentMd5 = true, Headers = null }; // Act IHmacConfiguration defaultConfigByKey = configurationManager.Get(configurationManager.DefaultConfigurationKey); IHmacConfiguration defaultConfig = configurationManager.GetDefault(); // Assert AssertConfiguration(expectedConfiguration, defaultConfigByKey); AssertConfiguration(expectedConfiguration, defaultConfig); }
static void Main() { // Retrieve the server URL string serverBaseUrl = ConfigurationManager.AppSettings["ServerBaseUrl"]; // Setup the signer IHmacConfigurationManager configurationManager = new HmacConfigurationManager(); configurationManager.ConfigureFromFile("Hmac.config"); IHmacConfiguration configuration = configurationManager.Get("Example"); IHmacKeyRepository keyRepository = new SingleHmacKeyRepository("FollowTheWhiteRabbit"); IRestSharpHmacSigner signer = new RestSharpHmacSigner(configuration, keyRepository); // Setup the RestSharp client IRestClient client = new RestClient(serverBaseUrl); client.AddHandler("application/json", new JsonDeserializer()); client.Authenticator = new HmacAuthenticator(configuration, signer); client.AddDefaultHeader("X-Custom-Header", "Knock knock..."); // Execute the GET request Console.WriteLine("Neo searches for a spoon."); IRestRequest getRequest = new RestRequest("spoon", Method.GET); getRequest.AddHeader(configuration.UserHeaderName, "Neo"); IRestResponse <ExampleModel> getResponse = client.Execute <ExampleModel>(getRequest); Console.WriteLine(" There is a '{0}'!", getResponse.Data.Value); // Execute the POST request Console.WriteLine("Neo posts his sunglasses."); IRestRequest postRequest = new RestRequest(Method.POST); postRequest.RequestFormat = DataFormat.Json; postRequest.AddHeader(configuration.UserHeaderName, "Neo"); postRequest.AddBody(new ExampleModel { Value = "sunglasses" }); IRestResponse postResponse = client.Execute(postRequest); Console.WriteLine(" {0}", postResponse.Content); // Execute GET request with an incorrect username Console.WriteLine("Morpheus searches for The One."); IRestRequest incorrectGetRequest = new RestRequest("The One", Method.GET); incorrectGetRequest.AddHeader(configuration.UserHeaderName, "Morpheus"); IRestResponse incorrectGetResponse = client.Execute(incorrectGetRequest); Console.WriteLine(" {0}", incorrectGetResponse.Content); #if DEBUG if (Debugger.IsAttached) { Console.WriteLine("Press any key to continue . . ."); Console.ReadKey(true); } #endif }
public void ShouldContainsConfiguration() { // Arrange HmacConfigurationManager configurationManager = new HmacConfigurationManager(); const string existingConfigKey = "TestConfiguration"; const string nonExistingConfigKey = "Wrong_TestConfiguration"; // Act configurationManager.ConfigureFromString(_hmacModifiedConfig, HmacConfigurationFormat.Xml); bool existingConfigFound = configurationManager.Contains(existingConfigKey); bool nonExistingConfigFound = configurationManager.Contains(nonExistingConfigKey); // Assert Assert.IsTrue(existingConfigFound); Assert.IsFalse(nonExistingConfigFound); }
public void ShouldGetAllKeys() { // Arrange HmacConfigurationManager configurationManager = new HmacConfigurationManager(); string[] expectedKeys = { "TestConfiguration", "TestConfiguration2" }; // Act configurationManager.ConfigureFromString(_hmacModifiedConfig, HmacConfigurationFormat.Xml); ICollection <string> keys = configurationManager.GetAllKeys(); // Assert Assert.IsNotNull(keys); Assert.IsTrue(expectedKeys.All(keys.Contains)); }
public void ShouldTryGetConfiguration() { // Arrange HmacConfigurationManager configurationManager = new HmacConfigurationManager(); const string existingConfigKey = "TestConfiguration"; const string nonExistingConfigKey = "Wrong_TestConfiguration"; // Act configurationManager.ConfigureFromString(_hmacModifiedConfig, HmacConfigurationFormat.Xml); IHmacConfiguration existingConfig; IHmacConfiguration nonExistingConfig; bool existingConfigFound = configurationManager.TryGet(existingConfigKey, out existingConfig); bool nonExistingConfigFound = configurationManager.TryGet(nonExistingConfigKey, out nonExistingConfig); // Assert Assert.IsNotNull(existingConfig); Assert.IsNull(nonExistingConfig); Assert.IsTrue(existingConfigFound); Assert.IsFalse(nonExistingConfigFound); }
public void ShouldConfigureFromFileAndWatch() { // Arrange HmacConfigurationManager configurationManager = new HmacConfigurationManager(); const string name = "TestConfiguration"; const string originalAuthScheme = "TEST"; const string modifiedAuthScheme = "TEST_MODIFIED"; // Act configurationManager.ConfigureFromFileAndWatch("Hmac.config"); IHmacConfiguration configuration = configurationManager.Get(name); using (StreamWriter writer = new StreamWriter("Hmac.config", false, Encoding.UTF8)) { writer.Write(_hmacModifiedConfig); writer.Flush(); } Thread.Sleep(1500); IHmacConfiguration modifiedConfiguration = configurationManager.Get(name); IHmacConfiguration defaultConfiguration = configurationManager.Get(configurationManager.DefaultConfigurationKey); using (StreamWriter writer = new StreamWriter("Hmac.config", false, Encoding.UTF8)) { writer.Write(_hmacConfig); writer.Flush(); } // Assert Assert.IsNotNull(configuration); Assert.AreEqual(name, configuration.Name); Assert.AreEqual(originalAuthScheme, configuration.AuthorizationScheme); Assert.IsNotNull(configuration); Assert.AreEqual(name, modifiedConfiguration.Name); Assert.AreEqual(modifiedAuthScheme, modifiedConfiguration.AuthorizationScheme); Assert.IsNotNull(defaultConfiguration); Assert.AreEqual(configurationManager.DefaultConfigurationKey, defaultConfiguration.Name); }