Kurt Greaves created CASSANDRA-14662:
----------------------------------------
Summary: Refactor AuthCache
Key: CASSANDRA-14662
URL: https://issues.apache.org/jira/browse/CASSANDRA-14662
Project: Cassandra
Issue Type: Improvement
Components: Auth
Reporter: Kurt Greaves
Assignee: Kurt Greaves
When building an LDAP IAuthenticator plugin I ran into a few issues when trying
to reuse the AuthCache similar to how PasswordAuthenticator implements it. Most
of the problems stemmed from the underlying cache being inaccessible and not
being able to override {{initCache}} properly.
Anyway, I've had a stab at refactoring AuthCache with the following
improvements:
# Make it possible to extend and override all necessary methods (initCache,
init, validate)
# Makes it possible to specify a {{CacheLoader}} rather than just a
{{Function}}, allowing you to have a get/load that throws exceptions.
# Use AuthCache on its own rather than extending it for each use case
({{invalidate(K)}} moved to be part of MBean)
# Provided a builder that uses sane defaults so we don't have unnecessary
repeated code everywhere
The refactor made all the extensions of AuthCache unnecessary, so I've
simplified those cases to use AuthCache and removed any classes extending
AuthCache. I also removed some noop compatibility classes that were marked to
be removed in 4.0.
Also added some tests in AuthCacheTest.
|[trunk|https://github.com/apache/cassandra/compare/trunk...kgreav:authcache]|
|[utests|https://circleci.com/gh/kgreav/cassandra/206]|
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]