25 Commits
Author SHA1 Message Date
Jordan Moore ddf5cd1139 Prep next release 2019-11-06 00:06:56 -06:00
Jordan Moore b76f3a6bad Release to Bintray 2019-11-05 23:15:07 -06:00
John HeinnickelandJordan Moore cf5d375782 Cure HTTP Authentication Singleton's Password Overwrite (#19)
* Enable Service Provider Relocation (#17) (#4)

Schema Registry Client's basic HTTP Authentication support is
implemented through a ServiceProvider.  Without handling the fact that
relocating the schema client also relocates the service implementations,
no implementations are found when the client attempts to find a strategy
that matches an authentication source type specified through
basic.auth.credentials.source...

* Improve test cases that distinguish between source and destination credentials

-- Split credentials fixture value pair into two distinct value pairs,
one for source registry clients, another for destinations.
-- Add test case verifying source authentication properties reach source
registry client
-- Add test case verifying destination authentication properties reach
destination registry client
-- Add test cases verifying expected exception when incorrect
credentials are passed to source and/or destination registry client.
-- Add test case using distinct credentials for both source and
destination in same execution and using same authentication source
strategy (currently does not pass!)

* Compensate for Basic HTTP Authentication's Singleton Implementation

The fact that Basic HTTP Authentication as implemented in the Kafka
Connect Client uses a singleton to hold configured credentials means
that if both the source and destination schema registries require basic
HTTP authentication and want to provide credentials via
`basic.auth.credentials.source`, the second set of credentials will
overwrite and replace the first`

Connect's three singletons for Basic HTTP Authentication are selected by
the same three key values used in `basic.auth.credentials.source` to
designate which represented algorithm to use.

This commit begins compensating for these singletons first by creating
and registering two additional copies of the Basic Auth singletons in
the SMT's code base.  One is intended for use by the source broker's
schema registry client, the other is for destinaation broker's registry.
The only intentional difference between what is built here and the
production Kafka Connect namespac is the addition of a short prefix to
distinguish `SRC_` from `DEST_`.

Now, when removing a prefix it uses to broker input to one adapter or
the orther, in addition to selecting which configuration hash
destrination to use, it also adds that prefix to the value it provides
for `basic.auth.credentials.source`.  As a result, the source and
destination schema registry clients will each now use a diffent
singleton to hold onto their credentials with two distinct singletons.

This work relies on addition of ServicesRouterTransformer to he maven
shade plugin that was recently reviewd and released.
0.2.0
2019-09-23 09:53:24 -05:00
John HeinnickelandJordan Moore 8b76edb145 Hide user info (#22)
* Enable Service Provider Relocation (#17) (#4)

Schema Registry Client's basic HTTP Authentication support is
implemented through a ServiceProvider.  Without handling the fact that
relocating the schema client also relocates the service implementations,
no implementations are found when the client attempts to find a strategy
that matches an authentication source type specified through
basic.auth.credentials.source...

* Modify USER_INFO fields to use type Password instead of String

Kafka Connect logs connector configurations before launching
them, which is a problem if some of those configuration
properties happen to contain sensitive information that does
not belong in a log file, such as any Basic HTTP Authentication
credentials MirrorTool ahs been configured to make use of.

Kakfa Connect provides a `Password` data type that is always
masked on display.  It was relatifely simple to change both
the USER_INFO fields recently added to use PASSWORD instead
of STRING as their data types.

The URL field can sometimes also contain a password, when
the authentiation source is set to URL instead of USER_INFO.
There is no way to make these data types conditional, so
it is not possible to make URL of type PASSWORD if the
credential source is URL, while it is also of type STRING
if the credential source is not URL.  Since the credential
format when using URL is the same as it is when using
USER_INFO, and there is arguably a good reason to not mask
the rest of the URL, the URL fields continue to have type
String here.
2019-09-03 11:05:12 -05:00
John HeinnickelandJordan Moore f961af9c24 Enable Service Provider Relocation (#17)
Schema Registry Client's basic HTTP Authentication support is
implemented through a ServiceProvider.  Without handling the fact that
relocating the schema client also relocates the service implementations,
no implementations are found when the client attempts to find a strategy
that matches an authentication source type specified through
basic.auth.credentials.source...
2019-08-29 10:14:10 -05:00
Jordan MooreandGitHub 9fd4ebff1b Fix "Schema Registry Client Configuration" section 2019-08-01 15:45:27 -05:00
John HeinnickelandJordan Moore b78c1ed227 Basic HTTP Authentication (#15) 2019-08-01 15:38:28 -05:00
Jordan MooreandGitHub 80f789ba2e Update README.md 2019-07-24 10:19:38 -05:00
Jordan MooreandGitHub 79c1db763f Create config.yml 2019-07-24 10:13:56 -05:00
Jordan Moore fafaca3f1b Add tests that copy multiple schemas 2019-04-12 00:39:15 -05:00
Jordan MooreandGitHub 4d6e40264c Merge pull request #10 from cricket007/refactor-schemaCheck
Refactor Schema type check. Add tests.
2019-04-06 17:24:17 -05:00
Jordan Moore 9eb95f3ba3 Refactor Schema type check. Add tests. 2019-04-06 17:22:36 -05:00
Jordan MooreandGitHub d02f2c4c3c Update README.md 2019-03-28 17:23:27 -05:00
Jordan MooreandGitHub 2cbd4efe22 Merge pull request #8 from cricket007/feature/allow-all-nulls
Allow all nulls
2019-03-27 12:58:02 -05:00
Jordan Moore 6e4365b607 Handle nulls for keys and values 2019-03-15 02:24:30 -05:00
Tayfun WiechertandJordan Moore a40d8a97dc - handle case when schema info is present but value is null
- not skipping record in that case but omitting schema re-registration
2019-03-15 02:23:25 -05:00
Tayfun WiechertandJordan Moore 443ae8d77c - handle case when schema info is present but value is null 2019-03-15 02:23:25 -05:00
Jordan MooreandGitHub b3429f0cab Merge pull request #9 from cricket007/feature/spotless
Add kafka-clients and spotless-maven-plugin
2019-03-15 02:22:23 -05:00
Jordan Moore 53e900a5c3 Add kafka-clients and spotless-maven-plugin 2019-03-15 02:21:53 -05:00
Jordan Moore bd40609920 Handle null keys 2019-02-04 16:45:04 -06:00
Jordan MooreandGitHub 207ac8f901 Add metadata in pom 2019-01-30 15:14:24 -06:00
Jordan Moore 97d8a352ea Add metadata in pom 2019-01-30 15:12:29 -06:00
Jordan MooreandGitHub 3e9bbffff9 Add Subject Renaming section to README
Closes #3
2019-01-30 14:19:17 -06:00
Jordan Moore 6db8204d1c Commit code 2019-01-29 17:06:48 -06:00
Jordan MooreandGitHub 081595103d Initial commit 2019-01-29 17:05:26 -06:00