Ejemplo n.º 1
0
        private async Task <bool> RequestWriteAccess(IR2Credentials credentials,
                                                     CancellationToken cancelTkn, bool addCertToWhiteList)
        {
            CsrfToken = string.Empty;
            SetCredentials(credentials, addCertToWhiteList);

            _cookie = null;
            await Task.Run(async() =>
            {
                _cookie = await GetCookie(cancelTkn);
            }
                           ).ConfigureAwait(false);

            if (_cookie == null)
            {
                return(false);
            }

            await Task.Run(async() =>
            {
                CsrfToken = await GetCsrfToken(_cookie, cancelTkn);
            }
                           ).ConfigureAwait(false);

            return(!CsrfToken.IsBlank());
        }
Ejemplo n.º 2
0
        public override Task <T> CookieAuthGET <T>(D8Cookie cookie, string resourceUrl, CancellationToken cancelTkn)
        {
            var client = new JsonServiceClient(Creds.BaseURL);

            client.SetCookie(cookie.Name, cookie.Id);

            return(Retry.Forever <T>(resourceUrl, (x, ct)
                                     => client.GetAsync <string>(resourceUrl), cancelTkn));
        }
Ejemplo n.º 3
0
        public override Task <T> CookieAuthPOST <T>(D8Cookie cookie, string resourceUrl, CancellationToken cancelTkn)
        {
            var client = new JsonServiceClient(Creds.BaseURL);

            client.SetCookie(cookie.Name, cookie.Id);

            return(Retry.Forever <T>(resourceUrl, (url, ct)
                                     //=> client.PostAsync<string>(resourceUrl, null), cancelTkn);
                                     //=> resourceUrl.PostToUrlAsync(string.Empty, requestFilter: req => { req.Headers["X-CSRF-Token"] = CsrfToken; }), cancelTkn);
                                     => url.PostToUrlAsync(string.Empty, "application/json", r => SetBasicAuthRequest(r)), cancelTkn));
        }
Ejemplo n.º 4
0
        internal async Task <bool> GetCsrfToken(string resourceUrl)
        {
            var client = new JsonServiceClient(_creds.ApiBaseURL);
            var body   = new { username = _creds.Username, password = _creds.Password };

            _cookie = null;
            var json = await client.PostAsync <string>(resourceUrl, body);

            if (!Json.TryDeserialize <D8Cookie>(json, out _cookie))
            {
                return(false);
            }

            _csrfToken = await CookieAuthClient().GetAsync <string>("rest/session/token");

            return(!_csrfToken.IsBlank());
        }
Ejemplo n.º 5
0
 private Task <string> GetCsrfToken(D8Cookie cookie, CancellationToken cancelTkn)
 => _client.CookieAuthGET <string>(cookie, D8.REST_SESSION_TOKEN, cancelTkn);
Ejemplo n.º 6
0
 public abstract Task <T> CookieAuthPOST <T>(D8Cookie cookie, string url, CancellationToken cancelTkn);