public void Consumer_AuthorizeUser()
        {
            //arrange
            var provider = A.Fake<IOAuthProvider>();
            IConsumer consumer = new ConsumerFactory(options, provider)
                .CreateConsumer();

            var request_token = "requestToken";
            var request_token_secret = "requestTokenSecret";
            var authorize_url = new Uri("http://expectedUrl");
            var verifier = "verifier";
            var getRequestTokenRequestResult = string.Format("oauth_token={0}&oauth_token_secret={1}&oauth_expires_in=124&xoauth_request_auth_url={2}",
                request_token,
                request_token_secret,
                authorize_url);

            var access_token = "accessToken";
            var access_token_secret = "accessTokenSecret";
            var tokenInfo = new TokenInfo
            {
                AccessToken = access_token,
                AccessTokenSecret = access_token_secret,
            };

            var getAccessTokenRequestResult = string.Format("oauth_token={0}&oauth_token_secret={1}&oauth_expires_in=124&oauth_session_handle=12334&oauth_authorization_expires_in=1234",
                access_token,
                access_token_secret);

            A.CallTo(() => provider.GetRequestTokenRequest(
                A<string>._, A<string>._, A<string>._, A<string>._, A<SignatureMethod>._))
                .Returns(getRequestTokenRequestResult);

            A.CallTo(() => provider.GetGetAccessTokenRequest(
                A<string>._, A<string>._, A<string>._, A<string>._, A<SignatureMethod>._, A<string>._, A<string>._))
                .Returns(getAccessTokenRequestResult);

            //act
            consumer.RequestLogin();
            var actualTokenInfo = consumer.AuthorizeUser(verifier);

            //assert
            A.CallTo(() => provider.GetRequestTokenRequest(
                options.RequestTokenUrl,
                options.ConsumerKey,
                options.ConsumerSecret,
                options.RequestTokenResponseCallbackUrl,
                options.SignatureMethod));

            A.CallTo(() => provider.GetGetAccessTokenRequest(
                options.AccessTokenUrl,
                options.ConsumerKey,
                options.ConsumerSecret,
                request_token_secret,
                options.SignatureMethod,
                request_token,
                verifier));

            Assert.AreEqual(tokenInfo.AccessToken, actualTokenInfo.AccessToken);
            Assert.AreEqual(tokenInfo.AccessTokenSecret, actualTokenInfo.AccessTokenSecret);
        }
        public void ConsumerFactory_CanCreateConsumer()
        {
            IConsumerFactory factory = new ConsumerFactory(options);

            IConsumer consumer = factory.CreateConsumer();
            Assert.IsNotNull(consumer);
            Assert.AreEqual(factory.ConsumerOptions, consumer.ConsumerOptions);
        }
        public void Consumer_CanAuthorizeUserAsync()
        {
            //arrange
            options.RequestTokenResponseCallbackUrl =  TU.GenerateLocalHostBaseAddress();
            IConsumer consumer = new ConsumerFactory(options)
                .CreateConsumer();
            string verifier = null;
            var lisnrManualResetEvent = new ManualResetEvent(false);
            var requestLoginManualEvent = new ManualResetEvent(false);
            var authorizeUserManualEvent = new ManualResetEvent(false);

            Task<Uri> task = consumer.RequestLoginAsync();
            task.ContinueWith(uri => requestLoginManualEvent.Set());
            requestLoginManualEvent.WaitOne();

            Process.Start(task.Result.ToString());

            var listener = new HttpListener();
            listener.Prefixes.Add(options.RequestTokenResponseCallbackUrl);
            listener.Start();

            listener.BeginGetContext(
                ((r) =>
                {
                    var lisnr = (HttpListener)r.AsyncState;
                    var context = lisnr.EndGetContext(r);
                    var rq = context.Request.GetRequestParameters();
                    verifier = rq.Where(p => p.Name == "oauth_verifier")
                        .Select(p => p.Value)
                        .First();

                    lisnrManualResetEvent.Set();
                }),
            listener);

            lisnrManualResetEvent.WaitOne();
            ((IDisposable)listener).Dispose();

            //act
            //assert

            Task<TokenInfo> authorizeUserTask = consumer.AuthorizeUserAsync(verifier);
            task.ContinueWith(token => authorizeUserManualEvent.Set());
            authorizeUserManualEvent.WaitOne();

            //assert
            Assert.IsFalse(authorizeUserTask.IsFaulted);
            Assert.IsNull(authorizeUserTask.Exception);
            Assert.IsNotNull(authorizeUserTask.Result);
        }
        public void Conumser_CanGetUserFantasySports_Information()
        {
            //arrange
            options.RequestTokenResponseCallbackUrl = TU.GenerateLocalHostBaseAddress();
            IConsumer consumer = new ConsumerFactory(options)
                .CreateConsumer();
            string verifier = null;

            var uri = consumer.RequestLogin();
            Process.Start(uri.ToString());

            var listener = new HttpListener();
            listener.Prefixes.Add(options.RequestTokenResponseCallbackUrl);
            listener.Start();

            var manualResetEvent = new ManualResetEvent(false);

            listener.BeginGetContext(
                ((r) =>
                {
                    var lisnr = (HttpListener)r.AsyncState;
                    var context = lisnr.EndGetContext(r);
                    var rq = context.Request.GetRequestParameters();
                    verifier = rq.Where(p => p.Name == "oauth_verifier")
                        .Select(p => p.Value)
                        .First();

                    manualResetEvent.Set();
                }),
            listener);

            manualResetEvent.WaitOne();
            ((IDisposable)listener).Dispose();

            var accessToken = consumer.AuthorizeUser(verifier);
            //act

            var request = consumer.CreateHttpRequest("http://fantasysports.yahooapis.com/fantasy/v2/users;use_login=1/games", HttpMethod.GET);

            using (var response = request.GetResponse() as HttpWebResponse)
            {
                Assert.IsNotNull(response);
                Assert.IsTrue(response.StatusCode == HttpStatusCode.OK);
            }
        }
 public static IDisposable Subscribe <T>(
     this IRillConsumable <T> consumable,
     NewEventHandler <T> onNew,
     SuccessfulEventHandler?onAllSucceeded = null,
     FailedEventHandler?onAnyFailed        = null)
 => consumable.Subscribe(ConsumerFactory.SynchronousConsumer(onNew, onAllSucceeded, onAnyFailed));
        public void Consumer_CanRequestLoginAsync()
        {
            //arrange
            IConsumer consumer = new ConsumerFactory(options)
                .CreateConsumer();
            var manualResetEvent = new ManualResetEvent(false);

            //act
            Task<Uri> task = consumer.RequestLoginAsync();
            task.ContinueWith(uri => manualResetEvent.Set());
            manualResetEvent.WaitOne();

            //assert
            Assert.IsFalse(task.IsFaulted);
            Assert.IsNull(task.Exception);
            Assert.IsNotNull(task.Result);
        }
        public void Conumser_CanAuthorizeUser()
        {
            //arrange
            options.RequestTokenResponseCallbackUrl = TU.GenerateLocalHostBaseAddress();
            IConsumer consumer = new ConsumerFactory(options)
                .CreateConsumer();
            string verifier = null;

            var uri = consumer.RequestLogin();
            Process.Start(uri.ToString());

            var listener = new HttpListener();
            listener.Prefixes.Add(options.RequestTokenResponseCallbackUrl);
            listener.Start();

            var manualResetEvent = new ManualResetEvent(false);

            listener.BeginGetContext(
                ((r) =>
                {
                    var lisnr = (HttpListener)r.AsyncState;
                    var context = lisnr.EndGetContext(r);
                    var rq = context.Request.GetRequestParameters();
                    verifier = rq.Where(p => p.Name == "oauth_verifier")
                        .Select(p => p.Value)
                        .First();

                    manualResetEvent.Set();
                }),
            listener);

            manualResetEvent.WaitOne();
            ((IDisposable)listener).Dispose();
            //act
            //assert
            Assert.IsNotNull(consumer.AuthorizeUser(verifier)); //Access Token
        }
Exemple #8
0
 public WordpressToken(IOptionsMonitor <ILog> optionsMonitor, TokenHelper tokenHelper, ConsumerFactory consumerFactory)
 {
     Log             = optionsMonitor.CurrentValue;
     TokenHelper     = tokenHelper;
     ConsumerFactory = consumerFactory;
 }
 public OAuth20TokenHelper(IHttpContextAccessor httpContextAccessor, ConsumerFactory consumerFactory)
 {
     HttpContextAccessor = httpContextAccessor;
     ConsumerFactory     = consumerFactory;
 }
 public void ConsumerFactory_CanInitializeConsumerFactory()
 {
     IConsumerFactory factory = new ConsumerFactory(options);
     Assert.AreEqual(options, factory.ConsumerOptions);
 }
Exemple #11
0
        public void Consumer_CanRequestLogin_InvalidUrlReturned_ThrowsException()
        {
            //arrange
            var provider = A.Fake<IOAuthProvider>();
            IConsumer consumer = new ConsumerFactory(options, provider)
                .CreateConsumer();
            var expectedUrl = "expectedUrl";
            var result = string.Format("oauth_token=1234&oauth_token_secret=1234&oauth_expires_in=124&xoauth_request_auth_url={0}", expectedUrl);
            A.CallTo(() => provider.GetRequestTokenRequest(
                A<string>._, A<string>._, A<string>._, A<string>._, A<SignatureMethod>._))
                .Returns(result);

            try
            {
                //act
                var actualUrl = consumer.RequestLogin();
            }
            catch (UriFormatException)
            {
                //assert
                A.CallTo(() => provider.GetRequestTokenRequest(
                    options.RequestTokenUrl,
                    options.ConsumerKey,
                    options.ConsumerSecret,
                    options.RequestTokenResponseCallbackUrl,
                    options.SignatureMethod));
                return;
            }
            Assert.Fail("UriFormatException expected");
        }
Exemple #12
0
 public OneDriveStorage(ConsumerFactory consumerFactory)
 {
     ConsumerFactory = consumerFactory;
 }
        public void Consumer_CannotRequestLoginAsync_InvalidConsumerKey_TaskFaultedWithException()
        {
            //arrange
            options.ConsumerKey = "InvalidConsumerKey";
            IConsumer consumer = new ConsumerFactory(options)
                .CreateConsumer();

            try
            {
                //act
                Task<Uri> task = consumer.RequestLoginAsync();
                task.Wait();
            }
            catch (AggregateException ex)
            {
                //assert
                Assert.IsNotNull(ex.InnerException);
                Assert.IsInstanceOfType(ex.InnerException, typeof(CommunicationException));
            }
        }
Exemple #14
0
 /// <summary>
 /// </summary>
 /// <param name="context"></param>
 /// <param name="fileStorageService"></param>
 public FilesControllerHelper(
     ApiContext context,
     FileStorageService <T> fileStorageService,
     GlobalFolderHelper globalFolderHelper,
     FileWrapperHelper fileWrapperHelper,
     FilesSettingsHelper filesSettingsHelper,
     FilesLinkUtility filesLinkUtility,
     FileUploader fileUploader,
     DocumentServiceHelper documentServiceHelper,
     TenantManager tenantManager,
     SecurityContext securityContext,
     FolderWrapperHelper folderWrapperHelper,
     FileOperationWraperHelper fileOperationWraperHelper,
     FileShareWrapperHelper fileShareWrapperHelper,
     FileShareParamsHelper fileShareParamsHelper,
     EntryManager entryManager,
     UserManager userManager,
     WebItemSecurity webItemSecurity,
     CoreBaseSettings coreBaseSettings,
     ThirdpartyConfiguration thirdpartyConfiguration,
     MessageService messageService,
     CommonLinkUtility commonLinkUtility,
     DocumentServiceConnector documentServiceConnector,
     FolderContentWrapperHelper folderContentWrapperHelper,
     WordpressToken wordpressToken,
     WordpressHelper wordpressHelper,
     ConsumerFactory consumerFactory,
     EasyBibHelper easyBibHelper,
     ChunkedUploadSessionHelper chunkedUploadSessionHelper,
     ProductEntryPoint productEntryPoint)
 {
     ApiContext                 = context;
     FileStorageService         = fileStorageService;
     GlobalFolderHelper         = globalFolderHelper;
     FileWrapperHelper          = fileWrapperHelper;
     FilesSettingsHelper        = filesSettingsHelper;
     FilesLinkUtility           = filesLinkUtility;
     FileUploader               = fileUploader;
     DocumentServiceHelper      = documentServiceHelper;
     TenantManager              = tenantManager;
     SecurityContext            = securityContext;
     FolderWrapperHelper        = folderWrapperHelper;
     FileOperationWraperHelper  = fileOperationWraperHelper;
     FileShareWrapperHelper     = fileShareWrapperHelper;
     FileShareParamsHelper      = fileShareParamsHelper;
     EntryManager               = entryManager;
     UserManager                = userManager;
     WebItemSecurity            = webItemSecurity;
     CoreBaseSettings           = coreBaseSettings;
     ThirdpartyConfiguration    = thirdpartyConfiguration;
     ConsumerFactory            = consumerFactory;
     BoxLoginProvider           = ConsumerFactory.Get <BoxLoginProvider>();
     DropboxLoginProvider       = ConsumerFactory.Get <DropboxLoginProvider>();
     GoogleLoginProvider        = ConsumerFactory.Get <GoogleLoginProvider>();
     OneDriveLoginProvider      = ConsumerFactory.Get <OneDriveLoginProvider>();
     MessageService             = messageService;
     CommonLinkUtility          = commonLinkUtility;
     DocumentServiceConnector   = documentServiceConnector;
     FolderContentWrapperHelper = folderContentWrapperHelper;
     WordpressToken             = wordpressToken;
     WordpressHelper            = wordpressHelper;
     EasyBibHelper              = easyBibHelper;
     ChunkedUploadSessionHelper = chunkedUploadSessionHelper;
     ProductEntryPoint          = productEntryPoint;
 }
 public ScopeTelegramLauncher(TenantManager tenantManager, TelegramHandler telegramHandler, ConsumerFactory consumerFactory)
 {
     TelegramLoginProvider = consumerFactory.Get <TelegramLoginProvider>();
     TenantManager         = tenantManager;
     Handler = telegramHandler;
 }
Exemple #16
0
 public PluginsConfig(ConsumerFactory consumerFactory, BaseCommonLinkUtility baseCommonLinkUtility)
 {
     ConsumerFactory       = consumerFactory;
     BaseCommonLinkUtility = baseCommonLinkUtility;
 }
Exemple #17
0
 public ProviderManager(Signature signature, InstanceCrypto instanceCrypto, ConsumerFactory consumerFactory)
 {
     Signature       = signature;
     InstanceCrypto  = instanceCrypto;
     ConsumerFactory = consumerFactory;
 }
        public Cluster(Configuration configuration, ILogger logger, NodeFactory nodeFactory, ProducerFactory producerFactory, ConsumerFactory consumerFactory, IStatistics statistics = null)
        {
            _configuration    = configuration;
            _seeds            = configuration.Seeds;
            Logger            = logger;
            Statistics        = statistics ?? new Statistics();
            _timeoutScheduler = new TimeoutScheduler(configuration.ClientRequestTimeoutMs / 2);

            _pools = InitPools(Statistics, configuration);

            // Producer init
            ProduceRouter = producerFactory != null?producerFactory() : new ProduceRouter(this, configuration, _pools.MessageBuffersPool);

            ProduceRouter.MessageExpired += (t, m) =>
            {
                Statistics.UpdateExpired();
                UpdateExited(1);
            };
            ProduceRouter.MessagesAcknowledged += (t, c) =>
            {
                Statistics.UpdateSuccessfulSent(c);
                UpdateExited(c);
                SignalSeenTopic(t);
            };
            ProduceRouter.MessageDiscarded += (t, m) =>
            {
                Statistics.UpdateDiscarded();
                UpdateExited(1);
            };
            RoutingTableChange += ProduceRouter.ChangeRoutingTable;
            ProduceRouter.BrokerTimeoutError += Statistics.UpdateBrokerTimeoutError;
            ProduceRouter.MessageReEnqueued  += Statistics.UpdateMessageRetry;
            ProduceRouter.MessagePostponed   += Statistics.UpdateMessagePostponed;

            // Consumer init
            ConsumeRouter = consumerFactory != null?consumerFactory() : new ConsumeRouter(this, configuration);

            ConsumeRouter.MessageReceived += _ => Statistics.UpdateReceived();
            if (ConsumeRouter is ConsumeRouter)
            {
                (ConsumeRouter as ConsumeRouter).InternalError +=
                    ex => Logger.LogError("An unexpected error occured in the consumer: " + ex);
            }
            RoutingTableChange += ConsumeRouter.ChangeRoutingTable;

            // Node factory
            var clientId   = Encoding.UTF8.GetBytes(configuration.ClientId);
            var serializer = new Node.Serialization(configuration.SerializationConfig, configuration.Compatibility, _pools.RequestsBuffersPool, clientId, configuration.RequiredAcks, configuration.RequestTimeoutMs,
                                                    configuration.CompressionCodec, configuration.FetchMinBytes, configuration.FetchMaxWaitTime);

            _nodeFactory = nodeFactory ??
                           ((h, p) =>
                            new Node(string.Format("[{0}:{1}]", h, p),
                                     () =>
                                     new Connection(h, p, ep => new RealSocket(ep), _pools.SocketBuffersPool, _pools.RequestsBuffersPool, configuration.SendBufferSize, configuration.ReceiveBufferSize),
                                     serializer,
                                     configuration,
                                     _timeoutScheduler,
                                     _resolution));
            _nodeFactory = DecorateFactory(_nodeFactory);

            // Inner actor
            _agent = new ActionBlock <ClusterMessage>(r => ProcessMessage(r),
                                                      new ExecutionDataflowBlockOptions {
                TaskScheduler = configuration.TaskScheduler
            });

            // Bootstrap
            BuildNodesFromSeeds();
            if (_nodes.Count == 0)
            {
                throw new ArgumentException("Invalid seeds: " + _seeds);
            }
        }
Exemple #19
0
        public static OAuth20Token RefreshToken <T>(OAuth20Token token) where T : Consumer, IOAuthProvider, new()
        {
            var loginProvider = ConsumerFactory.Get <T>();

            return(RefreshToken(loginProvider.AccessTokenUrl, token));
        }
        public void Consumer_CannotRequestLoginAsync_InvalidTokenPath_TaskFaultedWithException()
        {
            //arrange
            options.RequestTokenUrl = "http://invalid";
            IConsumer consumer = new ConsumerFactory(options)
                .CreateConsumer();

            try
            {
                Task task = consumer.RequestLoginAsync();
                task.Wait();
            }
            catch (AggregateException ex)
            {
                Assert.IsNotNull(ex.InnerException);
                Assert.IsInstanceOfType(ex.InnerException, typeof(CommunicationException));
                return;
            }
            Assert.Fail("Expected communication excepton.");
        }
 public void ConsumerFactory_InitializeConsumerFactor_ThrowsArgumentNullException()
 {
     options.AccessTokenUrl = null;
     IConsumerFactory factory = new ConsumerFactory(options);
     Assert.AreEqual(options, factory.ConsumerOptions);
 }
        public void Consumer_CannotRequestLogin_InvalidTokenPath_ThrowsException()
        {
            //arrange
            options.RequestTokenUrl = "http://invalid";
            IConsumer consumer = new ConsumerFactory(options)
                .CreateConsumer();

            try
            {
                Uri uri = consumer.RequestLogin();
            }
            catch (CommunicationException ex)
            {
                Assert.IsNotNull(ex.InnerException);
                Assert.IsInstanceOfType(ex.InnerException, typeof(WebException));
                return;
            }
            Assert.Fail("Expected communication excepton.");
        }
Exemple #23
0
        public void Consumer_CreateRequest()
        {
            //arrange
            var provider = A.Fake<IOAuthProvider>();
            IConsumer consumer = new ConsumerFactory(options, provider)
                .CreateConsumer();

            var request_token = "requestToken";
            var request_token_secret = "requestTokenSecret";
            var authorize_url = new Uri("http://expectedUrl");
            var verifier = "verifier";
            var getRequestTokenRequestResult = string.Format("oauth_token={0}&oauth_token_secret={1}&oauth_expires_in=124&xoauth_request_auth_url={2}",
                request_token,
                request_token_secret,
                authorize_url);

            var access_token = "accessToken";
            var access_token_secret = "accessTokenSecret";

            var getAccessTokenRequestResult = string.Format("oauth_token={0}&oauth_token_secret={1}&oauth_expires_in=124&oauth_session_handle=12334&oauth_authorization_expires_in=1234",
                access_token,
                access_token_secret);

            A.CallTo(() => provider.GetRequestTokenRequest(
                A<string>._, A<string>._, A<string>._, A<string>._, A<SignatureMethod>._))
                .Returns(getRequestTokenRequestResult);

            A.CallTo(() => provider.GetGetAccessTokenRequest(
                A<string>._, A<string>._, A<string>._, A<string>._, A<SignatureMethod>._, A<string>._, A<string>._))
                .Returns(getAccessTokenRequestResult);

            var requestParameters = new IRequestParameter[] {
                new RequestParameter("test1", "value1"),
                new RequestParameter("test2", "value2") };

            //act
            consumer.RequestLogin();
            consumer.AuthorizeUser(verifier);

            var request = consumer.CreateHttpRequest("http://test123", HttpMethod.GET, requestParameters);

            //assert
            A.CallTo(() => provider.GetRequestTokenRequest(
                options.RequestTokenUrl,
                options.ConsumerKey,
                options.ConsumerSecret,
                options.RequestTokenResponseCallbackUrl,
                options.SignatureMethod));

            A.CallTo(() => provider.GetGetAccessTokenRequest(
                options.AccessTokenUrl,
                options.ConsumerKey,
                options.ConsumerSecret,
                request_token_secret,
                options.SignatureMethod,
                request_token,
                verifier));

            var requestString = request.RequestUri.ToString();
            var expectedSignature = OAuthMessageBuilder.GetOAuthSignature_PlainText(options.ConsumerSecret, null);

            Assert.IsTrue(requestString.Contains(options.ConsumerKey), "ConsumerKey");
            Assert.IsTrue(requestString.Contains("plaintext"), "SignatureMethod");
            Assert.IsTrue(requestString.Contains("test1=value1"), "test1");
            Assert.IsTrue(requestString.Contains("test2=value2"), "test2");
            Assert.IsTrue(requestString.Contains(expectedSignature), "signature");
        }
        public void Consumer_CanRequestLogin()
        {
            //arrange
            IConsumer consumer = new ConsumerFactory(options)
                .CreateConsumer();

            Uri uri = consumer.RequestLogin();

            Assert.IsNotNull(uri);
        }
Exemple #25
0
        public void Consumer_CanRequestLogin()
        {
            //arrange
            var provider = A.Fake<IOAuthProvider>();
            IConsumer consumer = new ConsumerFactory(options, provider)
                .CreateConsumer();
            var expectedUrl = new Uri("http://expectedUrl");

            var result = string.Format("oauth_token=1234&oauth_token_secret=1234&oauth_expires_in=124&xoauth_request_auth_url={0}", expectedUrl);
            A.CallTo(() => provider.GetRequestTokenRequest(
                A<string>._, A<string>._, A<string>._, A<string>._, A<SignatureMethod>._))
                .Returns(result);

            //act
            var actualUrl = consumer.RequestLogin();

            //assert
            A.CallTo(() => provider.GetRequestTokenRequest(
                options.RequestTokenUrl,
                options.ConsumerKey,
                options.ConsumerSecret,
                options.RequestTokenResponseCallbackUrl,
                options.SignatureMethod));
            Assert.AreEqual(expectedUrl, actualUrl);
        }
 public OpenIdLoginProvider(Signature signature, InstanceCrypto instanceCrypto, ConsumerFactory consumerFactory)
 {
     Signature       = signature;
     InstanceCrypto  = instanceCrypto;
     ConsumerFactory = consumerFactory;
 }