Example #1
0
            public void AuthenticateTestForValidRequests(AuthenticationTestFixture testCase)
            {
                var escher = new Escher { Config = testCase.config.ToEscherConfig() };

                var apiKey = escher.Authenticate(testCase.request, testCase.KeyDb, testCase.config.DateTime);

                Assert.AreEqual(testCase.expected.apiKey, apiKey);
            }
Example #2
0
            public void AuthenticateTestForValidRequests(AuthenticationTestFixture testCase)
            {
                var escher = new Escher {
                    Config = testCase.config.ToEscherConfig()
                };

                var apiKey = escher.Authenticate(testCase.request, testCase.KeyDb, testCase.config.DateTime);

                Assert.AreEqual(testCase.expected.apiKey, apiKey);
            }
Example #3
0
            public void AuthenticateTestForInvalidRequests(AuthenticationTestFixture testCase)
            {
                var escher = new Escher { Config = testCase.config.ToEscherConfig() };

                try
                {
                    escher.Authenticate(testCase.request, testCase.KeyDb, testCase.config.DateTime);

                    Assert.Fail("Authentication should have failed");
                }
                catch (EscherAuthenticationException e)
                {
                    Assert.AreEqual(testCase.expected.error, e.Message);
                }
            }
Example #4
0
            public void AuthenticateTestForInvalidRequests(AuthenticationTestFixture testCase)
            {
                var escher = new Escher {
                    Config = testCase.config.ToEscherConfig()
                };

                try
                {
                    escher.Authenticate(testCase.request, testCase.KeyDb, testCase.config.DateTime);

                    Assert.Fail("Authentication should have failed");
                }
                catch (EscherAuthenticationException e)
                {
                    Assert.AreEqual(testCase.expected.error, e.Message);
                }
            }
Example #5
0
            public void AuthenticateSignedGetRequest()
            {
                var escher  = new Escher();
                var request = new TestRequest
                {
                    Method  = "GET",
                    Uri     = new Uri("http://localhost:1234/asd?a=b"),
                    Headers = new List <Header> {
                        new Header("key", "value")
                    }
                };

                request = escher.SignRequest(request, "escher_key", "escher_key_secret");

                var validatedKey = escher.Authenticate(request, new TestKeyDb());

                Assert.AreEqual("escher_key", validatedKey);
            }
Example #6
0
        public async Task Invoke(IDictionary <string, object> env)
        {
            var context = new OwinContext(env);

            try
            {
                var escherKey = escher.Authenticate(new OwinRequestAdapter(context.Request), keyDb);

                logger(string.Format("EscherAuth successful for {0}", escherKey));

                context.Request.User = new GenericPrincipal(new GenericIdentity(escherKey), new string[] { });
            }
            catch (EscherAuthenticationException e)
            {
                logger(string.Format("EscherAuth failed for {0} because {1}", context.Request.Uri, e.Message));
            }

            await next(env);
        }
Example #7
0
            public void AuthenticateSignedPatchRequest()
            {
                var escher  = new Escher();
                var request = new TestRequest
                {
                    Method  = "PATCH",
                    Uri     = new Uri("http://localhost:1234/users/123"),
                    Headers = new List <Header> {
                        new Header("Content-Type", "application/json")
                    },
                    Body = "{\"name\":\"Joe\"}"
                };

                request = escher.SignRequest(request, "escher_key", "escher_key_secret");

                var validatedKey = escher.Authenticate(request, new TestKeyDb());

                Assert.AreEqual("escher_key", validatedKey);
            }
Example #8
0
            public void AuthenticateSignedPatchRequest()
            {
                var escher = new Escher();
                var request = new TestRequest
                {
                    Method = "PATCH",
                    Uri = new Uri("http://localhost:1234/users/123"),
                    Headers = new List<Header> { new Header("Content-Type", "application/json") },
                    Body = "{\"name\":\"Joe\"}"
                };
                request = escher.SignRequest(request, "escher_key", "escher_key_secret");

                var validatedKey = escher.Authenticate(request, new TestKeyDb());
                Assert.AreEqual("escher_key", validatedKey);
            }
Example #9
0
            public void AuthenticateSignedGetRequest()
            {
                var escher = new Escher();
                var request = new TestRequest
                {
                    Method = "GET",
                    Uri = new Uri("http://localhost:1234/asd?a=b"),
                    Headers = new List<Header> { new Header("key", "value") }
                };
                request = escher.SignRequest(request, "escher_key", "escher_key_secret");

                var validatedKey = escher.Authenticate(request, new TestKeyDb());
                Assert.AreEqual("escher_key", validatedKey);
            }