public async Task Invoke(HttpContext context) { try { await _next(context); } catch (Exception exception) { var identityServerException = exception as BaseUmaException; if (identityServerException == null) { identityServerException = new BaseUmaException(UnhandledExceptionCode, exception.Message); } _options.UmaEventSource.Failure(identityServerException); var code = identityServerException.Code; var message = identityServerException.Message; var error = new ErrorResponse(); PopulateError(error, identityServerException); context.Response.StatusCode = (int)HttpStatusCode.BadRequest; context.Response.ContentType = "application/json"; var serializedError = error.SerializeWithDataContract(); await context.Response.WriteAsync(serializedError); } }
private static void PopulateError(ErrorResponse errorResponse, BaseUmaException exception) { errorResponse.Error = exception.Code; errorResponse.ErrorDescription = exception.Message; }