public void Should_Sign_Example_Request_Details_From_Specification()
        {
            string url = "http://photos.example.net/photos";
            string consumerKey = "dpf43f3p2l4k3l03";
            string consumerSecret = "kd94hf93k423kf44";
            string token = "nnch734d00sl2jdk";
            string tokenSecret = "pfkkdhi9sl3r4s00";
            string nonce = "kllo9940pd9333jh";
            string timestamp = "1191242096";

            var authDetails = new OpenAuthorizationDetails(consumerKey, consumerSecret)
                                  {
                                      Token = token,
                                      TokenSecret = tokenSecret
                                  };

            var httpRequest = new HttpRequestDetails(url);
            httpRequest.QueryParameters.Add("size", "original");
            httpRequest.QueryParameters.Add("file", "vacation.jpg");

            var signature = new OpenAuthorizationSignatory(authDetails);

            var signatureHeader = signature.Sign(httpRequest, nonce, timestamp);

            const string EXPECTED_HEADER = "OAuth realm=\"http://photos.example.net/photos\", oauth_consumer_key=\"dpf43f3p2l4k3l03\", oauth_token=\"nnch734d00sl2jdk\", oauth_nonce=\"kllo9940pd9333jh\", oauth_timestamp=\"1191242096\", oauth_signature_method=\"HMAC-SHA1\", oauth_version=\"1.0\", oauth_signature=\"tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D\"";
            Assert.That(signatureHeader.Value, Is.EqualTo(EXPECTED_HEADER));
        }
Ejemplo n.º 2
0
        public void Should_Construct_Request_Details_From_String_Url()
        {
            var url = "http://svnbook.red-bean.com/en/1.5/svn.basic.repository.html#svn.basic.repository.dia-1";

            var request = new HttpRequestDetails(url);

            Assert.That(request.Uri.ToString(), Is.SameAs(url));
        }
Ejemplo n.º 3
0
        public IRaygunMessageBuilder SetHttpDetails(HttpRequestDetails message)
        {
            if (message != null)
            {
                _raygunMessage.Details.Request = new RaygunWebApiRequestMessage(message);
            }

            return(this);
        }
Ejemplo n.º 4
0
        public static async Task <HttpRequestDetails> GetRequestDetailsAsync(this HttpContext context)
        {
            var httpDetails = new HttpRequestDetails
            {
                Controller  = context.GetRouteValue("controller").ToString(),
                Action      = context.GetRouteValue("action").ToString(),
                Route       = context.Request.Path.Value,
                Method      = context.Request.Method,
                QueryString = context.Request.QueryString.ToString(),
                Body        = await context.GetRequestBodyAsStringAsync()
            };

            return(httpDetails);
        }
        private string GenerateOpenAuthorization(HttpRequestDetails httpRequest, string signatureMethod, string nonce, string timestamp)
        {
            QueryParameterCollection signatureParameters = new QueryParameterCollection();

            foreach (var queryParameter in httpRequest.QueryParameters)
            {
                signatureParameters.Add(queryParameter);
            }

            signatureParameters.Add(new QueryParameter(OAuthVersionKey, OAuthVersion));
            signatureParameters.Add(new QueryParameter(OAuthNonceKey, nonce));
            signatureParameters.Add(new QueryParameter(OAuthTimestampKey, timestamp));
            signatureParameters.Add(new QueryParameter(OAuthSignatureMethodKey, signatureMethod));
            signatureParameters.Add(new QueryParameter(OAuthConsumerKeyKey, openAuthorizationDetails.ConsumerKey));

            return string.Empty;
        }
 public HttpHeader Sign(HttpRequestDetails httpRequest, string nonce, string timestamp)
 {
     return new HttpHeader(HttpHeader.KnownHeaders.Authorization, GenerateOpenAuthorization(httpRequest, SignatureMethod.HmacSha1, nonce, timestamp));
 }
 public HttpHeader Sign(HttpRequestDetails httpRequest)
 {
     return Sign(httpRequest, GenerateNonce(), GenerateTimestamp());
 }