如何隐藏 Kafka connect api 未处理异常的堆栈跟踪

Posted

技术标签:

【中文标题】如何隐藏 Kafka connect api 未处理异常的堆栈跟踪【英文标题】:How to hide stack trace of Kafka connect api unhandled exception 【发布时间】:2019-09-03 05:28:08 【问题描述】:

作为在分布式模式下注册连接器的一部分,当在 API 请求中传递一些无效的 json 有效负载时,我在响应完整堆栈跟踪时收到错误,这在我的情况下是不可取的。

响应示例:

HTTP/1.1 500 Internal Server Error Connection: close Date: Fri, 26 Jul 2019 08:27:17 GMT Content-Type: application/json Content-Length: 443 Server: Jetty(9.4.11.v20180605)
"error_code":500,"message":"Cannot construct instance of `java.util.LinkedHashMap` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('')\n at [Source: (org.glassfish.jersey.message.internal.ReaderInterceptorExecutor $UnCloseableInputStream); line: 2, column: 46] (through reference chain: org.apache.k afka.connect.runtime.rest.entities.CreateConnectorRequest[\"config\"])"

有没有办法隐藏或缩短完整的堆栈跟踪。

注意:我使用的是 Hortonworks Kafka 包。

【问题讨论】:

【参考方案1】:

REST API 返回 REST API 返回的内容 :)

因此,您可以 (a) 停止发送无效的 JSON;) (b) 编译您自己的 Kafka 版本并禁用您不希望返回的输出位。

【讨论】:

谢谢罗宾 :)。这是 Pen 测试发现的一部分,他尝试了所有无效的 JSON ;)。选项 (b) 更合适。

以上是关于如何隐藏 Kafka connect api 未处理异常的堆栈跟踪的主要内容,如果未能解决你的问题,请参考以下文章

Kafka核心API——Connect API

Kafka核心API——Connect API

使用 Kafka Connect API JDBC Sink 连接器示例到 Oracle 数据库的 Kafka 主题

Kafka Connect 使用带有 Strimzi 的 REST API 和种类:KafkaConnector

Kafka 连接 API 客户端

Kafka Connect:获取连接器配置