예제 #1
0
        public void AuthenticationMechanism()
        {
            var client = new RestClient("http://*****:*****@email.com", password = "******" });

            var response = client.ExecutePostTaskAsync(request).GetAwaiter().GetResult();

            var access_token = response.DeserializeResponse()["access_token"];

            var jwtAuth = new JwtAuthenticator(access_token);

            client.Authenticator = jwtAuth;

            var getRequest = new RestRequest("posts/{postid}", Method.GET);

            getRequest.AddUrlSegment("postid", 5);

            //Perform the Get Operation
            var result = client.ExecuteAsyncRequest <Posts>(getRequest).GetAwaiter().GetResult();
            //Assert.That(result.Data.author, Is.EqualTo("Karthik KK"), "The author is not correct");
        }
예제 #2
0
        public void AuthenticationMechanismWithJSONFile()
        {
            var client = new RestClient("http://*****:*****@"TestData/Data.json";

            request.RequestFormat = DataFormat.Json;
            var jsonData = JsonConvert.DeserializeObject <User>(File.ReadAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, file)).ToString());

            request.AddJsonBody(jsonData);

            var response     = client.ExecutePostAsync(request).GetAwaiter().GetResult();
            var access_token = response.DeserializeResponse()["access_token"];

            var jwtAuth = new JwtAuthenticator(access_token);

            client.Authenticator = jwtAuth;

            var getRequest = new RestRequest("posts/{postid}", Method.GET);

            getRequest.AddUrlSegment("postid", 5);

            //Perform Get operation
            var result = client.ExecuteAsyncRequest <Posts>(getRequest).GetAwaiter().GetResult();

            Assert.That(result.Data.author, Is.EqualTo("Karthik KK"), "The author is not correct");
        }
예제 #3
0
        public void AuthenticatingUser()
        {
            var client = new RestClient("https://fast-fjord-65171.herokuapp.com/");

            var request = new RestRequest("api/users/login", Method.POST);

            var file     = @"TestData\User.json";
            var jsonData = JsonConvert.DeserializeObject <LoginUser>(File.ReadAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, file)).ToString());

            request.AddJsonBody(jsonData);

            var response     = client.ExecutePostTaskAsync(request).GetAwaiter().GetResult();
            var access_token = response.DeserializeResponse()["token"];

            var token = access_token.Split(' ')[1];

            var jwtAuth = new JwtAuthenticator(token);

            client.Authenticator = jwtAuth;

            var postRequest = new RestRequest("api/posts", Method.POST);

            postRequest.AddJsonBody(new { text = "Posting this with RestSharp" });

            var postResponse = client.ExecutePostTaskAsync(postRequest).GetAwaiter().GetResult();
            //var result = postResponse.DeserializeResponse()["text"];
            //Console.WriteLine(result);
            var result = postResponse.DeserializeResponse();

            foreach (KeyValuePair <string, string> data in result)
            {
                Console.WriteLine($"{data.Key} - {data.Value}");
            }
        }
예제 #4
0
        private async void AddBar_Click(object sender, RoutedEventArgs e)
        {
            if (showusers.SelectedIndex >= 0)
            {
                curentaccount = showusers.SelectedItem as Account;
                SetBarcode setBarcode = new SetBarcode(curentaccount);
                setBarcode.ShowDialog();

                var act = App.accesstoken;

                var Client = new RestClient(ConfigurationManager.AppSettings["api"].ToString());

                var authentication = new JwtAuthenticator(act);
                Client.Authenticator = authentication;

                var request = new RestRequest("api/Customer/getCustomers", Method.GET);

                var response = await Client.ExecuteGetTaskAsync <CoreResponse>(request);

                var deserialize = new JsonDeserializer();
                var output      = deserialize.Deserialize <Dictionary <string, string> >(response);
                var result      = output["data"];

                var account = JsonConvert.DeserializeObject <List <Account> >(result);


                showusers.ItemsSource = null;
                showusers.ItemsSource = account;
            }
        }
        public void AuthenticationMechanism()
        {
            var client  = new RestClient("http://*****:*****@email.com",
                password = "******"
            });

            var response     = client.ExecutePostAsync(request).GetAwaiter().GetResult();
            var access_token = response.DeserializeResponse()["access_token"];

            var jwtAuth = new JwtAuthenticator(access_token);

            client.Authenticator = jwtAuth;

            var getRequest = new RestRequest("posts/{postid}", Method.GET);

            getRequest.AddUrlSegment("postid", 5);

            var result = client.ExecuteGetAsync <Posts>(getRequest).GetAwaiter().GetResult();

            Assert.Equal("Karthik KK", result.Data.author);
        }
        public void AuthenticationMechanismWithJsonFile()
        {
            var client  = new RestClient("http://*****:*****@"TestData/Data.json";

            //desserializando o objeto User, pegando os valores do arquivo Data.json e adicionando no body da request
            var jsonData = JsonConvert.DeserializeObject <User>(File.ReadAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, file)).ToString());

            request.AddJsonBody(jsonData);

            var response     = client.ExecutePostAsync(request).GetAwaiter().GetResult();
            var access_token = response.DeserializeResponse()["access_token"];

            var jwtAuth = new JwtAuthenticator(access_token);

            client.Authenticator = jwtAuth;

            var getRequest = new RestRequest("posts/{postid}", Method.GET);

            getRequest.AddUrlSegment("postid", 5);

            var result = client.ExecuteGetAsync <Posts>(getRequest).GetAwaiter().GetResult();

            Assert.Equal("Karthik KK", result.Data.author);
        }
예제 #7
0
        public JwtAuthenticator Refresh(JwtAuthenticator jwt)
        {
            if (string.IsNullOrEmpty(jwt.access) && string.IsNullOrEmpty(jwt.refresh))
            {
                throw new JwtEmptyTokenException();
            }
            else
            {
                var client = new RestClient(Connection());
                var auth   = new RestRequest(RefreshUri, Method.POST)
                {
                    RequestFormat = DataFormat.Json
                };
                auth.AddBody(new
                {
                    refresh = jwt.refresh
                });
                var resp = client.Execute(auth);

                if (resp.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    var token = JsonConvert.DeserializeObject <JwtRefresher>(resp.Content);
                    return(new JwtAuthenticator()
                    {
                        access = token.access,
                        refresh = jwt.refresh
                    });
                }
                else
                {
                    /// if Jwt's refresh token was expire, you have to force user to log-in again.
                    throw new JwtRefreshExpiredException();
                }
            }
        }
예제 #8
0
 /// <summary>
 /// Set up Default Settings.
 /// You can change it after creating instance.
 /// </summary>
 public JwtRestClient()
 {
     Server     = "yes24.cert.com"; // ip address is not robust porperties, so we just replace it with hostname, like yes24.cert.com
     Port       = 8000;
     Scheme     = HttpScheme.HTTP;
     ObtainUri  = "/api/auth/token/obtain/";
     RefreshUri = "/api/auth/token/refresh/";
     TestsUri   = "/tests/";
     Token      = new JwtAuthenticator();
 }
        public void Authenticate(IRestClient client, IRestRequest request)
        {
            string accessToken = _authenticationContext.AcquireTokenAsync(_resource, _clientCredential)
                                 .Result
                                 .AccessToken;

            JwtAuthenticator _jwtAuthenticator = new JwtAuthenticator(accessToken);

            _jwtAuthenticator.Authenticate(client, request);
        }
예제 #10
0
        public void ThenVerifyStatusCodeReturnsOkAndSaveTheAuthenticationToken()
        {
            int StatusCode = (int)_settings.Response.StatusCode;

            Assert.AreEqual(200, StatusCode, "Post login failed");
            //using JWTAuthenticator for setting authorization token for the subsequent api calls
            var jwtAuth = new JwtAuthenticator(acctoken.ToString());

            _settings.RestClient.Authenticator = jwtAuth;
        }
예제 #11
0
        public ServiceClient(IHttpContextAccessor contextAccessor, IOptions <ApplicationOptions> optionsAccessor)
        {
            _contextAccessor = contextAccessor;
            BaseUrl          = new Uri(optionsAccessor.Value.OpenIdConnect.RedirectUri);

            var token = _contextAccessor.HttpContext.GetTokenAsync(OpenIdConnectDefaults.AuthenticationScheme, OpenIdConnectParameterNames.AccessToken).Result;

            if (token != null)
            {
                Authenticator = new JwtAuthenticator(token);
            }
        }
        public async Task AuthenticateOnNullObject_Exception()
        {
            var versioningManager = new JwtAuthenticator("foobar");
            ArgumentNullException ex;

            ex = await Assert.ThrowsAsync <ArgumentNullException>(() => versioningManager.AuthenticateAsync(requestMessage: null));

            Assert.Equal("requestMessage", ex.ParamName);

            ex = await Assert.ThrowsAsync <ArgumentNullException>(() => versioningManager.AuthenticateAsync(httpClient: null));

            Assert.Equal("httpClient", ex.ParamName);
        }
예제 #13
0
        public Parasut(string companyId = null, string clientId = null, string clientSecret = null, string username = null, string password = null)
        {
            CompanyId    = companyId;
            ClientId     = clientId;
            ClientSecret = clientSecret;
            Username     = username;
            Password     = password;


            var authentication = new JwtAuthenticator(GetParasutAccessToken());

            RestClient.Authenticator = authentication;
        }
예제 #14
0
        public void GivenIAuthenticateTheUserWithFollowingDetails(Table table)
        {
            dynamic data = table.CreateDynamicInstance();

            _settings.Request = new RestRequest("", Method.POST);
            _settings.Request.RequestFormat = DataFormat.Json;
            _settings.Request.AddBody(new { name = data.userName.ToString(), job = data.password.ToString() });
            _settings.Response = _settings.RestClient.ExecutePostTaskAsync(_settings.Request).GetAwaiter().GetResult();
            var access_token  = _settings.Response.GetResponseObject("access_token");
            var authenticator = new JwtAuthenticator(access_token);

            _settings.RestClient.Authenticator = authenticator;
        }
예제 #15
0
        public void GivenIGetJWTAuthenticationOfUserWithFollowingDetails(Table table)
        {
            dynamic data = table.CreateDynamicInstance();

            _settings.Request = new RestRequest("auth/login", Method.POST);

            _settings.Request.AddJsonBody(new { email = (string)data.Email, password = (string)data.Password });

            //Get access token
            _settings.Response = _settings.RestClient.ExecutePostAsync(_settings.Request).GetAwaiter().GetResult();
            var access_token = _settings.Response.GetResponseObject("access_token");

            //Authentication
            var authenticator = new JwtAuthenticator(access_token);

            _settings.RestClient.Authenticator = authenticator;
        }
예제 #16
0
        /// <summary>
        /// DRF use json data format, We just use object to send data.
        /// This is for Model Based Communication. But there is something huddle to overcome.
        /// How datetime is converted.
        /// See, https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/classes-and-structs/how-to-initialize-a-dictionary-with-a-collection-initializer
        ///
        /// </summary>
        /// <param name="data"></param>
        public IRestResponse Insert(object data, JwtAuthenticator jwt)
        {
            var client = new RestClient(Connection());

            var req = GetRequest(TestsUri,
                                 data,
                                 Method.POST,
                                 DataFormat.Json,
                                 new Dictionary <string, string>()
            {
                { "Authorization", string.Format("Bearer {0}", jwt.access) }
            });

            var res = client.Execute(req);

            return(res);
        }
예제 #17
0
        public void GivenIGetJwtAuthenticationOfUserWithFollowingDetails(Table table)
        {
            settings.RestClient.BaseUrl = new System.Uri("http://localhost:3000/");
            dynamic data = table.CreateDynamicInstance();

            settings.request = new RestRequest("auth/login", Method.GET);
            settings.request.RequestFormat = DataFormat.Json;
            settings.request.AddJsonBody(new { email = (string)data.email, password = (string)data.password });

            //get access token
            settings.Response = settings.RestClient.ExecutePostAsync(settings.request).GetAwaiter().GetResult();
            var access_token = settings.Response.GetResponseObject("access_token");

            //Authentication
            var authenticator = new JwtAuthenticator(access_token);

            settings.RestClient.Authenticator = authenticator;
        }
        public async Task AuthenticateWithHttpClient_Sucess(string token, string expectedAuthHeader, string errorMessage)
        {
            string error             = null;
            var    replaceAuthHeader = errorMessage == null;
            var    authenticator     = new JwtAuthenticator(token)
            {
                ReplaceAuthorizationHeader = replaceAuthHeader
            };

            authenticator.OnTrace += (msg) => error = msg;

            Assert.True(await authenticator.AuthenticateAsync(httpClient));
            Assert.Equal(replaceAuthHeader, await authenticator.AuthenticateAsync(httpClient));

            Assert.Equal(errorMessage, error);
            Assert.NotNull(httpClient.DefaultRequestHeaders.Authorization);
            Assert.Equal(authenticator.Header, httpClient.DefaultRequestHeaders.Authorization);
            Assert.Equal(expectedAuthHeader, httpClient.DefaultRequestHeaders.Authorization.ToString());
        }
        public void ExecuteAuthentication()
        {
            var client  = new RestClient("https://reqres.in/api/");
            var request = new RestRequest("login", Method.POST);

            request.RequestFormat = DataFormat.Json;
            request.AddBody(new { email = "*****@*****.**", password = "******" });

            var reponse      = client.ExecutePostTaskAsync(request).GetAwaiter().GetResult();
            var access_token = reponse.DeserializeResponse()["token"];

            var jwtAuth = new JwtAuthenticator(access_token);

            client.Authenticator = jwtAuth;

            var getrequest = new RestRequest("users/{userid}", Method.POST);

            getrequest.AddUrlSegment("userid", 14);
        }
예제 #20
0
        public async Task <LoginResult> Login(string username, string password, string deviceId = null,
                                              string initialDisplayName = "TensorMatrix")
        {
            var methodQueryResult = await QueryLoginMethods();

            if (!methodQueryResult.SupportedMethods.Any(x => x.Type == "m.login.password"))
            {
                throw new UnsupportedLoginMethodException("Homeserver does not support password-based login.");
            }

            var result = await Post.To("/_matrix/client/r0/login")
                         .Using(RestClient)
                         .AddBody(new PasswordLoginRequest <MxidIdentifier>
            {
                Identifier = new MxidIdentifier {
                    User = username
                },
                DeviceId = deviceId,
                InitialDeviceDisplayName = initialDisplayName,
                Password = password
            })
                         .On(400, (req, res, err) => ProtocolError?.Invoke(this, new ErrorEventArgs(err, res)))
                         .On(403, (req, res, err) => ProtocolError?.Invoke(this, new ErrorEventArgs(err, res)))
                         .On(429, (req, res, err) => ProtocolError?.Invoke(this, new ErrorEventArgs(err, res)))
                         .WhenSucceeded(new Action <LoginResult>(r =>
            {
                MxId                     = MxId.Parse(r.UserId);
                JwtAuthenticator         = new JwtAuthenticator(r.AccessToken);
                RestClient.Authenticator = JwtAuthenticator;
                DeviceId                 = r.DeviceId;

                if (r.WellKnown != null)
                {
                    RestClient.BaseUrl = new Uri(r.WellKnown.HomeServer.BaseUrl);
                }

                LoggedIn?.Invoke(this, new LoginEventArgs(MxId, r.AccessToken, r.DeviceId));
            }))
                         .Execute <LoginResult>();

            return(result);
        }
예제 #21
0
        /* public void GivenIHaveJwtAccessToken()
         * {
         *   var client = new RestClient("http://*****:*****@email.com", password = "******" });
         *   var response = client.ExecutePostAsync(request).GetAwaiter().GetResult();
         *   var access_token = response.DeserializeResponse()["access_token"];
         *   var jwtAuth= new JwtAuthenticator(access_token);
         *   client.Authenticator = jwtAuth;
         *   var getRequest = new RestRequest("products/{id}", Method.GET);
         *   getRequest.AddUrlSegment("id", 4);
         *   var result = client.ExecuteGetAsync<Posts>(getRequest).GetAwaiter().GetResult();
         *   Assert.That(result.Data.name, Is.EqualTo("Product004"), "name is not correct");
         *
         * }*/
        public void GivenIHaveJwtAccessTokenWithjsonFile()
        {
            /* var htmlReporter = new ExtentV3HtmlReporter(@"C:\Users\Shanthi\source\repos\RestSharpAPIConsoleApp\RestSharpAPIConsoleApp\ExtentReport.html");
             * htmlReporter.Config.Theme = Theme.Dark;
             * var extent = new AventStack.ExtentReports.ExtentReports();
             * extent.AttachReporter(htmlReporter);
             *
             * //Feature
             *
             * var feature = extent.CreateTest<Feature>("GetAccesstoken");
             * //Scenario
             * var scenario = feature.CreateNode<Scenario>("Get access token");
             * //Steps
             * scenario.CreateNode<Given>("I have jwt access token");
             *
             *
             * extent.Flush();
             *
             */
            var client  = new RestClient("http://*****:*****@"TestData\Data.json";
            //you need to deserilize the object in order to rest perform the operation
            var jsonData = JsonConvert.DeserializeObject <user>(File.ReadAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, file)).ToString());

            request.AddJsonBody(jsonData);
            var response     = client.ExecutePostAsync(request).GetAwaiter().GetResult();
            var access_token = response.DeserializeResponse()["access_token"];
            var jwtAuth      = new JwtAuthenticator(access_token);

            client.Authenticator = jwtAuth;
            var getRequest = new RestRequest("products/{id}", Method.GET);

            getRequest.AddUrlSegment("id", 4);
            var result = client.ExecuteGetAsync <Posts>(getRequest).GetAwaiter().GetResult();

            Assert.That(result.Data.name, Is.EqualTo("Product004"), "name is not correct");
        }
        public void ShouldNotAuthenticate()
        {
            // Create a valid token.
            const string validSecret   = "a valid secret that needs to be at least 16 characters long";
            const string invalidSecret = "an invalid secret that needs to be at least 16 characters long";
            const string issuer        = "example.com";
            const string audience      = "example.com";
            const string username      = "******";

            var securityKey        = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(validSecret));
            var signingCredentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256, SecurityAlgorithms.Sha256Digest);

            var claims = new[]
            {
                new Claim(JwtRegisteredClaimNames.Sub, username),
            };

            var token = new JwtSecurityToken(
                issuer: issuer,
                audience: audience,
                claims: claims,
                expires: DateTime.UtcNow.AddSeconds(1), // Expired!
                notBefore: DateTime.UtcNow,
                signingCredentials: signingCredentials);

            var tokenHandler = new JwtSecurityTokenHandler();
            var encodedToken = tokenHandler.WriteToken(token);

            using (var stream = new MemoryStream())
            {
                var writer = new DataWriter(stream);
                writer.Write($"Token={encodedToken}");

                stream.Seek(0, SeekOrigin.Begin);
                var authenticator = new JwtAuthenticator(new[] { invalidSecret });
                Assert.ThrowsException <SecurityException>(() =>
                {
                    authenticator.Authenticate(stream);
                });
            }
        }
        public IActionResult Pay(UserViewModel vm)
        {
            var request = new RestRequest("api/payment/", Method.POST)
            {
                RequestFormat = DataFormat.Json
            };

            request.AddJsonBody(vm);
            var accessToken   = _userToken;
            var authenticator = new JwtAuthenticator(accessToken);

            _client.Authenticator = authenticator;
            var response = _client.Execute <dynamic>(request);

            if (!response.IsSuccessful)
            {
                return(View("~/Views/Gateway/Unauthorized.cshtml"));
            }

            return(View("~/Views/Gateway/Success.cshtml"));
        }
예제 #24
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllersWithViews();
            services.AddSingleton <IRepository, Repository.Repository>();
            services.AddSingleton <IAuthenticationService, JwtAuthenticator>();
            services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options =>
            {
                options.RequireHttpsMetadata      = false;
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuer = true,
                    ValidIssuer    = JwtAuthenticator.ISSUER,

                    ValidateAudience = true,
                    ValidateLifetime = true,

                    IssuerSigningKey         = JwtAuthenticator.GetSymmetricSecurityKey(),
                    ValidateIssuerSigningKey = true,
                };
            });
        }
예제 #25
0
        public static List <DataTransferObject> GetData(string token)
        {
            DataTransferObject        result;
            List <DataTransferObject> results = new List <DataTransferObject>();

            string[] apiCalls = new[]
            {
                "equipment",
                "vehicle"
            };

            foreach (var apiCall in apiCalls)
            {
                var clientDestination = new RestClient("https://api-test.abax.cloud/v1/" + apiCall);

                var authentication = new JwtAuthenticator(token);
                clientDestination.Authenticator = authentication;

                var request  = new RestRequest(Method.GET);
                var response = clientDestination.Execute(request);

                if (response.IsSuccessful)
                {
                    response.Content = JValue.Parse(response.Content).ToString(Formatting.Indented);

                    result = new DataTransferObject();

                    result.data   = response.Content;
                    result.origin = apiCall;

                    results.Add(result);
                }
                else if (!response.IsSuccessful && getFailureCount <= 3)
                {
                    getFailureCount++;
                    AuthenticateToken.GetToken();
                }
            }
            return(results);
        }
예제 #26
0
        public async void getallusers()
        {
            var act = App.accesstoken;

            var Client = new RestClient(ConfigurationManager.AppSettings["api"].ToString());

            var authentication = new JwtAuthenticator(act);

            Client.Authenticator = authentication;

            var request = new RestRequest("api/Customer/getCustomers", Method.GET);

            var response = await Client.ExecuteGetTaskAsync <CoreResponse>(request);

            var deserialize = new JsonDeserializer();
            var output      = deserialize.Deserialize <Dictionary <string, string> >(response);
            var result      = output["data"];

            var account = JsonConvert.DeserializeObject <List <Account> >(result);

            showusers.ItemsSource = account;
        }
예제 #27
0
        public void RequestInURLEncodedFromAndValidateTheResponse(string baseUrlEStoreBaseURL, Method method, string endPointURL, RequestParams requestParams)
        {
            _settings.MyRestClient = new RestClient(ConfigurationManager.AppSettings[baseUrlEStoreBaseURL]);
            if (context.ContainsKey("accessToken"))
            {
                var authenticator = new JwtAuthenticator(context["accessToken"].ToString());
                _settings.MyRestClient.Authenticator = authenticator;
            }
            if (context.ContainsKey("cookie_token_1") && context.ContainsKey("cookie_token_2"))
            {
                CookieContainer cookiecon = new CookieContainer();
                string[]        items     = context["cookie_token_1"].ToString().Split('#');
                cookiecon.Add(new Cookie(items[0], items[1], items[2], items[3]));
                items = context["cookie_token_2"].ToString().Split('#');
                cookiecon.Add(new Cookie(items[0], items[1], items[2], items[3]));
                _settings.MyRestClient.CookieContainer = cookiecon;
            }

            //create cookiecon to save cookies in previous response
            _settings.MyRestRequest = new RestRequest(ConfigurationManager.AppSettings[endPointURL], method);
            foreach (KeyValuePair <string, string> kvPairs in requestParams.Headers)
            {
                _settings.MyRestRequest.AddHeader(kvPairs.Key, kvPairs.Value);
            }

            foreach (KeyValuePair <string, string> kvPairs in requestParams.Parameters)
            {
                _settings.MyRestRequest.AddParameter(kvPairs.Key, kvPairs.Value);
            }

            foreach (KeyValuePair <string, string> kvPairs in requestParams.QueryParameters)
            {
                _settings.MyRestRequest.AddQueryParameter(kvPairs.Key, kvPairs.Value);
            }

            _settings.MyRestResponse = _settings.MyRestClient.ExecuteAsyncRequest(_settings.MyRestRequest).GetAwaiter().GetResult();
            context["RestSettings"]  = _settings;
        }
예제 #28
0
        public void Updates_Auth_Header()
        {
            var client  = new RestClient();
            var request = new RestRequest();

            var authenticator = new JwtAuthenticator(_expectedAuthHeaderContent);

            client.Authenticator = authenticator;
            client.Authenticator.Authenticate(client, request);

            authenticator.SetBearerToken("second_header_auth_token");
            client.Authenticator.Authenticate(client, request);

            var paramList = request.Parameters.FindAll(p => p.Name.Equals("Authorization"));

            Assert.AreEqual(1, paramList.Count);

            var authParam = paramList[0];

            Assert.True(authParam.Type == ParameterType.HttpHeader);
            Assert.AreNotEqual(_expectedAuthHeaderContent, authParam.Value);
            Assert.AreEqual("Bearer second_header_auth_token", authParam.Value);
        }
예제 #29
0
    public async Task Updates_Auth_Header()
    {
        var client  = new RestClient();
        var request = new RestRequest();

        var authenticator = new JwtAuthenticator(_expectedAuthHeaderContent);

        client.Authenticator = authenticator;
        await client.Authenticator.Authenticate(client, request);

        authenticator.SetBearerToken("second_header_auth_token");
        await client.Authenticator.Authenticate(client, request);

        var paramList = request.Parameters.Where(p => p.Name.Equals(KnownHeaders.Authorization)).ToList();

        Assert.Single(paramList);

        var authParam = paramList[0];

        Assert.True(authParam.Type == ParameterType.HttpHeader);
        Assert.NotEqual(_expectedAuthHeaderContent, authParam.Value);
        Assert.Equal("Bearer second_header_auth_token", authParam.Value);
    }
        public void ExecuteAuthenticationwithjson()
        {
            var client  = new RestClient("https://reqres.in/api/");
            var request = new RestRequest("login", Method.POST);

            var file = @"TestData\Data.json";

            request.RequestFormat = DataFormat.Json;
            var jsondata = JsonConvert.DeserializeObject <User>(File.ReadAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, file)).ToString());

            request.AddJsonBody(jsondata);

            var reponse      = client.ExecutePostTaskAsync(request).GetAwaiter().GetResult();
            var access_token = reponse.DeserializeResponse()["token"];

            var jwtAuth = new JwtAuthenticator(access_token);

            client.Authenticator = jwtAuth;

            var getrequest = new RestRequest("users/{userid}", Method.POST);

            getrequest.AddUrlSegment("userid", 14);
        }