Пример #1
0
        public void InspectContextForUniqueNoncePasses()
        {
            var nonceStore = MockRepository.GenerateStub <INonceStore>();

            var context = new OAuthContext {
                Nonce = "2"
            };

            nonceStore.Stub(stub => stub.RecordNonceAndCheckIsUnique(context, "2")).Return(true);

            var inspector = new NonceStoreInspector(nonceStore);

            Assert.DoesNotThrow(() => inspector.InspectContext(ProviderPhase.GrantRequestToken, context));
        }
Пример #2
0
        /// <summary>
        /// Load your modules or register your services here!
        /// </summary>
        /// <param name="kernel">The kernel.</param>
        private static void RegisterServices(IKernel kernel)
        {
            kernel.Bind <IOAuthContextBuilder>().To <OAuthContextBuilder>();
            var nonceStoreInspector         = new NonceStoreInspector(new TestNonceStore());
            var consumerStore               = new TestConsumerStore();
            var signatureInspector          = new SignatureValidationInspector(consumerStore);
            var consumerValidationInspector = new ConsumerValidationInspector(consumerStore);
            var timestampInspector          = new TimestampRangeInspector(new TimeSpan(1, 0, 0));
            var tokenRepository             = new TokenRepository();
            var tokenStore    = new SampleMemoryTokenStore(tokenRepository);
            var oauthProvider = new OAuthProvider(tokenStore, consumerValidationInspector, nonceStoreInspector, timestampInspector, signatureInspector);

            kernel.Bind <IOAuthProvider>().ToConstant(oauthProvider);
            kernel.Bind <TokenRepository>().ToConstant(tokenRepository);
        }
Пример #3
0
        public override void Load()
        {
            Bind <IOAuthContextBuilder>().To <OAuthContextBuilder>();
            var nonceStoreInspector         = new NonceStoreInspector(new TestNonceStore());
            var consumerStore               = new TestConsumerStore();
            var signatureInspector          = new SignatureValidationInspector(consumerStore);
            var consumerValidationInspector = new ConsumerValidationInspector(consumerStore);
            var timestampInspector          = new TimestampRangeInspector(new TimeSpan(1, 0, 0));
            var tokenRepository             = new TokenRepository();
            var tokenStore    = new SampleMemoryTokenStore(tokenRepository);
            var oauthProvider = new OAuthProvider(tokenStore, consumerValidationInspector, nonceStoreInspector, timestampInspector, signatureInspector);

            Bind <IOAuthProvider>().ToConstant(oauthProvider);
            Bind <TokenRepository>().ToConstant(tokenRepository);
        }
Пример #4
0
        public void InspectContextForRepeatedNonceThrows()
        {
            var nonceStore = MockRepository.GenerateStub <INonceStore>();

            var context = new OAuthContext {
                Nonce = "1"
            };

            nonceStore.Stub(stub => stub.RecordNonceAndCheckIsUnique(context, "1")).Return(false);

            var inspector = new NonceStoreInspector(nonceStore);

            var ex = Assert.Throws <OAuthException>(() => inspector.InspectContext(ProviderPhase.GrantRequestToken, context));

            Assert.Equal("The nonce value \"1\" has already been used", ex.Message);
        }
        public void InspectContextForUniqueNoncePasses()
        {
            var repository = new MockRepository();

            var nonceStore = repository.StrictMock <INonceStore>();
            var context    = new OAuthContext {
                Nonce = "2"
            };

            using (repository.Record())
            {
                Expect.Call(nonceStore.RecordNonceAndCheckIsUnique(context, "2")).Return(true);
            }
            using (repository.Playback())
            {
                var inspector = new NonceStoreInspector(nonceStore);
                inspector.InspectContext(ProviderPhase.GrantRequestToken, context);
            }
        }