public CredentialsService( IDataProtectionProvider dataProtectionProvider, IHttpContextAccessor httpContextAccessor, IConfiguration configuration, IOptions <WitsmlClientCapabilities> clientCapabilities) { dataProtector = dataProtectionProvider.CreateProtector("WitsmlServerPassword").ToTimeLimitedDataProtector(); this.httpContextAccessor = httpContextAccessor; this.configuration = configuration; this.clientCapabilities = clientCapabilities.Value; }
public void ToXml_DefaultObjectWithRequiredProperties_ReturnsExpected() { var expected = @"<capClients version=""1.4.1"" xmlns=""http://www.witsml.org/schemas/1series"">" + @"<capClient apiVers=""1.4.1"">" + "<schemaVersion>1.3.1.1,1.4.1.1</schemaVersion>" + "</capClient>" + "</capClients>"; var defaultObject = new WitsmlClientCapabilities(); var result = defaultObject.ToXml(); Assert.Equal(expected, result); }
public void ToXml_WithNameAndDescription_ReturnsExpected() { var expected = @"<capClients version=""1.4.1"" xmlns=""http://www.witsml.org/schemas/1series"">" + @"<capClient apiVers=""1.4.1"">" + "<schemaVersion>1.3.1.1,1.4.1.1</schemaVersion>" + "<description>Just a test</description>" + "<name>Witsml Explorer</name>" + "</capClient>" + "</capClients>"; var clientCapabilities = new WitsmlClientCapabilities { Name = "Witsml Explorer", Description = "Just a test" }; var result = clientCapabilities.ToXml(); Assert.Equal(expected, result); }
public WitsmlClientProvider( IConfiguration configuration, IHttpContextAccessor httpContextAccessor, ICredentialsService credentialsService, IOptions <WitsmlClientCapabilities> witsmlClientCapabilities) { if (httpContextAccessor.HttpContext == null || httpContextAccessor.HttpContext.Request.Headers["Authorization"].Count == 0) { return; } clientCapabilities = witsmlClientCapabilities.Value; var headers = httpContextAccessor.HttpContext.Request.Headers; var serverUrl = headers[WitsmlServerUrlHeader]; var witsmlServerAccessNeeded = !string.IsNullOrEmpty(serverUrl); if (!witsmlServerAccessNeeded) { return; } var credentials = ExtractCredentialsFromHeader(headers); //This provider will unintentionally be invoked also on initial authentication requests. Doing this to let the authentication route be triggered. var isEncrypted = credentialsService.VerifyIsEncrypted(credentials[0]); if (!isEncrypted) { return; } var logQueries = StringHelpers.ToBoolean(configuration["LogQueries"]); witsmlClient = new WitsmlClient(serverUrl, credentials[0].Username, credentialsService.Decrypt(credentials[0]), clientCapabilities, null, logQueries); var sourceServerUrl = headers[WitsmlSourceServerUrlHeader]; if (string.IsNullOrEmpty(sourceServerUrl) && credentials.Count == 1) { return; } witsmlSourceClient = new WitsmlClient(sourceServerUrl, credentials[1].Username, credentialsService.Decrypt(credentials[1]), clientCapabilities, null, logQueries); }
public void ToXml_WithContactInformation_ReturnsExpected() { var expected = @"<capClients version=""1.4.1"" xmlns=""http://www.witsml.org/schemas/1series"">" + @"<capClient apiVers=""1.4.1"">" + "<schemaVersion>1.3.1.1,1.4.1.1</schemaVersion>" + "<contact>" + "<name>Reodor Felgen</name>" + "<email>[email protected]</email>" + "</contact>" + "</capClient>" + "</capClients>"; var clientCapabilities = new WitsmlClientCapabilities { Contact = new ClientContactInformation { Name = "Reodor Felgen", Email = "*****@*****.**" } }; var result = clientCapabilities.ToXml(); Assert.Equal(expected, result); }