public static bool TryParseBody(byte[] key, string token, out AccessTokenBody body) { AccessToken accessToken; if (TryParse(token, out accessToken) == false) { body = null; return false; } if (accessToken.MatchesSignature(key) == false) { body = null; return false; } try { body = JsonConvert.DeserializeObject<AccessTokenBody>(accessToken.Body); return true; } catch { body = null; return false; } }
public async Task <string> GetAccessToken(CancellationToken cancellationToken = default) { if (_accessToken == null || _accessToken.HasExpired()) { var body = new AccessTokenBody(_clientId, _clientSecret, _managementApiAudience); var bodyJson = JsonConvert.SerializeObject(body); HttpResponseMessage response; try { response = await Client.PostAsync("/oauth/token", new StringContent(bodyJson, Encoding.UTF8, "application/json"), cancellationToken); } catch (Exception e) { _logger.LogError(e, "Could not communicate with Auth0. Will throw"); throw new ExternalResourceCommunicationErrorException("Could not communicate with Auth0.", e); } var responseStr = await response.Content.ReadAsStringAsync(); if (!response.IsSuccessStatusCode) { _logger.LogError("Got non success status code {httpStatusCode}. Message: '{message}' Will throw.", response.StatusCode, responseStr); throw new ExternalResourceCommunicationErrorException($"Got non success status code from Auth0: {response.StatusCode}"); } var accessToken = JsonConvert.DeserializeObject <AccessToken>(responseStr); _accessToken = accessToken; } return(_accessToken.Token); }
public OAuthPrincipal(AccessTokenBody tokenBody, string tenantId) { this.tokenBody = tokenBody; this.tenantId = tenantId; AdminDatabases = new HashSet <string>(this.tokenBody.AuthorizedDatabases.Where(db => db.Admin).Select(db => db.TenantId)); ReadOnlyDatabases = new HashSet <string>(this.tokenBody.AuthorizedDatabases.Where(db => db.ReadOnly).Select(db => db.TenantId)); ReadWriteDatabases = new HashSet <string>(this.tokenBody.AuthorizedDatabases.Where(db => db.ReadOnly == false).Select(db => db.TenantId)); }
public static AccessToken Create(byte[] key, AccessTokenBody tokenBody) { tokenBody.Issued = (SystemTime.UtcNow - DateTime.MinValue).TotalMilliseconds; var body = RavenJObject.FromObject(tokenBody) .ToString(Formatting.None); var signature = Sign(body, key); return new AccessToken { Body = body, Signature = signature }; }
private void VerifyStatus(string referenceId, AccessTokenBody accessToken) { if (!_appSettings.GeneralSettings.UsesVerifyStatus) { return; } Thread.Sleep(_appSettings.GeneralSettings.VerifyDelay); _log.Info($"Processing ReferenceId: {referenceId}"); var cmd = new GetStatus { ReferenceId = referenceId }; var result = _tenantApiService.GetTransactionStatus(accessToken, cmd); HandleResponse(cmd, result); }
public OAuthPrincipal(AccessTokenBody tokenBody, string tenantId) { this.tokenBody = tokenBody; this.tenantId = tenantId; }
private void SaveCardholder(ITenantApiCmd cmd, AccessTokenBody accessToken) { var result = _tenantApiService.SaveCardholderMulti(accessToken, (AddMultiAccessCard)cmd); HandleResponse(cmd, result); }
public OAuthPrincipal(AccessTokenBody tokenBody) { this.tokenBody = tokenBody; }