public void HttpHandler_Process_YandexHttpResult_ClearSecureData() { // Arrange var yandexHttpResult = new HttpResult { Url = "http://test.com?user=max&pass=123456", RequestBody = "<auth><user>max</user><pass>123456</pass></auth>", ResponseBody = "<auth user=\"max\" pass=\"123456\"/>" }; var httpHandler = new HttpHandler(); var dataLocationQuery = new HashSet <string> { SecureDataLocation.UrlQuery }; var dataLocationAttribute = new HashSet <string> { SecureDataLocation.XmlAttribute }; var dataLocationElement = new HashSet <string> { SecureDataLocation.XmlElementValue }; var secureKeyUser = "******"; var locationsInfo = new Dictionary <PropertyType, HashSet <string> > { { PropertyType.Url, dataLocationQuery }, { PropertyType.RequestBody, dataLocationElement }, { PropertyType.ResponseBody, dataLocationAttribute } }; var secureDataInfo1 = new SecureDataInfo { SecureKey = secureKeyUser, LocationsInfo = locationsInfo }; var secureKeyPass = "******"; var secureDataInfo2 = new SecureDataInfo { SecureKey = secureKeyPass, LocationsInfo = locationsInfo }; var secureDataInfoList = new List <SecureDataInfo> { secureDataInfo1, secureDataInfo2 }; // Act httpHandler.Process(yandexHttpResult.Url, yandexHttpResult.RequestBody, yandexHttpResult.ResponseBody, secureDataInfoList); // Assert Assert.Equal("http://test.com?user=XXX&pass=XXXXXX", httpHandler.CurrentLog.Url); Assert.Equal("<auth><user>XXX</user><pass>XXXXXX</pass></auth>", httpHandler.CurrentLog.RequestBody); Assert.Equal("<auth user=\"XXX\" pass=\"XXXXXX\" />", httpHandler.CurrentLog.ResponseBody); }
public void SecureDataCleaner_CleanHttpResult_ClearMultipleSecureKeysInUrlProperty_MultipleSecureKeysInMultiplePropertiesCleared() { // Arrange var httpResult = new HttpResult { Url = "http://test.com/users/max/info?pass=123456", RequestBody = "http://test.com?user=max&pass=123456", ResponseBody = "http://test.com?user=max&pass=123456" }; var secureKey1 = "pass"; var locationsInfo1 = new Dictionary <PropertyType, HashSet <string> >(); var dataLocations1 = new HashSet <string> { SecureDataLocation.UrlQuery, }; locationsInfo1.Add(PropertyType.Url, dataLocations1); var secureDataInfo1 = new SecureDataInfo { SecureKey = secureKey1, LocationsInfo = locationsInfo1 }; var secureKey2 = "users"; var locationsInfo2 = new Dictionary <PropertyType, HashSet <string> >(); var dataLocations2 = new HashSet <string> { SecureDataLocation.UrlRest }; locationsInfo2.Add(PropertyType.Url, dataLocations2); var secureDataInfo2 = new SecureDataInfo { SecureKey = secureKey2, LocationsInfo = locationsInfo2 }; var secureDataInfoList = new List <SecureDataInfo>(); secureDataInfoList.Add(secureDataInfo1); secureDataInfoList.Add(secureDataInfo2); var secureDataCleaner = new SecureDataCleaner(secureDataInfoList); var expectedResult = "http://test.com/users/XXX/info?pass=XXXXXX"; // Act var cleanedHttpResult = secureDataCleaner.CleanHttpResult(httpResult); // Assert Assert.Equal(expectedResult, cleanedHttpResult.Url); }
public void SecureDataCleaner_CleanHttpResult_ClearOneSecureKeyInMultipleDataLocationsInMultipleProperties_OneSecureKeyInMultipleDataLocationsInMultiplePropertiesCleared() { // Arrange var httpResult = new HttpResult { Url = "http://test.com/users/max/pass/123/info?pass=123456", RequestBody = "http://test.com/pass/123?user=max&pass=123456", ResponseBody = "http://test.com/pass/123?user=max&pass=123456" }; var secureKey = "pass"; var locationsInfo = new Dictionary <PropertyType, HashSet <string> >(); var dataLocations = new HashSet <string> { SecureDataLocation.UrlQuery, SecureDataLocation.UrlRest }; locationsInfo.Add(PropertyType.Url, dataLocations); locationsInfo.Add(PropertyType.RequestBody, dataLocations); locationsInfo.Add(PropertyType.ResponseBody, dataLocations); var secureDataInfoList = new List <SecureDataInfo>(); var secureDataInfo = new SecureDataInfo { SecureKey = secureKey, LocationsInfo = locationsInfo }; secureDataInfoList.Add(secureDataInfo); var secureDataCleaner = new SecureDataCleaner(secureDataInfoList); var expectedUrl = "http://test.com/users/max/pass/XXX/info?pass=XXXXXX"; var expectedRequestBody = "http://test.com/pass/XXX?user=max&pass=XXXXXX"; var expectedResponseBody = "http://test.com/pass/XXX?user=max&pass=XXXXXX"; // Act var cleanedHttpResult = secureDataCleaner.CleanHttpResult(httpResult); // Assert Assert.Equal(expectedUrl, cleanedHttpResult.Url); Assert.Equal(expectedRequestBody, cleanedHttpResult.RequestBody); Assert.Equal(expectedResponseBody, cleanedHttpResult.ResponseBody); }
static void Main(string[] args) { var httpResult = new HttpResult { Url = "http://test.com/users/max/info?pass=123456", RequestBody = "http://test.com?user=max&pass=123456", ResponseBody = "http://test.com?user=max&pass=123456" }; var dataLocationCustom = new HashSet <string> { "OtherLocation", }; var secureKey = "user"; var locationsInfo1 = new Dictionary <PropertyType, HashSet <string> >(); locationsInfo1.Add(PropertyType.Url, dataLocationCustom); locationsInfo1.Add(PropertyType.RequestBody, dataLocationCustom); locationsInfo1.Add(PropertyType.ResponseBody, dataLocationCustom); var secureDataInfo1 = new SecureDataInfo { SecureKey = secureKey, LocationsInfo = locationsInfo1 }; var secureDataInfoList = new List <SecureDataInfo> { secureDataInfo1, }; var clientCleaner = new ClientCleaner(); var secureDataCleaner = new SecureDataCleaner(secureDataInfoList, clientCleaner); httpResult = secureDataCleaner.CleanHttpResult(httpResult); Console.WriteLine(httpResult.Url); Console.WriteLine(httpResult.RequestBody); Console.WriteLine(httpResult.ResponseBody); }
public void HttpHandler_Process_ExpediaHttpResult_ClearSecureData() { // Arrange var expediaHttpResult = new HttpResult { Url = "http://test.com/users/max/info", RequestBody = @" { user: '******', pass: '******' }", ResponseBody = @" { user: { value: 'max' }, pass: { value: '123456' } }" }; var httpHandler = new HttpHandler(); var dataLocationRest = new HashSet <string> { SecureDataLocation.UrlRest }; var dataLocationAttribute = new HashSet <string> { SecureDataLocation.JsonAttribute }; var dataLocationElement = new HashSet <string> { SecureDataLocation.JsonElementValue }; var secureKeyUsers = "users"; var locationsInfo1 = new Dictionary <PropertyType, HashSet <string> > { { PropertyType.Url, dataLocationRest }, }; var secureDataInfo1 = new SecureDataInfo { SecureKey = secureKeyUsers, LocationsInfo = locationsInfo1 }; var secureKeyPass = "******"; var locationsInfo2 = new Dictionary <PropertyType, HashSet <string> > { { PropertyType.Url, dataLocationRest }, { PropertyType.RequestBody, dataLocationElement }, { PropertyType.ResponseBody, dataLocationAttribute } }; var secureDataInfo2 = new SecureDataInfo { SecureKey = secureKeyPass, LocationsInfo = locationsInfo2 }; var secureKeyUser = "******"; var secureDataInfo3 = new SecureDataInfo { SecureKey = secureKeyUser, LocationsInfo = locationsInfo2 }; var secureDataInfoList = new List <SecureDataInfo> { secureDataInfo1, secureDataInfo2, secureDataInfo3 }; // Act httpHandler.Process(expediaHttpResult.Url, expediaHttpResult.RequestBody, expediaHttpResult.ResponseBody, secureDataInfoList); // Assert Assert.Equal("http://test.com/users/XXX/info", httpHandler.CurrentLog.Url); Assert.Equal("{\"user\":\"XXX\",\"pass\":\"XXXXXX\"}", httpHandler.CurrentLog.RequestBody); Assert.Equal("{\"user\":{\"value\":\"XXX\"},\"pass\":{\"value\":\"XXXXXX\"}}", httpHandler.CurrentLog.ResponseBody); }
public void HttpHandler_Process_BookingcomHttpResult_ClearSecureData() { // Arrange var bookingcomHttpResult = new HttpResult { Url = "http://test.com/users/max/info?pass=123456", RequestBody = "http://test.com?user=max&pass=123456", ResponseBody = "http://test.com?user=max&pass=123456" }; var httpHandler = new HttpHandler(); var dataLocationQuery = new HashSet <string> { SecureDataLocation.UrlQuery }; var dataLocationRest = new HashSet <string> { SecureDataLocation.UrlRest }; var secureKeyUser = "******"; var locationsInfo1 = new Dictionary <PropertyType, HashSet <string> >(); locationsInfo1.Add(PropertyType.RequestBody, dataLocationQuery); locationsInfo1.Add(PropertyType.ResponseBody, dataLocationQuery); var secureDataInfo1 = new SecureDataInfo { SecureKey = secureKeyUser, LocationsInfo = locationsInfo1 }; var secureKeyPass = "******"; var locationsInfo2 = new Dictionary <PropertyType, HashSet <string> >(); locationsInfo2.Add(PropertyType.Url, dataLocationQuery); locationsInfo2.Add(PropertyType.RequestBody, dataLocationQuery); locationsInfo2.Add(PropertyType.ResponseBody, dataLocationQuery); var secureDataInfo2 = new SecureDataInfo { SecureKey = secureKeyPass, LocationsInfo = locationsInfo2 }; var secureKey3 = "users"; var locationsInfo3 = new Dictionary <PropertyType, HashSet <string> >(); locationsInfo3.Add(PropertyType.Url, dataLocationRest); var secureDataInfo3 = new SecureDataInfo { SecureKey = secureKey3, LocationsInfo = locationsInfo3 }; var secureDataInfoList = new List <SecureDataInfo>(); secureDataInfoList.Add(secureDataInfo1); secureDataInfoList.Add(secureDataInfo2); secureDataInfoList.Add(secureDataInfo3); // Act httpHandler.Process(bookingcomHttpResult.Url, bookingcomHttpResult.RequestBody, bookingcomHttpResult.ResponseBody, secureDataInfoList); // Assert Assert.Equal("http://test.com/users/XXX/info?pass=XXXXXX", httpHandler.CurrentLog.Url); Assert.Equal("http://test.com?user=XXX&pass=XXXXXX", httpHandler.CurrentLog.RequestBody); Assert.Equal("http://test.com?user=XXX&pass=XXXXXX", httpHandler.CurrentLog.ResponseBody); }