public void BuildBaseString_TwitterExample()
        {
            NameValueCollection collectedParameters = new NameValueCollection();

            collectedParameters.Add("oauth_consumer_key", "GDdmIQH6jhtmLUypg82g");
            collectedParameters.Add("oauth_signature_method", SigningSupport.HMAC_SHA1_SIGNATURE_NAME);
            collectedParameters.Add("oauth_timestamp", 2468013579L.ToString());
            collectedParameters.Add("oauth_nonce", 1357924680.ToString());
            collectedParameters.Add("oauth_version", "1.0");
            collectedParameters.Add("oauth_callback", "http://localhost:3005/the_dance/process_callback?service_provider_id=11");
            String baseString = SigningSupport.BuildBaseString(HttpMethod.POST, "https://api.twitter.com/oauth/request_token", collectedParameters);

            String[] baseStringParts = baseString.Split('&');
            Assert.AreEqual(3, baseStringParts.Length);
            Assert.AreEqual("POST", baseStringParts[0]);
            Assert.AreEqual("https%3A%2F%2Fapi.twitter.com%2Foauth%2Frequest_token", baseStringParts[1]);

            String[] parameterParts = baseStringParts[2].Split(new string[] { "%26" }, StringSplitOptions.None);
            Assert.AreEqual(6, parameterParts.Length);
            Assert.AreEqual("oauth_callback%3Dhttp%253A%252F%252Flocalhost%253A3005%252Fthe_dance%252Fprocess_callback%253Fservice_provider_id%253D11", parameterParts[0]);
            Assert.AreEqual("oauth_consumer_key%3DGDdmIQH6jhtmLUypg82g", parameterParts[1]);
            Assert.AreEqual("oauth_nonce%3D1357924680", parameterParts[2]);
            Assert.AreEqual("oauth_signature_method%3DHMAC-SHA1", parameterParts[3]);
            Assert.AreEqual("oauth_timestamp%3D2468013579", parameterParts[4]);
            Assert.AreEqual("oauth_version%3D1.0", parameterParts[5]);
        }
 /// <summary>
 /// Creates an OAuth 1.0 protected resource request interceptor.
 /// </summary>
 /// <param name="consumerKey">The application's consumer key.</param>
 /// <param name="consumerSecret">The application's consumer secret.</param>
 /// <param name="accessToken">The access token.</param>
 /// <param name="accessTokenSecret">The access token secret.</param>
 public OAuth1RequestInterceptor(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret)
 {
     this.consumerKey = consumerKey;
     this.consumerSecret = consumerSecret;
     this.accessToken = accessToken;
     this.accessTokenSecret = accessTokenSecret;
     this.signingSupport = new SigningSupport();
 }
 /// <summary>
 /// Creates an OAuth 1.0 protected resource request interceptor.
 /// </summary>
 /// <param name="consumerKey">The application's consumer key.</param>
 /// <param name="consumerSecret">The application's consumer secret.</param>
 /// <param name="accessToken">The access token.</param>
 /// <param name="accessTokenSecret">The access token secret.</param>
 public OAuth1RequestInterceptor(string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret)
 {
     this.consumerKey       = consumerKey;
     this.consumerSecret    = consumerSecret;
     this.accessToken       = accessToken;
     this.accessTokenSecret = accessTokenSecret;
     this.signingSupport    = new SigningSupport();
 }
 public void BuildAuthorizationHeaderValue_Request()
 {
     SigningSupport signingUtils = new SigningSupport();
     signingUtils.TimestampGenerator = new MockTimestampGenerator(123456789, 987654321);
     Uri uri = new Uri(String.Format("http://example.com/request?b5={0}&a3=a&{1}=&a2={2}", Uri.EscapeDataString("=%3D"), Uri.EscapeDataString("c@"), Uri.EscapeDataString("r b")));
     HttpHeaders headers = new HttpHeaders();
     headers.ContentType = MediaType.APPLICATION_FORM_URLENCODED;
     string authorizationHeader = signingUtils.BuildAuthorizationHeaderValue(uri, HttpMethod.POST, headers,
         stream =>
         {
             byte[] byteData = Encoding.UTF8.GetBytes("c2&a3=2+q");
             stream.Write(byteData, 0, byteData.Length);
         },
         "9djdj82h48djs9d2", "consumer_secret", "kkk9d7dh3k39sjv7", "token_secret");
     AssertAuthorizationHeader(authorizationHeader, "%2B8iwuQbJ%2Fa46KYDAFQlzPerVGYk%3D");
 }
 public void BuildAuthorizationHeaderValue_TokenRequest()
 {
     SigningSupport signingUtils = new SigningSupport();
     signingUtils.TimestampGenerator = new MockTimestampGenerator(123456789, 987654321);
     IDictionary<string, string> tokenParameters = new Dictionary<string, string>(1);
     tokenParameters.Add("oauth_token", "kkk9d7dh3k39sjv7");
     NameValueCollection additionalParameters = new NameValueCollection();
     additionalParameters.Add("c2", ""); // body parameter
     additionalParameters.Add("a3", "2 q"); // body parameter
     additionalParameters.Add("b5", "=%3D"); // query parameter
     additionalParameters.Add("a3", "a"); // query parameter
     additionalParameters.Add("c@", ""); // query parameter
     additionalParameters.Add("a2", "r b"); // query parameter
     string authorizationHeader = signingUtils.BuildAuthorizationHeaderValue(new Uri("http://example.com/request"), tokenParameters, additionalParameters, "9djdj82h48djs9d2", "consumer_secret", "token_secret");
     AssertAuthorizationHeader(authorizationHeader, "%2B8iwuQbJ%2Fa46KYDAFQlzPerVGYk%3D");
 }
Exemplo n.º 6
0
        /// <summary>
        /// Creates an OAuth1Template.
        /// </summary>
        /// <param name="consumerKey">The application's consumer key.</param>
        /// <param name="consumerSecret">The application's consumer secret.</param>
        /// <param name="requestTokenUrl">The request token URL.</param>
        /// <param name="authorizeUrl">The authorize URL.</param>
        /// <param name="authenticateUrl">The authenticate URL.</param>
        /// <param name="accessTokenUrl">The access token URL.</param>
        /// <param name="version">The version of OAuth 1, either 10 or 10a.</param>
        public OAuth1Template(string consumerKey, string consumerSecret, string requestTokenUrl, string authorizeUrl, string authenticateUrl, string accessTokenUrl, OAuth1Version version)
        {
            ArgumentUtils.AssertNotNull(consumerKey, "consumerKey");
            ArgumentUtils.AssertNotNull(consumerSecret, "consumerSecret");
            ArgumentUtils.AssertNotNull(requestTokenUrl, "requestTokenUrl");
            ArgumentUtils.AssertNotNull(authorizeUrl, "authorizeUrl");
            ArgumentUtils.AssertNotNull(accessTokenUrl, "accessTokenUrl");

            this.consumerKey     = consumerKey;
            this.consumerSecret  = consumerSecret;
            this.requestTokenUrl = new Uri(requestTokenUrl);
            this.authorizeUrl    = authorizeUrl;
            this.authenticateUrl = authenticateUrl;
            this.accessTokenUrl  = new Uri(accessTokenUrl);
            this.version         = version;
            this.restTemplate    = this.CreateRestTemplate();
            this.signingSupport  = new SigningSupport();
        }
        public void BuildAuthorizationHeaderValue_Request()
        {
            SigningSupport signingUtils = new SigningSupport();

            signingUtils.TimestampGenerator = new MockTimestampGenerator(123456789, 987654321);
            Uri         uri     = new Uri(String.Format("http://example.com/request?b5={0}&a3=a&{1}=&a2={2}", Uri.EscapeDataString("=%3D"), Uri.EscapeDataString("c@"), Uri.EscapeDataString("r b")));
            HttpHeaders headers = new HttpHeaders();

            headers.ContentType = MediaType.APPLICATION_FORM_URLENCODED;
            string authorizationHeader = signingUtils.BuildAuthorizationHeaderValue(uri, HttpMethod.POST, headers,
                                                                                    stream =>
            {
                byte[] byteData = Encoding.UTF8.GetBytes("c2&a3=2+q");
                stream.Write(byteData, 0, byteData.Length);
            },
                                                                                    "9djdj82h48djs9d2", "consumer_secret", "kkk9d7dh3k39sjv7", "token_secret");

            AssertAuthorizationHeader(authorizationHeader, "%2B8iwuQbJ%2Fa46KYDAFQlzPerVGYk%3D");
        }
        public void BuildAuthorizationHeaderValue_TokenRequest()
        {
            SigningSupport signingUtils = new SigningSupport();

            signingUtils.TimestampGenerator = new MockTimestampGenerator(123456789, 987654321);
            IDictionary <string, string> tokenParameters = new Dictionary <string, string>(1);

            tokenParameters.Add("oauth_token", "kkk9d7dh3k39sjv7");
            NameValueCollection additionalParameters = new NameValueCollection();

            additionalParameters.Add("c2", "");     // body parameter
            additionalParameters.Add("a3", "2 q");  // body parameter
            additionalParameters.Add("b5", "=%3D"); // query parameter
            additionalParameters.Add("a3", "a");    // query parameter
            additionalParameters.Add("c@", "");     // query parameter
            additionalParameters.Add("a2", "r b");  // query parameter
            string authorizationHeader = signingUtils.BuildAuthorizationHeaderValue(new Uri("http://example.com/request"), tokenParameters, additionalParameters, "9djdj82h48djs9d2", "consumer_secret", "token_secret");

            AssertAuthorizationHeader(authorizationHeader, "%2B8iwuQbJ%2Fa46KYDAFQlzPerVGYk%3D");
        }
        public void BuildBaseString_SpecificationExample()
        {
            NameValueCollection collectedParameters = new NameValueCollection();

            collectedParameters.Add("b5", "=%3D");
            collectedParameters.Add("a3", "a");
            collectedParameters.Add("c@", "");
            collectedParameters.Add("a2", "r b");
            collectedParameters.Add("c2", "");
            collectedParameters.Add("a3", "2 q");
            collectedParameters.Add("oauth_consumer_key", "9djdj82h48djs9d2");
            collectedParameters.Add("oauth_signature_method", SigningSupport.HMAC_SHA1_SIGNATURE_NAME);
            collectedParameters.Add("oauth_timestamp", 2468013579L.ToString());
            collectedParameters.Add("oauth_nonce", 1357924680.ToString());
            collectedParameters.Add("oauth_version", "1.0");
            collectedParameters.Add("oauth_token", "kkk9d7dh3k39sjv7");
            string baseString = SigningSupport.BuildBaseString(HttpMethod.POST, "http://example.com/request", collectedParameters);

            string[] baseStringParts = baseString.Split('&');
            Assert.AreEqual(3, baseStringParts.Length);
            Assert.AreEqual("POST", baseStringParts[0]);
            Assert.AreEqual("http%3A%2F%2Fexample.com%2Frequest", baseStringParts[1]);

            String[] parameterParts = baseStringParts[2].Split(new string[] { "%26" }, StringSplitOptions.None);
            Assert.AreEqual(12, parameterParts.Length);
            Assert.AreEqual("a2%3Dr%2520b", parameterParts[0]);
            Assert.AreEqual("a3%3D2%2520q", parameterParts[1]);
            Assert.AreEqual("a3%3Da", parameterParts[2]);
            Assert.AreEqual("b5%3D%253D%25253D", parameterParts[3]);
            Assert.AreEqual("c%2540%3D", parameterParts[4]);
            Assert.AreEqual("c2%3D", parameterParts[5]);
            Assert.AreEqual("oauth_consumer_key%3D9djdj82h48djs9d2", parameterParts[6]);
            Assert.AreEqual("oauth_nonce%3D1357924680", parameterParts[7]);
            Assert.AreEqual("oauth_signature_method%3DHMAC-SHA1", parameterParts[8]);
            Assert.AreEqual("oauth_timestamp%3D2468013579", parameterParts[9]);
            Assert.AreEqual("oauth_token%3Dkkk9d7dh3k39sjv7", parameterParts[10]);
            Assert.AreEqual("oauth_version%3D1.0", parameterParts[11]);
        }
Exemplo n.º 10
0
        /// <summary>
        /// Creates an OAuth1Template.
        /// </summary>
        /// <param name="consumerKey">The application's consumer key.</param>
        /// <param name="consumerSecret">The application's consumer secret.</param>
        /// <param name="requestTokenUrl">The request token URL.</param>
        /// <param name="authorizeUrl">The authorize URL.</param>
        /// <param name="authenticateUrl">The authenticate URL.</param>
        /// <param name="accessTokenUrl">The access token URL.</param>
        /// <param name="version">The version of OAuth 1, either 10 or 10a.</param>
        public OAuth1Template(string consumerKey, string consumerSecret, string requestTokenUrl, string authorizeUrl, string authenticateUrl, string accessTokenUrl, OAuth1Version version)
        {
            ArgumentUtils.AssertNotNull(consumerKey, "consumerKey");
            ArgumentUtils.AssertNotNull(consumerSecret, "consumerSecret");
            ArgumentUtils.AssertNotNull(requestTokenUrl, "requestTokenUrl");
            ArgumentUtils.AssertNotNull(authorizeUrl, "authorizeUrl");
            ArgumentUtils.AssertNotNull(accessTokenUrl, "accessTokenUrl");

            this.consumerKey = consumerKey;
            this.consumerSecret = consumerSecret;
            this.requestTokenUrl = new Uri(requestTokenUrl);
            this.authorizeUrl = authorizeUrl;
            this.authenticateUrl = authenticateUrl;
            this.accessTokenUrl = new Uri(accessTokenUrl);
            this.version = version;
            this.restTemplate = this.CreateRestTemplate();
            this.signingSupport = new SigningSupport();
        }