public ETradeClient(Stocks.OAuthToken consumerToken, bool productionMode = false, Stocks.OAuthToken accessToken = null)
        {
            _consumerToken = new ConsumerToken {
                Token = consumerToken.Token, TokenSecret = consumerToken.Secret
            };

            _consumerContext = new OAuthConsumerContext
            {
                ConsumerKey                 = _consumerToken.Token,
                ConsumerSecret              = _consumerToken.TokenSecret,
                SignatureMethod             = SignatureMethod.HmacSha1,
                UseHeaderForOAuthParameters = true,
                CallBack = "oob"
            };

            _session = new OAuthSession(_consumerContext, RequestUrl, AuthorizeUrl, AccessTokenUrl, RenewAccessTokenUrl);

            _productionMode = productionMode;

            if (accessToken != null)
            {
                _accessToken = new AccessToken {
                    Token = accessToken.Token, TokenSecret = accessToken.Secret
                };
            }
        }
Example #2
0
        public StocksRepository(Common.OAuthToken consumerToken, Common.OAuthToken accessToken = null, bool productionMode = false)
        {
            var cToken = new ConsumerToken {
                Token = consumerToken.Token, TokenSecret = consumerToken.Secret
            };
            var aToken = accessToken != null ? new AccessToken {
                Token = accessToken.Token, TokenSecret = accessToken.Secret
            } : null;

            _etradeClient = new ETradeClient(cToken, aToken, productionMode);
        }
Example #3
0
        public WebResponse Request(HttpMethodType httpMethod, string resourcePath, ConsumerToken consumerToken, WebHeaderCollection requestHeaders,
                                   byte[] requestBody, bool rawBody, CookieCollection cookieCollection, bool isPhoto)
        {
            var signer = new OAuthSigner();
            var additionalParameters = new NameValueCollection();

            WebRequest request = null;

            request = WebRequest.Create(this.ApiServerUri + resourcePath);


            if (httpMethod != HttpMethodType.GET)
            {
                if (rawBody)
                {
                    if (isPhoto)
                    {
                        request.ContentType = "image/jpg";
                    }
                    else
                    {
                        request.ContentType = "video/mpeg"; // f0r AVI video
                    }
                }
                else
                {
                    if (this.Scheme == AuthorizationSchemeType.Body)
                    {
                        request.ContentType = "application/" + OAuthConstants.X_WWW_FORM_URLENCODED;
                    }
                    else
                    {
                        request.ContentType = "application/" + OAuthConstants.X_WWW_FORM_URLENCODED;
                    }

                    if (requestBody != null && requestBody.Length > 0)
                    {
                        additionalParameters = HttpUtility.ParseQueryString(Encoding.UTF8.GetString(requestBody));
                    }
                }
            }

            request.Method = httpMethod.ToString();
            string oAuthQuerystring = null;

            request = signer.SignRequest(request, this, consumerToken, additionalParameters, out oAuthQuerystring);
            ((HttpWebRequest)request).Accept = "*/*";
            if (httpMethod == HttpMethodType.POST && !isPhoto && !string.IsNullOrEmpty(oAuthQuerystring))
            {
                requestBody = Encoding.ASCII.GetBytes(oAuthQuerystring);
            }
            return(RawRequest(request, requestHeaders, requestBody, cookieCollection));
        }
        /// <summary>
        /// This method is meant for servers to validate incoming OAuth requests from MySpace typically made through an OpenSocial makeRequest call, or an iFrame src attribute. If the return value is true, it means that the signature contained in the request matches the actual request that was signed with the correct consumer secret for that consumer key.
        /// </summary>
        /// <param name="apiServerUri">Your server which is being requested by MySpace(e.g. http://localhost:9090/ or http://myserver.com/).</param>
        /// <param name="resourcePath">The relative path of the resource being requested.</param>
        /// <param name="httpRequest">The request</param>
        /// <param name="accessTokenSecret">The access token of the particular request. This will be empty for onsite apps and iFrame src attributes.</param>
        /// <returns>True if the signature in the request matches correctly.</returns>
        public bool ValidateSignature(string apiServerUri, string resourcePath, HttpRequest httpRequest, string accessTokenSecret)
        {
            OAuthParameter oAuthParameter = null;

            try
            {
                oAuthParameter = OAuthParameter.FromHttpContext(httpRequest.Headers, httpRequest.QueryString);
            }
            catch (ArgumentNullException)
            {
                var x = 1;
            }
            catch
            {
                var y = 2;
            }

            if (oAuthParameter == null)
            {
                //TODO: change to problem reporting
                throw new ArgumentException("no oauth parameters found");
            }

            if (oAuthParameter.HasError)
            {
                return(false);
            }

            var oAuthSigner         = new OAuthSigner();
            var signatureMethodType = GeneralUtil.StringToSignatureMethodType(oAuthParameter.SignatureMethod);
            var signatureMethod     = oAuthSigner.GetSignatureMethod(signatureMethodType);

            signatureMethod.RequestParameters.Add(oAuthParameter.ToCollection());
            signatureMethod.RequestParameters.Add(oAuthParameter.UnknownParameterCollection);

            //if (string.IsNullOrEmpty(oAuthParameter.Token))
            //{
            //    signatureMethod.RequestParameters.Add(OAuthParameter.OAUTH_TOKEN, string.Empty);
            //}

            var request = WebRequest.Create(apiServerUri + resourcePath);

            request.Method = httpRequest.HttpMethod;

            var consumer  = new OAuthConsumer(apiServerUri, oAuthParameter.ConsumerKey, consumerSecret);
            var token     = new ConsumerToken(consumer, oAuthParameter.Token, accessTokenSecret);
            var signature = signatureMethod.BuildSignature(request, consumer, token);

            return(oAuthParameter.Signature == signature);
        }
Example #5
0
        public ETradeClient(ConsumerToken consumerToken, AccessToken accessToken = null, bool productionMode = false)
        {
            _consumerToken = consumerToken;

            _consumerContext = new OAuthConsumerContext
            {
                ConsumerKey                 = consumerToken.Token,
                ConsumerSecret              = consumerToken.TokenSecret,
                SignatureMethod             = SignatureMethod.HmacSha1,
                UseHeaderForOAuthParameters = true,
                CallBack = "oob"
            };

            _session = new OAuthSession(_consumerContext, RequestUrl, AuthorizeUrl, AccessUrl);

            _productionMode = productionMode;
            _accessToken    = accessToken;
        }
Example #6
0
 public ConsumerPage(ConsumerToken ct)
 {
     InitializeComponent();
     DataContext = ct;
 }
        public WebResponse RawRequest(HttpMethodType httpMethod, string resourcePath, ConsumerToken consumerToken, WebHeaderCollection requestHeaders, byte[] requestBody)
        {
            if (string.IsNullOrEmpty(resourcePath))
            {
                throw new ArgumentNullException("resourcePath");
            }

            var request = (HttpWebRequest)WebRequest.Create(this.ApiServerUri + resourcePath);

            request.Method = httpMethod.ToString();
            return(RawRequest(request, requestHeaders, requestBody));
        }
 public WebResponse RawRequest(HttpMethodType httpMethod, string resourcePath, ConsumerToken consumerToken, WebHeaderCollection requestHeaders)
 {
     return(this.RawRequest(httpMethod, resourcePath, consumerToken, requestHeaders, null));
 }
 public WebResponse RawRequest(HttpMethodType httpMethod, string resourcePath, ConsumerToken consumerToken)
 {
     return(this.RawRequest(httpMethod, resourcePath, consumerToken, null, null));
 }
        public WebResponse Request(HttpMethodType httpMethod, string resourcePath, ConsumerToken consumerToken, WebHeaderCollection requestHeaders,
                                   byte[] requestBody, bool rawBody, CookieCollection cookieCollection, bool isPhoto)
        {
            var signer = new OAuthSigner();
            var additionalParameters = new NameValueCollection();

            WebRequest request = null;

            if (resourcePath.StartsWith("/v1/"))
            {
                request = WebRequest.Create(Constants.MYSPACE_API_SERVER + resourcePath);
            }
            else if (resourcePath.StartsWith("/v2/"))
            {
                request = WebRequest.Create(Constants.MYSPACE_API_SERVER + resourcePath);
                //
            }
            else if (resourcePath.StartsWith("/roa/"))
            {
                request = WebRequest.Create(Constants.MYSPACE_ROA_SERVER + resourcePath);
            }
            else
            {
                request = WebRequest.Create(this.ApiServerUri + resourcePath);
            }

            if (httpMethod != HttpMethodType.GET)
            {
                if (rawBody)
                {
                    if (isPhoto)
                    {
                        request.ContentType = "image/jpg";
                    }
                    else
                    {
                        request.ContentType = "video/mpeg"; // f0r AVI video
                    }
                }
                else
                {
                    if (this.Scheme == AuthorizationSchemeType.Body)
                    {
                        request.ContentType = "application/" + OAuthConstants.X_WWW_FORM_URLENCODED;
                    }
                    else
                    {
                        //TODO: fix this on the server
                        request.ContentType = "application/json";//OAuthConstants.X_WWW_FORM_URLENCODED;
                    }

                    if (requestBody != null && requestBody.Length > 0)
                    {
                        additionalParameters = HttpUtility.ParseQueryString(Encoding.UTF8.GetString(requestBody));
                    }
                }
            }

            request.Method = httpMethod.ToString();
            request        = signer.SignRequest(request, this, consumerToken, additionalParameters);
            ((HttpWebRequest)request).Accept = "*/*";
            return(RawRequest(request, requestHeaders, requestBody, cookieCollection));
        }
 public WebResponse Request(HttpMethodType httpMethod, string resourcePath, ConsumerToken consumerToken, WebHeaderCollection requestHeaders,
                            byte[] requestBody, bool rawBody, CookieCollection cookieCollection)
 {
     return(Request(httpMethod, resourcePath, consumerToken, requestHeaders, requestBody, false, cookieCollection, false));
 }
 public WebResponse Request(HttpMethodType httpMethod, string resourcePath, ConsumerToken consumerToken, WebHeaderCollection requestHeaders, byte[] requestBody)
 {
     return(Request(httpMethod, resourcePath, consumerToken, requestHeaders, requestBody, null));
 }
        public OAuthToken TokenRequest(HttpMethodType httpMethod, string resourcePath, ConsumerToken consumerToken, WebHeaderCollection requestHeaders)
        {
            var response = (HttpWebResponse)this.Request(httpMethod, resourcePath, consumerToken, requestHeaders, null, null);

            var streamReader = new StreamReader(response.GetResponseStream());
            var responseBody = streamReader.ReadToEnd();

            switch (response.StatusCode)
            {
            case HttpStatusCode.OK:
                return(ParseTokenResponse(responseBody));

            default:
                throw new Exception(string.Format("{0} - {1}", response.StatusCode, responseBody));
            }
        }
Example #14
0
 public ConsumerPage(ConsumerToken ct)
 {
     InitializeComponent();
     DataContext = ct;
 }