Ejemplo n.º 1
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);
        }
Ejemplo n.º 2
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);
        }
        public void PlainTextSignatureMethodDoesNotFetchCertificate()
        {
            var repository = new MockRepository();

            var consumerStore = repository.DynamicMock <IConsumerStore>();
            var signer        = repository.StrictMock <IOAuthContextSigner>();

            var context = new OAuthContext {
                ConsumerKey = "key", SignatureMethod = SignatureMethod.PlainText
            };

            using (repository.Record())
            {
                Expect.Call(signer.ValidateSignature(null, null)).IgnoreArguments().Return(true);
            }
            using (repository.Playback())
            {
                var inspector = new SignatureValidationInspector(consumerStore, signer);
                inspector.InspectContext(ProviderPhase.GrantRequestToken, context);
            }
        }
        public void InvalidSignatureThrows()
        {
            var repository = new MockRepository();

            var consumerStore = repository.DynamicMock <IConsumerStore>();
            var signer        = repository.StrictMock <IOAuthContextSigner>();

            var context = new OAuthContext {
                ConsumerKey = "key", SignatureMethod = SignatureMethod.PlainText
            };

            using (repository.Record())
            {
                Expect.Call(signer.ValidateSignature(null, null)).IgnoreArguments().Return(false);
            }
            using (repository.Playback())
            {
                var inspector = new SignatureValidationInspector(consumerStore, signer);
                var ex        = Assert.Throws <OAuthException>(() => inspector.InspectContext(ProviderPhase.GrantRequestToken, context));
                Assert.Equal("Failed to validate signature", ex.Message);
            }
        }