Joel Shepherd created CASSJAVA-127:
--------------------------------------

             Summary: CEP-50: Add authenticator negotiation support to Java 
driver
                 Key: CASSJAVA-127
                 URL: https://issues.apache.org/jira/browse/CASSJAVA-127
             Project: Apache Cassandra Java driver
          Issue Type: New Feature
            Reporter: Joel Shepherd
            Assignee: Joel Shepherd


See: 
[https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-50%3A+Authentication+Negotiation]

This work will add support for authenticator negotiation to the Java driver and 
serve as a reference implementation for other Cassandra drivers. 

Flow:

1) Driver sends OPTIONS message to server (optional).

2) If server includes AUTHENTICATORS key in SUPPORTED message, this is positive 
indication the server supports negotiation.

3) Driver includes authentication mode names (e.g. "password", "mutualtls", 
etc.) in its STARTUP message using the AUTHENTICATORS key.

4) Server picks its preferred option from the list provided by the driver, or a 
default authenticator if none of the driver's options are satisfactory. If an 
authentication handshake is required, server sends AUTHENTICATE message to 
driver specifying the authenticator it will use.

5) Driver creates a matching auth provider for the server's authenticator, and 
authenticates normally.

Most of the driver-side changes needed to support this are:

1) Configuration to enable negotiation.

2) An "auth provider registry" which the driver can use to tell the server the 
auth methods that the driver supports, and to select a specific auth provider 
once the server has indicated its preference.

3) Updating STARTUP message construction and AUTHENTICATE message handling.

4) Tests to ensure forward and backward compatible with servers that do and 
don't support negotiation.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to