Konstantine Karantasis created KAFKA-4837:
---------------------------------------------
Summary: Config validation in Connector plugins need to compare
against both canonical and simple class names
Key: KAFKA-4837
URL: https://issues.apache.org/jira/browse/KAFKA-4837
Project: Kafka
Issue Type: Bug
Components: KafkaConnect
Affects Versions: 0.10.2.0
Reporter: Konstantine Karantasis
Assignee: Konstantine Karantasis
Fix For: 0.10.2.1
A validation check in Connect's REST API that was added to validate that the
connector class name in the config matches the connector class name in the
request's URL is too strict by not considering both the simple and the
canonical name of the connector class. For instance, the following example
request:
{code}
PUT /connector-plugins/FileStreamSinkConnector/config/validate/ HTTP/1.1
Host: connect.example.com
Accept: application/json
{
"connector.class": "org.apache.kafka.connect.file.FileStreamSinkConnector",
"tasks.max": "1",
"topics": "test-topic"
}
{code}
returns a "Bad Request" response with error code "400".
Currently the reasonable workaround is to exactly match the connector class
name in both places. The following will work:
{code}
PUT
/connector-plugins/"org.apache.kafka.connect.file.FileStreamSinkConnector/config/validate/
HTTP/1.1
Host: connect.example.com
Accept: application/json
{
"connector.class": "org.apache.kafka.connect.file.FileStreamSinkConnector",
"tasks.max": "1",
"topics": "test-topic"
}
{code}
However, this is not flexible enough and also breaks several examples in
documentation. Validation should take into account both simple and canonical
class names.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)