Commit Graph

5096 Commits

Author SHA1 Message Date
Matthias J. Sax c238e14ac6 MINOR: docs should point to latest version (#5132)
Reviewers: Guozhang Wang <wangguoz@gmail.com>
2018-06-05 14:21:33 -07:00
Arjun Satish faa15b8b75 KAFKA-6981: Move the error handling configuration properties into the ConnectorConfig and SinkConnectorConfig classes (KIP-298)
Move the error handling configuration properties into the ConnectorConfig and SinkConnectorConfig classes, and refactor the tests and classes to use these new properties.

Testing: Unit tests and running the connect-standalone script with a file sink connector.

Author: Arjun Satish <arjun@confluent.io>
Author: Randall Hauch <rhauch@gmail.com>

Reviewers: Konstantine Karantasis <konstantine@confluent.io>, Magesh Nandakumar <magesh.n.kumar@gmail.com>, Robert Yokota <rayokota@gmail.com>, Randall Hauch <rhauch@gmail.com>, Ewen Cheslack-Postava <ewen@confluent.io>

Closes #5125 from wicknicks/KAFKA-6981
2018-06-05 13:59:15 -07:00
ConcurrencyPractitioner ba0ebca7a5 [KAFKA-6730] Simplify State Store Recovery (#5013)
Reviewer: Matthias J. Sax <matthias@confluent.io>, Guozhang Wang <guozhang@confluent.io>, Bill Bejeck <bill@confluent.io>
2018-06-05 13:35:47 -07:00
Rajini Sivaram 7c69de42df
MINOR: Rename package `internal` to `internals` for consistency (#5137) 2018-06-05 21:07:30 +01:00
Bill Bejeck ef413699b6 KAFKA-6704: InvalidStateStoreException from IQ when StreamThread closes store (#4801)
While using an iterator from IQ, it's possible to get an InvalidStateStoreException if the StreamThread closes the store during a range query.

Added a unit test to SegmentIteratorTest for this condition.

Reviewers: John Roesler <john@confluent.io>, Matthias J. Sax <matthias@confluent.io>, Guozhang Wang <wangguoz@gmail.com>
2018-06-05 11:49:36 -07:00
Guozhang Wang 86410e14d7 MINOR: Add missing configs for resilience settings
Reviewers: Matthias J. Sax <matthias@confluent.io>, Bill Bejeck <bill@confluent.io>
2018-06-05 11:41:03 -07:00
John Roesler ba5fd3c8a4 MINOR: Add regression tests for KTable mapValues and filter (#5134)
Reviewers: Bill Bejeck <bill@confluent.io>, Guozhang Wang <wangguoz@gmail.com>
2018-06-05 11:12:57 -07:00
Mickael Maison 8a166f8c28 KAFKA-6750: Add listener name to authentication context (KIP-282) (#4829)
PrincipalBuilder implementations can now take the listener into account
when creating the Principal. This is especially interesting in deployments
where inter-broker traffic is on a different listener than client traffic or
when the same protocol is used by multiple listeners.

The change in itself is mostly "plumbing" as the listener name needs to be
passed from ChannelBuilders all the way down to all classes implementing
AuthenticationContext.

Reviewers: Rajini Sivaram <rajinisivaram@googlemail.com>, Ismael Juma <ismael@juma.me.uk>

Co-authored-by: Edoardo Comar <ecomar@uk.ibm.com>
Co-authored-by: Mickael Maison <mickael.maison@gmail.com>
2018-06-05 05:23:10 -07:00
Rajini Sivaram 9df3872fbd KAFKA-3665: Enable TLS hostname verification by default (KIP-294) (#4956)
Make HTTPS the default ssl.endpoint.identification.algorithm.

Reviewers: Ismael Juma <ismael@juma.me.uk>
2018-06-05 04:08:13 -07:00
Jorge Quilcate Otoya e8ddb76573 KAFKA-6938: Add documentation for accessing Headers on Kafka Streams Processor API (#5128)
Reviewers: Guozhang Wang <wangguoz@gmail.com>
2018-06-04 15:39:20 -07:00
John Roesler 6f9f365573 KAFKA-6813: return to double-counting for count topology names (#5075)
#4919 unintentionally changed the topology naming scheme. This change returns to the prior scheme.

Reviewers: Bill Bejeck <bill@confluent.io>, Matthias J. Sax <matthias@confluent.io>, Guozhang Wang <wangguoz@gmail.com>
2018-06-04 15:33:53 -07:00
Paolo Patierno c8f38dff71 KAFKA-5919; Adding checks on "version" field for tools using it
Adding checks on "version" field for tools using it.
This is a new version of the closed PR #3887 (to see for more comments and related discussion).

Author: Paolo Patierno <ppatierno@live.com>

Reviewers: Dong Lin <lindong28@gmail.com>

Closes #5126 from ppatierno/kafka-5919-update
2018-06-04 14:32:04 -07:00
Guozhang Wang 718d6f2475
MINOR: Remove deprecated KafkaStreams constructors in docs (#5118)
Reviewers: Bill Bejeck <bill@confluent.io>, Matthias J. Sax <matthias@confluent.io>
2018-06-04 13:43:20 -07:00
Jason Gustafson d02f02130e MINOR: Fix bug in AdminClient node reassignment following connection failure (#5112)
We added logic to reassign nodes in callToSend after a connection failure, but we do not handle the case when there is no node currently available to reassign the request to. This can happen when using MetadataUpdateNodeIdProvider if all of the known nodes are blacked out awaiting the retry backoff. To fix this, we need to ensure that the call is added to pendingCalls if a new node cannot be found.
2018-06-04 10:23:05 +01:00
Manikumar Reddy O 202ab22b98 KAFKA-5523: Remove ReplayLogProducer tool (#5092)
Reviewers: Ismael Juma <ismael@juma.me.uk>
2018-06-03 01:52:11 -07:00
Vahid Hashemian 0cacbcf30e MINOR: Remove usages of JavaConversions and fix some typos (#5115)
Reviewers: Ismael Juma <ismael@juma.me.uk>
2018-06-02 23:45:44 -07:00
Rajini Sivaram f6d7377f95 KAFKA-6912; Add test for authorization with custom principal types
Author: Rajini Sivaram <rajinisivaram@googlemail.com>

Reviewers: Manikumar Reddy <manikumar.reddy@gmail.com>, Dong Lin <lindong28@gmail.com>

Closes #5030 from rajinisivaram/MINOR-group-test
2018-06-02 18:28:16 -07:00
Jason Gustafson 7b0254e00f
HOTFIX: Fix compilation error in ConsumerPerformance (#5127)
Reviewers: Ismael Juma <ismael@juma.me.uk>
2018-06-02 17:01:43 -07:00
Alex Dunayevsky 1d5f8649ce KAFKA-6743; ConsumerPerformance fails to consume all messages [KIP-281] (#4818)
This patch implements KIP-281, which adds a configurable timeout to the consumer performance tool with a default value of 10 seconds. The old timeout was hard-coded as 1 second. Additionally, this patch adds a warning message when the tool exits after a timeout rather than returning silently.

Reviewers: Dhruvil Shah <dhruvil@confluent.io>, Jason Gustafson <jason@confluent.io>
2018-06-02 16:43:53 -07:00
Robert Yokota adec6d6e47 MINOR: Fix JMX serialization by reverting lazy computation of JMX attributes (#5114)
This reverts commit c9ec292135 (#5011). That
commit introduces an anonymous inner class which retains a
reference to the non-serializable outer class `KafkaMbean`
breaking Serialization. This means that reading JMX metrics
via JConsole or JmxTool no longer works since RMI relies
on Java Serialization.

Reviewers: Jason Gustafson <jason@confluent.io>, Dong Lin <lindong28@gmail.com>, Ismael Juma <ismael@juma.me.uk>
2018-06-02 13:14:55 -07:00
Vahid Hashemian 341d5db260 KAFKA-6955: Use Java AdminClient in DeleteRecordsCommand (#5088)
- Removed internal kafka.admin.AdminClient.deleteRecordsBefore since it's
no longer used.
- Removed redundant tests and rewrote non redundant ones to use the Java
AdminClient.

Reviewers: Viktor Somogyi <viktor.somogyi@cloudera.com>, Manikumar Reddy <manikumar.reddy@gmail.com>, Ismael Juma <ismael@juma.me.uk>
2018-06-02 12:41:55 -07:00
Mickael Maison 73e2cbbd8f KAFKA-6760: Fix response logging in the Controller (#4834)
- Override toString in LeaderAndIsrResponse and StopReplicaResponse
- Add unit tests

Reviewers: Ismael Juma <ismael@juma.me.uk>
2018-06-01 16:40:16 -07:00
Bill Bejeck cb2f024f87 MINOR: Use thread name and task for sensor name (#5111)
Changes to keep the operation name as is and make the sensor name unique.

Reviewers: John Roesler <john@confluent.io>, Matthias J. Sax <matthias@confluent.io>, Guozhang Wang <wangguoz@gmail.com>
2018-06-01 14:48:44 -07:00
huxi 0120e88e2c KAFKA-6973: Validate topic config message.timestamp.type (#5106)
Specifying an invalid config (i.e. something other than `CreateTime` or
`LogAppendTime`) via `TopicCommand` would previously cause the
broker to fail on start-up.

Reviewers: Manikumar Reddy <manikumar.reddy@gmail.com>, Ismael Juma <ismael@juma.me.uk>
2018-06-01 07:12:42 -07:00
emmanuel Harel e24916a68f MINOR:Fix table outer join test (#5099) 2018-06-01 12:09:24 +01:00
Joan Goyeau ad56f04af9 KAFKA-6936: Implicit materialized for aggregate, count and reduce (#5066)
In #4919 we propagate the SerDes for each of these aggregation operators.

As @guozhangwang mentioned in that PR:

```
reduce: inherit the key and value serdes from the parent XXImpl class.
count: inherit the key serdes, enforce setting the Serdes.Long() for value serdes.
aggregate: inherit the key serdes, do not set for value serdes internally.
```

Although it's all good for reduce and count, it is quiet unsafe to have aggregate without Materialized given. In fact I don't see why we would not give a Materialized for the aggregate since the result type will always be different (otherwise use reduce) and also the value Serde is simply not propagated.

This has been discussed previously in a broader PR before but I believe for aggregate we could pass implicitly a Materialized the same way we pass a Joined, just to avoid the stupid case. Then if the user wants to specialize, he can give his own Materialized.

Reviewers: Debasish Ghosh <dghosh@acm.org>, Guozhang Wang <guozhang@confluent.io>
2018-05-31 17:19:37 -07:00
Dhruvil Shah 837f31dd18 KAFKA-6927; Chunked down-conversion to prevent out of memory errors on broker [KIP-283] (#4871)
Implementation for lazy down-conversion in a chunked manner for efficient memory usage during down-conversion. This pull request is mainly to get initial feedback on the direction of the patch. The patch includes all the main components from KIP-283.

Reviewers: Jason Gustafson <jason@confluent.io>
2018-05-30 23:03:51 -07:00
Matthias J. Sax d166485be1
KAFKA-6054: Add 'version probing' to Kafka Streams rebalance (#4636)
implements KIP-268

Reviewers: Bill Bejeck <bill@confluent.io>, John Roesler <john@confluent.io>, Guozhang Wang <guozhang@confluent.io>
2018-05-30 22:39:42 -07:00
Jason Gustafson 3683d475ed
MINOR: Follow-up improvements for KIP-266 (#5084)
This patch contains a few follow-up improvements/cleanup for KIP-266:

- Add upgrade notes
- Add missing `commitSync(Duration)` API
- Improve timeout messages and fix some naming inconsistencies
- Various small cleanups

Reviewers: John Roesler <john@confluent.io>, Guozhang Wang <wangguoz@gmail.com>
2018-05-30 17:28:17 -07:00
Robert Yokota 08e8facdc9 KAFKA-6886: Externalize secrets from Connect configs (KIP-297)
This commit allows secrets in Connect configs to be externalized and replaced with variable references of the form `${provider:[path:]key}`, where the "path" is optional.

There are 2 main additions to `org.apache.kafka.common.config`: a `ConfigProvider` and a `ConfigTransformer`.  The `ConfigProvider` is an interface that allows key-value pairs to be provided by an external source for a given "path".  An a TTL can be associated with the key-value pairs returned from the path.  The `ConfigTransformer` will use instances of `ConfigProvider` to replace variable references in a set of configuration values.

In the Connect framework, `ConfigProvider` classes can be specified in the worker config, and then variable references can be used in the connector config.  In addition, the herder can be configured to restart connectors (or not) based on the TTL returned from a `ConfigProvider`.  The main class that performs restarts and transformations is `WorkerConfigTransformer`.

Finally, a `configs()` method has been added to both `SourceTaskContext` and `SinkTaskContext`.  This allows connectors to get configs with variables replaced by the latest values from instances of `ConfigProvider`.

Most of the other changes in the Connect framework are threading various objects through classes to enable the above functionality.

Author: Robert Yokota <rayokota@gmail.com>
Author: Ewen Cheslack-Postava <me@ewencp.org>

Reviewers: Randall Hauch <rhauch@gmail.com>, Ewen Cheslack-Postava <ewen@confluent.io>

Closes #5068 from rayokota/KAFKA-6886-connect-secrets
2018-05-30 14:43:11 -07:00
Guozhang Wang f33e9a346e KAFKA-4936: Add dynamic routing in Streams (#5018)
implements KIP-303

Reviewers: Bill Bejeck <bill@confluent.io>, John Roesler <john@confluent.io>, Matthias J. Sax <matthias@confluent.io>
2018-05-30 11:54:53 -07:00
Arjun Satish f8dfbb067c KAFKA-6738: Implement error handling for source and sink tasks (KIP-298)
This PR implements the features described in this KIP: https://cwiki.apache.org/confluence/display/KAFKA/KIP-298%3A+Error+Handling+in+Connect

This PR changes the Connect framework to allow it to automatically deal with errors encountered while processing records in a Connector. The following behavior changes are introduced here:

**Retry on Failure**: Retry the failed operation a configurable number of times, with backoff between each retry.
**Task Tolerance Limits**: Tolerate a configurable number of failures in a task.

We also add the following ways to report errors, along with sufficient context to simplify the debugging process:

**Log Error Context**: The error information along with processing context is logged along with standard application logs.
**Dead Letter Queue**: Produce the original message into a Kafka topic (applicable only to sink connectors).

New **metrics** which will monitor the number of failures, and the behavior of the response handler are added.

The changes proposed here **are backward compatible**. The current behavior in Connect is to kill the task on the first error in any stage. This will remain the default behavior if the connector does not override any of the new configurations which are provided as part of this feature.

Testing: added multiple unit tests to test the retry and tolerance logic.

Author: Arjun Satish <arjun@confluent.io>
Author: Ewen Cheslack-Postava <me@ewencp.org>

Reviewers: Magesh Nandakumar <magesh.n.kumar@gmail.com>, Randall Hauch <rhauch@gmail.com>, Konstantine Karantasis <konstantine@confluent.io>, Ewen Cheslack-Postava <ewen@confluent.io>

Closes #5065 from wicknicks/KAFKA-6378
2018-05-30 11:39:45 -07:00
Florian Hussonnois 14171fa8b4 KAFKA-6957 make InternalTopologyBuilder accessible from AbstractStream subclasses (#5085)
Currently, the AbstractStream class defines a copy-constructor that allow to extend KStream and KTable APIs with new methods without impacting the public interface.

However adding new processor or/and store to the topology is made throught the internalTopologyBuilder that is not accessible from AbstractStream subclasses defined outside of the package (package visibility).

Matthias J. Sax <matthias@confluent.io>, Guozhang Wang <guozhang@confluent.io>
2018-05-30 11:13:24 -07:00
Dark 2b6630b518 Remove duplicate code which is invoked twice (#5039)
Reviewers: Ismael Juma <ismael@juma.me.uk>, Guozhang Wang <wangguoz@gmail.com>
2018-05-30 11:09:12 -07:00
Joan Goyeau 1e0793c4ce Update doc of curried joins and aggregates (#5053)
Reviewers: Guozhang Wang <wangguoz@gmail.com>
2018-05-30 11:03:58 -07:00
Jon Lee 1facab387f KAFKA-6028: Improve the quota throttle communication (KIP-219)
This implements KIP-219, where a broker returns a response with throttle time on
quota violation immediately after processing the corresponding request.  After
the response is sent out, the broker will keep the channel muted until the
throttle time is over. Also, on receiving a response with throttle time, client
will block outgoing communication to the broker for the specified throttle time.

See PR 4830, 5064 and 5094 for all the review history

Author: Jon Lee <jonlee@jonlee-ld1.linkedin.biz>

Reviewers: Jun Rao <junrao@gmail.com>, Rajini Sivaram <rajinisivaram@googlemail.com>, Ismael Juma <ismael@juma.me.uk>,  Dong Lin <lindong28@gmail.com>

Closes #5064 from jonlee2/kip-219
2018-05-30 10:10:33 -07:00
ConcurrencyPractitioner f24a62d4ac KAFKA-6608; Add timeout parameter to blocking consumer calls [KIP-266] (#5014)
This patch implements the consumer timeout APIs from KIP-266 (everything except `poll()`, which was done separately).

Reviewers:  John Roesler <john@confluent.io>, Jason Gustafson <jason@confluent.io>
2018-05-30 08:29:54 -07:00
Dong Lin d99f4a0ffa KAFKA-6617; Improve controller performance by batching reassignment znode write operation
KafkaController currently writes reassignment znode once for every partition that has been successfully reassigned. This is unnecessary and controller should be able to update reassignment znode once to remove all partitions that have been reassigned from the reassignment znode.

Author: Dong Lin <dolin@linkedin.com>

Reviewers: Ismael Juma <ismael@juma.me.uk>

Closes #4659 from lindong28/KAFKA-6617
2018-05-29 22:09:21 -07:00
Magesh Nandakumar 98094954a2 KAFKA-6776: ConnectRestExtension Interfaces & Rest integration (KIP-285)
This PR provides the implementation for KIP-285 and also a reference implementation for authenticating BasicAuth credentials using JAAS LoginModule

Author: Magesh Nandakumar <magesh.n.kumar@gmail.com>

Reviewers: Randall Hauch <rhauch@gmail.com>, Arjun Satish <wicknicks@users.noreply.github.com>, Konstantine Karantasis <konstantine@confluent.io>, Ewen Cheslack-Postava <ewen@confluent.io>

Closes #4931 from mageshn/KIP-285
2018-05-29 21:35:22 -07:00
Randall Hauch fffb9c5b5c KAFKA-6913: Add Connect converters and header converters for short, integer, long, float, and double (KIP-305)
*[KIP-305](https://cwiki.apache.org/confluence/display/KAFKA/KIP-305%3A+Add+Connect+primitive+number+converters) has been approved.*

Added converters and header converters for the primitive number types for which Kafka already had serializers and deserializers. All extend a common base class, `NumberConverter`, that encapsulates most of the shared functionality. Unit tests were added to check the basic functionality.

These classes are not used by any other Connect code, and must be explicitly used in Connect workers and connectors.

Author: Randall Hauch <rhauch@gmail.com>

Reviewers: Arjun Satish <wicknicks@users.noreply.github.com>, Magesh Nandakumar <magesh.n.kumar@gmail.com>, Ewen Cheslack-Postava <ewen@confluent.io>

Closes #5034 from rhauch/kafka-6913
2018-05-29 16:37:33 -07:00
Bill Bejeck 4943c3f2f7 MINOR: reduce commit time on test (#5095)
Reviewers: Matthias J. Sax <matthias@confluent.io>, Guozhang Wang <guozhang@confluent.io>
2018-05-29 16:33:00 -07:00
Chris Egerton a64ab91238 KAFKA-5540: Deprecate internal converter configs (KIP-174)
Implementation of [KIP-174](https://cwiki.apache.org/confluence/display/KAFKA/KIP-174+-+Deprecate+and+remove+internal+converter+configs+in+WorkerConfig)

Configuration properties 'internal.key.converter' and 'internal.value.converter'
are deprecated, and default to org.apache.kafka.connect.json.JsonConverter.

Warnings are logged if values are specified for either, or if properties that
appear to configure instances of internal converters (i.e., ones prefixed with
either 'internal.key.converter.' or 'internal.value.converter.') are given.

The property 'schemas.enable' is also defaulted to false for internal
JsonConverter instances (both for keys and values) if it isn't specified.

Documentation and code have also been updated with deprecation notices and
annotations, respectively.

Unit tests have been updated in `PluginsTest` to account for the new defaults for `schemas.enable` for internal key/value converters, and to ensure that (for the time being), internal key/value converters are still configurable despite being deprecated.

Author: Chris Egerton <chrise@confluent.io>
Author: Ewen Cheslack-Postava <me@ewencp.org>

Reviewers: Randall Hauch <rhauch@gmail.com>, Ewen Cheslack-Postava <ewen@confluent.io>

Closes #4693 from C0urante/kafka-5540
2018-05-29 16:22:47 -07:00
Rajini Sivaram 3a8d3a7927 KAFKA-6916; Refresh metadata in admin client if broker connection fails (#5050)
Refresh metadata if broker connection fails so that new calls are sent only to nodes that are alive and requests to controller are sent to the new controller if controller changes due to broker failure. Also reassign calls that could not be sent.

Reviewers: Dong Lin <lindong28@gmail.com>, Jason Gustafson <jason@confluent.io>
2018-05-29 08:37:17 -07:00
Andras Beni 24a7b1c6a5 MINOR: Remove findbugs exclusion matching removed old producer (#5090)
KAFKA-6921 removed deprecated scala producer. This pull request removes the now unnecessary findbugs exclusion that matched one of the affected classes.
2018-05-28 12:11:50 -07:00
Manikumar Reddy O 8bf20bb586 MINOR: Update consumer javadoc for invalid operations on unassigned partitions (#5005)
Document cases where  `IllegalStateException` is raised when attempting an invalid operation on an unassigned partition. Also change `position()` to raise `IllegalStateException` when called on an unassigned partition for consistency.
2018-05-28 12:08:14 -07:00
Ismael Juma b751321486 MINOR: Remove MaxPermSize from gradle.properties
No longer needed since we dropped support for Java 7.

Author: Ismael Juma <ismael@juma.me.uk>

Reviewers: Dong Lin <lindong28@gmail.com>

Closes #5083 from ijuma/remove-max-perm-size
2018-05-27 10:04:58 -07:00
John Roesler c470ff70d3 KAFKA-5697; Implement new consumer poll API from KIP-266 (#4855)
Add the new stricter-timeout version of `poll` proposed in KIP-266.

The pre-existing variant `poll(long timeout)` would block indefinitely for metadata
updates if they were needed, then it would issue a fetch and poll for `timeout` ms 
for new records. The initial indefinite metadata block caused applications to become
stuck when the brokers became unavailable. The existence of the timeout parameter
made the indefinite block especially unintuitive.

This PR adds `poll(Duration timeout)` with the semantics:
1. iff a metadata update is needed:
    1. send (asynchronous) metadata requests
    2. poll for metadata responses (counts against timeout)
        - if no response within timeout, **return an empty collection immediately**
2. if there is fetch data available, **return it immediately**
3. if there is no fetch request in flight, send fetch requests
4. poll for fetch responses (counts against timeout)
    - if no response within timeout, **return an empty collection** (leaving async fetch request for the next poll)
    - if we get a response, **return the response**

The old method, `poll(long timeout)` is deprecated, but we do not change its semantics, so it remains:
1. iff a metadata update is needed:
    1. send (asynchronous) metadata requests
    2. poll for metadata responses *indefinitely until we get it*
2. if there is fetch data available, **return it immediately**
3. if there is no fetch request in flight, send fetch requests
4. poll for fetch responses (counts against timeout)
    - if no response within timeout, **return an empty collection** (leaving async fetch request for the next poll)
    - if we get a response, **return the response**

One notable usage is prohibited by the new `poll`: previously, you could call `poll(0)` to block for metadata updates, for example to initialize the client, supposedly without fetching records. Note, though, that this behavior is not according to any contract, and there is no guarantee that `poll(0)` won't return records the first time it's called. Therefore, it has always been unsafe to ignore the response.
2018-05-26 11:50:51 -07:00
Chia-Ping Tsai 8d1e96181d MINOR: Replace unused variables by underscore (#5003)
And remove one unused expression.

Reviewers: Ismael Juma <ismael@juma.me.uk>
2018-05-26 00:54:41 -07:00
Ron Dagostino 8c5d7e0408 KAFKA-6562: OAuth Authentication via SASL/OAUTHBEARER (KIP-255) (#4994)
This KIP adds the following functionality related to SASL/OAUTHBEARER:

1) Allow clients (both brokers when SASL/OAUTHBEARER is the inter-broker protocol as well as non-broker clients) to flexibly retrieve an access token from an OAuth 2 authorization server based on the declaration of a custom login CallbackHandler implementation and have that access token transparently and automatically transmitted to a broker for authentication.

2) Allow brokers to flexibly validate provided access tokens when a client establishes a connection based on the declaration of a custom SASL Server CallbackHandler implementation.

3) Provide implementations of the above retrieval and validation features based on an unsecured JSON Web Token that function out-of-the-box with minimal configuration required (i.e. implementations of the two types of callback handlers mentioned above will be used by default with no need to explicitly declare them).

4) Allow clients (both brokers when SASL/OAUTHBEARER is the inter-broker protocol as well as non-broker clients) to transparently retrieve a new access token in the background before the existing access token expires in case the client has to open new connections.
2018-05-26 08:18:41 +01:00
Manikumar Reddy O d45d7ec781 KAFKA-2951; Add a test to verify produce, consume with ACLs for topic/group wildcard resources (#5054) 2018-05-25 23:49:31 -07:00