private static TokenState CreateInvalidToken(TokenValidationStatus status, JwtDescriptor descriptor, string?claim = null) { switch (status) { case TokenValidationStatus.SignatureKeyNotFound: descriptor.Header.Add(JwtHeaderParameterNames.Kid, "x"); break; case TokenValidationStatus.MissingEncryptionAlgorithm: descriptor.Header.Add(JwtHeaderParameterNames.Enc, (object)null !); break; } var token = descriptor; var writer = new JwtWriter(); writer.IgnoreTokenValidation = true; var jwt = writer.WriteTokenString(token); switch (status) { case TokenValidationStatus.MalformedToken: jwt = "/" + jwt.Substring(0, jwt.Length - 1); break; case TokenValidationStatus.InvalidSignature: var parts = jwt.Split('.'); parts[2] = new string(parts[2].Reverse().ToArray()); jwt = parts[0] + "." + parts[1] + "." + parts[2]; break; case TokenValidationStatus.MalformedSignature: jwt = jwt.Substring(0, jwt.Length - 2); break; case TokenValidationStatus.MissingSignature: parts = jwt.Split('.'); jwt = parts[0] + "." + parts[1] + "."; break; default: break; } return(new TokenState(jwt, status)); }
private static TokenState CreateInvalidToken(TokenValidationStatus status, JwtDescriptor descriptor) { switch (status) { case TokenValidationStatus.SignatureKeyNotFound: descriptor.Header.Replace(new JwtProperty(HeaderParameters.KidUtf8, (string)descriptor.Header[HeaderParameters.KidUtf8].Value + "x")); break; case TokenValidationStatus.MissingEncryptionAlgorithm: descriptor.Header.Replace(new JwtProperty(HeaderParameters.EncUtf8)); break; } var token = descriptor; var writer = new JwtWriter(); //writer.IgnoreTokenValidation = true; var jwt = writer.WriteTokenString(token); switch (status) { case TokenValidationStatus.MalformedToken: jwt = "/" + jwt.Substring(0, jwt.Length - 1); break; case TokenValidationStatus.InvalidSignature: var parts = jwt.Split('.'); parts[2] = new string(parts[2].Reverse().ToArray()); jwt = parts[0] + "." + parts[1] + "." + parts[2]; break; case TokenValidationStatus.MalformedSignature: jwt = jwt.Substring(0, jwt.Length - 2); break; case TokenValidationStatus.MissingSignature: parts = jwt.Split('.'); jwt = parts[0] + "." + parts[1] + "."; break; default: break; } return new TokenState(jwt, status); }