-
Type: New Feature
-
Resolution: Duplicate
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Spec Comp
-
None
tl;dr:
- Monitoring-only sockets must not send SCRAM mechanism negotiation in isMaster and must not authenticate at all.
- Non-monitoring sockets (e.g. connection pool or single-threaded client) do a "normal" handshake and authenticate if there are credentials.
- An authentication error on a socket must close all (and only) non-monitoring sockets to the same server.
Possible backward breaking change:
- Some drivers were resetting a server's topology description to Unknown on an authentication error and should stop doing so. This means the topology will always be "correct" even when authentication fails.
- It will no longer be possible for authentication errors to be masked as server selection errors.
Detailed changes:
- duplicates
-
PYTHON-2580 Provide explicit guidance on handling command errors that occur before the handshake completes during operation execution
- Closed
- is depended on by
-
DRIVERS-466 Handshake changes for SDAM and Auth
- Closed
-
PYTHON-2580 Provide explicit guidance on handling command errors that occur before the handshake completes during operation execution
- Closed
- related to
-
PYTHON-1314 Remove Database.authenticate and Database.logout
- Closed
-
PYTHON-2158 Support speculative authentication attempts in isMaster
- Closed