Skip to content

Abris not working when used with confluent schema registry over basic auth (found on dataproc) #364

@DwivediPrasoon

Description

@DwivediPrasoon

This is an issue with confluent-schema-registry-client though but getting extended to Abris. The issue is, when schema registry is being used with basic auth over a confluent instance, it is showing 401 while fetching schema from confluent (incase of dataproc cluster over a private VPN). One can not just pass credentials like following:

AbrisConfig.fromConfluentAvro.downloadReaderSchemaByLatestVersion
          .andTopicNameStrategy(getTopic)
          .usingSchemaRegistry(
            Map(
              AbrisConfig.SCHEMA_REGISTRY_URL -> Configuration.schemaRegistryUrl,
              SchemaRegistryClientConfig.BASIC_AUTH_CREDENTIALS_SOURCE -> "USER_INFO",
              SchemaRegistryClientConfig.USER_INFO_CONFIG -> s"${Configuration.schemaRegistryUsername}:${Configuration.schemaRegistryPassword}"
            )
          )

instead confluent can give you schema if used with a rest service created and passed through. e.g.

val restService = new RestService(urls)
    val provider = new UserInfoCredentialProvider()
    provider.configure(configs.asJava)
    restService.setBasicAuthCredentialProvider(provider)
    new CachedSchemaRegistryClient(restService, maxSchemaObject)

The current implementation of this is not allowing to use restService based constructor with CachedSchemaRegistryClient, so I have tried changing Abris code and made a separate jar with above change. Raising a PR to add this feature.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions