public EnqueueTokenPayload(EnqueueTokenPayload payload, string customDataKey, string customDataValue) { this.Key = payload.Key; this.RelativeQuality = payload.RelativeQuality; this._customData = payload._customData; this._customData.Add(customDataKey, customDataValue); }
public EnqueueTokenPayload(EnqueueTokenPayload payload, string key) { this.Key = key; this.RelativeQuality = payload.RelativeQuality; this._customData = payload._customData; }
public EnqueueTokenPayload(EnqueueTokenPayload payload, double relativeQuality) { this.Key = payload.Key; this.RelativeQuality = relativeQuality; this._customData = payload._customData; }
public EnqueueTokenPayloadGenerator WithCustomData(String key, String value) { this._payload = new EnqueueTokenPayload(this._payload, key, value); return(this); }
public EnqueueTokenPayloadGenerator WithRelativeQuality(double relativeQuality) { this._payload = new EnqueueTokenPayload(this._payload, relativeQuality); return(this); }
public EnqueueTokenPayloadGenerator WithKey(String key) { this._payload = new EnqueueTokenPayload(this._payload, key); return(this); }
public EnqueueTokenPayloadGenerator() { this._payload = new EnqueueTokenPayload(); }
public static IEnqueueToken Parse(string tokenString, string secretKey) { if (string.IsNullOrEmpty(secretKey)) { throw new ArgumentException("Invalid secret key", nameof(secretKey)); } if (string.IsNullOrEmpty(tokenString)) { throw new ArgumentException("Invalid token", nameof(tokenString)); } var tokenParts = tokenString.Split('.'); var headerPart = tokenParts[0]; var payloadPart = tokenParts[1]; var hashPart = tokenParts[2]; if (string.IsNullOrEmpty(headerPart)) { throw new ArgumentException("Invalid token", nameof(tokenString)); } if (string.IsNullOrEmpty(hashPart)) { throw new ArgumentException("Invalid token", nameof(tokenString)); } var token = headerPart + "." + payloadPart; var expectedHash = Base64UrlEncoding.Encode(ShaHashing.GenerateHash(secretKey, token)); if (expectedHash != hashPart) { throw new InvalidHashException(); } try { var headerModel = HeaderDto.DeserializeHeader(headerPart); EnqueueTokenPayload payload = null; if (!string.IsNullOrEmpty(payloadPart)) { payload = EnqueueTokenPayload.Deserialize(payloadPart, secretKey, headerModel.TokenIdentifier); } return(new EnqueueToken( headerModel.TokenIdentifier, headerModel.CustomerId, headerModel.EventId, DateTimeOffset.FromUnixTimeMilliseconds(headerModel.Issued).DateTime, headerModel.Expires.HasValue ? new DateTime?(DateTimeOffset.FromUnixTimeMilliseconds(headerModel.Expires.Value).DateTime) : null, headerModel.IpAddress, headerModel.XForwardedFor, payload) { TokenWithoutHash = token, HashCode = expectedHash }); } catch (Exception ex) { throw new TokenDeserializationException("Unable to deserialize token", ex); } }