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]

Reply via email to