public void ValidateToken_ThrowsSecurityTokenValidationException_WhenIssuerIsBlank() { // Arrange TimeSpan lifetime = new TimeSpan(24, 0, 0); DateTime tokenCreationDate = DateTime.UtcNow; DateTime tokenExpiryDate = tokenCreationDate + lifetime; SecurityTokenDescriptor tokenDescriptor = this.GetTestSecurityTokenDescriptor(tokenCreationDate, tokenExpiryDate); tokenDescriptor.TokenIssuerName = string.Empty; JwtSecurityTokenHandler securityTokenHandler = new JwtSecurityTokenHandler(); JwtSecurityToken token = securityTokenHandler.CreateToken(tokenDescriptor) as JwtSecurityToken; // Act SecurityTokenInvalidIssuerException ex = Assert.Throws <SecurityTokenInvalidIssuerException>(() => MobileAppTokenHandler.ValidateToken(token.RawData, TestSecretKey)); // Assert Assert.Contains("IDX10211: Unable to validate issuer. The 'issuer' parameter is null or whitespace", ex.Message, StringComparison.Ordinal); }
private static string CreateErrorDescription(Exception authFailure) { AggregateException ex = authFailure as AggregateException; IEnumerable <Exception> enumerable = (IEnumerable <Exception>)((ex == null) ? ((object)new Exception[1] { authFailure }) : ((object)ex.InnerExceptions)); List <string> list = new List <string>(); foreach (Exception item in enumerable) { SecurityTokenInvalidAudienceException ex2 = item as SecurityTokenInvalidAudienceException; if (ex2 == null) { SecurityTokenInvalidIssuerException ex3 = item as SecurityTokenInvalidIssuerException; if (ex3 == null) { if (!(item is SecurityTokenNoExpirationException)) { SecurityTokenInvalidLifetimeException ex4 = item as SecurityTokenInvalidLifetimeException; if (ex4 == null) { SecurityTokenNotYetValidException ex5 = item as SecurityTokenNotYetValidException; if (ex5 == null) { SecurityTokenExpiredException ex6 = item as SecurityTokenExpiredException; if (ex6 == null) { if (!(item is SecurityTokenSignatureKeyNotFoundException)) { if (item is SecurityTokenInvalidSignatureException) { list.Add("The signature is invalid"); } } else { list.Add("The signature key was not found"); } } else { list.Add("The token expired at '" + ex6.Expires.ToString(CultureInfo.InvariantCulture) + "'"); } } else { list.Add("The token is not valid before '" + ex5.NotBefore.ToString(CultureInfo.InvariantCulture) + "'"); } } else { list.Add("The token lifetime is invalid; NotBefore: '" + (ex4.NotBefore?.ToString(CultureInfo.InvariantCulture) ?? "(null)") + "', Expires: '" + (ex4.Expires?.ToString(CultureInfo.InvariantCulture) ?? "(null)") + "'"); } } else { list.Add("The token has no expiration"); } } else { list.Add("The issuer '" + (ex3.InvalidIssuer ?? "(null)") + "' is invalid"); } } else { list.Add("The audience '" + (ex2.InvalidAudience ?? "(null)") + "' is invalid"); } } return(string.Join("; ", list)); }