public bool Validate(string input, string secret = null) { if (string.IsNullOrWhiteSpace(input)) { return(false); } PermissionTicket ticket; try { ticket = JsonConvert.DeserializeObject <PermissionTicket>(input); } catch { try { if (string.IsNullOrWhiteSpace(secret)) { return(false); } ticket = PermissionTicket.FromJwt(input, secret); } catch { return(false); } } return(Validate(ticket)); }
public IActionResult Validate([FromHeader(Name = "X-Permission-Ticket")] string ticket) { var valid = this.manager.Validate(ticket, Secret); if (valid) { return(Ok(PermissionTicket.FromJwt(ticket, Secret))); } return(BadRequest("Ticket is Invalid")); }
public void ValidateFromJwt(string jwt, bool expectedResult) { // Arrange var ticket = PermissionTicket.FromJwt(jwt, Common.Secret); this.storage.Add(ticket.GetHash(), ticket); // Act var validationResult = this.manager.Validate(jwt, Common.Secret); // Assert validationResult.Should().Be(expectedResult); }
public void FromJwtSuccessful() { // Act var ticket = PermissionTicket.FromJwt(ExistingJwt, Common.Secret); // fix timestamp for hash generation ticket.WithExpiry(DateTimeOffset.MinValue.AddMinutes(1)); // Assert var retrievedHash = ticket.GetHash(); var existingHash = ExistingTicket.GetHash(); retrievedHash.Should().BeEquivalentTo(existingHash); }
private PermissionTicket GetPermissionTicket(string token) { PermissionTicket pemTicket; try { pemTicket = PermissionTicket.FromJwt(token, "secret"); } catch (SignatureVerificationException sigVerifyEx) { return(null); } return(pemTicket); }