private ValidatedJWToken(JwtSecurityToken t) { RawTokenData = t.RawData; var claims = t.Claims.ToDictionary(x => x.Type); if (!claims.ContainsKey(JWToken.ClientIdKey) || !claims.ContainsKey(JWToken.TenancyIdKey) || !claims.ContainsKey(JWToken.UserIdKey) || !claims.ContainsKey(JWToken.GrantsDocumentKey)) { throw new Exception("Missing keys in token"); } var securityActionStrings = JsonConvert.DeserializeObject <IEnumerable <string> >(claims[JWToken.GrantsDocumentKey].Value); var securityActionEnums = new HashSet <SecurityAction>(); foreach (var s in securityActionStrings) { SecurityAction action; if (Enum.TryParse(s, true, out action)) { securityActionEnums.Add(action); } } ACC = new AuthenticatedClientClaims { Client = new ClientInstanceIndicator(Guid.Parse(claims[JWToken.ClientIdKey].Value)), Tenancy = new TenancyIndicator(Guid.Parse(claims[JWToken.TenancyIdKey].Value)), User = new StaffMemberIndicator(Guid.Parse(claims[JWToken.UserIdKey].Value)), SecurityActions = securityActionEnums, }; }
public ValidatedJWTokenTestForgery(StaffMemberIndicator user, IEnumerable <SecurityAction> securityActions, TenancyIndicator tenancy, ClientInstanceIndicator clientInstance, DateTime requestTime, bool hasExpiration) { var sskf = new StubSecurityKeyFactory("SecretKeySecretKeySecretKeySecretKeySecretKeySecretKeySecretKeySecretKey"); ACC = new AuthenticatedClientClaims { Tenancy = tenancy, User = user, Client = clientInstance, }; ACC.SecurityActions.UnionWith(securityActions); RawTokenData = new JWToken(clientInstance, user, securityActions, tenancy, requestTime, hasExpiration, sskf.SigningCredentials).SignedToken; }