public void TestGetAuthorizationResponse()
        {
            var someString = Path.GetRandomFileName();
            // response is code
            var codeResponse =
                OAuth2Server.GetAuthorizationResponse(new Uri(string.Format("{0}?code={1}", AddressPrefix,
                                                                            someString)));

            Assert.AreEqual(new KeyValuePair <string, string>("code", someString), codeResponse,
                            "Expected valid code response");

            // response is error
            var errorResponse =
                OAuth2Server.GetAuthorizationResponse(new Uri(string.Format("{0}?error={1}", AddressPrefix,
                                                                            someString)));

            Assert.AreEqual(new KeyValuePair <string, string>("error", someString), errorResponse,
                            "Expected valid error response");

            // response has valid key with escaped value
            Assert.AreEqual(new KeyValuePair <string, string>("code", "a B c"),
                            OAuth2Server.GetAuthorizationResponse(new Uri(string.Format("{0}?code=a%20B%20c", AddressPrefix))));

            // response has invalid keys
            var invalidResponse = new Uri(string.Format("{0}?someKey=someValue", AddressPrefix));

            Assert.Throws <ArgumentException>(() => OAuth2Server.GetAuthorizationResponse(invalidResponse));

            // No response. Uri has no params
            Assert.Throws <ArgumentException>(() => OAuth2Server.GetAuthorizationResponse(new Uri(AddressPrefix)));
        }
        public void TestGetQueryString()
        {
            var validUriWithCode = new Uri(string.Format("{0}?code=someValue", AddressPrefix));

            Assert.AreEqual("code=someValue", OAuth2Server.GetQueryString(validUriWithCode));
            Assert.Throws <ArgumentException>(() => OAuth2Server.GetQueryString(new Uri(AddressPrefix)));
        }
示例#3
0
        public Object Get([FromHeader] string Authorization)
        {
            //CountryDatabase.connect();
            //return Ok(CountryDatabase.getAllCountryCode());


            string response = OAuth2Server.ValidateAccessToken(Authorization);

            if (response.Equals("Valid"))
            {
                CountryDatabase.connect();
                return(Ok(CountryDatabase.getAllCountryCode()));//new string[] { "value1", "value2" };}
            }
            else if (response.Equals("Missing access_token"))
            {
                errorModel err = new errorModel();
                err.error         = new error();
                err.error.status  = 401;
                err.error.message = "Missing access_token";
                return(Ok(err));
            }
            else if (response.Equals("Expired access_token"))
            {
                HttpContext.Response.StatusCode = 401;
                errorModel err = new errorModel();
                err.error         = new error();
                err.error.message = "Expired access_token";
                err.error.status  = 401;
                return(err);
            }
            else
            {
                return(Unauthorized());
            }
        }
        public void TestGetCodeOrErrorResponsePairOnValidInputs()
        {
            Assert.AreEqual(new KeyValuePair <string, string>("code", "codeValue"),
                            OAuth2Server.GetCodeOrErrorResponsePair("code=codeValue"));

            Assert.AreEqual(new KeyValuePair <string, string>("error", "errorValue"),
                            OAuth2Server.GetCodeOrErrorResponsePair("error=errorValue"));
            Assert.AreEqual(new KeyValuePair <string, string>("error", " "),
                            OAuth2Server.GetCodeOrErrorResponsePair("error=%20"));
        }
        public void TestGetCodeOrErrorResponsePairOnInvalidInputs()
        {
            // The authorization response should consist of a single query parameter.
            Assert.Throws <ArgumentException>(
                () => OAuth2Server.GetCodeOrErrorResponsePair("code=codeValue&error=errorValue"));
            Assert.Throws <ArgumentException>(
                () => OAuth2Server.GetCodeOrErrorResponsePair("code=codeValue&otherKey=someValue"));
            Assert.Throws <ArgumentException>(
                () => OAuth2Server.GetCodeOrErrorResponsePair("error=errorValue&otherKey=someValue"));

            // The single query parameter should be an equals-separated key/value pair.
            Assert.Throws <ArgumentException>(() => OAuth2Server.GetCodeOrErrorResponsePair(""));
            Assert.Throws <ArgumentException>(() => OAuth2Server.GetCodeOrErrorResponsePair("&"));
            Assert.Throws <ArgumentException>(() => OAuth2Server.GetCodeOrErrorResponsePair("="));
            Assert.Throws <ArgumentException>(() => OAuth2Server.GetCodeOrErrorResponsePair("code"));
            Assert.Throws <ArgumentException>(() => OAuth2Server.GetCodeOrErrorResponsePair("code=value1=value2"));
            Assert.Throws <ArgumentException>(() => OAuth2Server.GetCodeOrErrorResponsePair("code&codeValue"));

            // Key for the single query parameter should be either "code" or "error"
            Assert.Throws <ArgumentException>(() => OAuth2Server.GetCodeOrErrorResponsePair("someKey=someValue"));
        }