public class SaslExtensions extends Object
SaslExtensions
intentionally
overrides the standard equals(Object)
and hashCode()
methods calling their
respective Object.equals(Object)
and Object.hashCode()
implementations. In so
doing, it provides equality only via reference identity and will not base equality on
the underlying values of its extensions map
.
The reason for this approach to equality is based off of the manner in which
credentials are stored in a Subject
. SaslExtensions
are added to and
removed from a Subject
via its public credentials
.
The public credentials are stored in a Set
in the Subject
, so object equality
therefore becomes a concern. With shallow, reference-based equality, distinct
SaslExtensions
instances with the same map values can be considered unique. This is
critical to operations like token refresh.
See KAFKA-14062 for more detail.Constructor and Description |
---|
SaslExtensions(Map<String,String> extensionsMap) |
Modifier and Type | Method and Description |
---|---|
static SaslExtensions |
empty()
Creates an "empty" instance indicating no SASL extensions.
|
boolean |
equals(Object o)
Implements equals using the reference comparison implementation from
Object.equals(Object) . |
int |
hashCode()
Implements
hashCode using the native implementation from
Object.hashCode() . |
Map<String,String> |
map()
Returns an immutable map of the extension names and their values
|
String |
toString() |
public Map<String,String> map()
public static SaslExtensions empty()
Subject
s as the references need to be
unique.
See the class-level documentation for details.SaslExtensions
instancepublic final boolean equals(Object o)
Object.equals(Object)
.
See the class-level documentation for details.public final int hashCode()
hashCode
using the native implementation from
Object.hashCode()
.
See the class-level documentation for details.