Я использую Kafka Connect с JDB C Source Connector для DB2 в автономном режиме. Все работает нормально, но я помещаю пароли и другую конфиденциальную информацию в свой файл коннектора в виде обычного текста. Я хотел бы удалить это, поэтому я обнаружил, что можно использовать FileConfigProvider:
https://docs.confluent.io/current/connect/security.html#fileconfigprovider
Однако, когда я пытаюсь использовать это, это не кажется забрать свой файл свойств. Вот что я делаю:
connect.standalone.oroperties
-
config.providers=file
config.providers.file.class=org.apache.kafka.common.config.provider.FileConfigProvider
secrets.properties
-
password=thePassword
Source Config
-
"connection.password": "${file:/Users/me/app/context/src/main/kafkaconnect/connector/secrets.properties:password}",
"table.whitelist": "MY_TABLE",
"mode": "timestamp",
Когда я пытаюсь загрузить исходный коннектор (через rest api), я получаю следующую ошибку:
{"error_code": 400, "message": "Конфигурация коннектора недействительна и содержит следующее 2 ошибки: \ nНеверное значение com.ibm.db2.j cc .am.SqlInvalidAuthorizationSpecException: [jcc] [t4] [2013] [11249] [4.26.14] Произошла ошибка авторизации подключения. Причина: ID пользователя или Недействительный пароль. ERRORCODE = -4214, SQLSTATE = 28000 для конфигурации Не удалось открыть соединение с jdb c: db2: //11.1.111.111: 50000 / mydb \ nНеверное значение com.ibm.db2.j cc. am.SqlInvalidAuthorizationSpecException: [jcc] [t4] [2013] [11249] [4.26.14] Произошла ошибка авторизации подключения. Причина: неверный идентификатор пользователя или пароль. ERRORCODE = -4214, SQLSTATE = 28000 для конфигурации Не удалось открыть соединение с jdb c: db2: //11.1.111.111: 50000 / mydb \ n Вы также можете найти приведенный выше список ошибок в конечной точке /{connectorType}/config/validate
"}
Я ввожу правильный пароль. Это сработает, если я просто закодирую его в свой исходный код json. Любые идеи? Спасибо!
Редактировать: в качестве примечания, я получаю аналогичные результаты при вставке на стороне приемника в базу данных Postgres.
Редактировать: Результат GET / коннекторов:
{
"name": "jdbc_source_test-dev",
"config": {
"connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector",
"timestamp.column.name": "UPDATED_TS",
"connection.password": "${file:/opt/connect-secrets.properties:dev-password}",
"validate.non.null": "false",
"table.whitelist": "MY_TABLE",
"mode": "timestamp",
"topic.prefix": "db2-test-",
"transforms.extractInt.field": "kafka_id",
"_comment": "The Kafka topic will be made up of this prefix, plus the table name ",
"connection.user": "username",
"name": "jdbc_source_test-dev",
"value.converter": "org.apache.kafka.connect.json.JsonConverter",
"connection.url": "jdbc:db2://11.1.111.111:50000/mydb",
"key.converter": "org.apache.kafka.connect.storage.StringConverter"
},
"tasks": [
{
"connector": "jdbc_source_test-dev",
"task": 0
}
],
"type": "source"
}