コード例 #1
0
 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;
 }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }