-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
None
-
Component/s: None
-
None
-
Needed
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:
- depends on
-
CDRIVER-2579 Handshake changes for SDAM and Auth
- Closed
-
CSHARP-2231 Handshake changes for SDAM and Auth
- Closed
-
CXX-1541 Handshake changes for SDAM and Auth
- Closed
-
GODRIVER-322 Handshake changes for SDAM and Auth
- Closed
-
JAVA-2824 Handshake changes for SDAM and Auth
- Closed
-
MOTOR-210 Handshake changes for SDAM and Auth
- Closed
-
NODE-1394 Handshake changes for SDAM and Auth
- Closed
-
PHPC-1153 Handshake changes for SDAM and Auth
- Closed
-
PYTHON-1514 Handshake changes for SDAM and Auth
- Closed
-
RUST-78 Implement Handshake Spec
- Closed
-
RUBY-1319 Handshake changes for SDAM and Auth
- Closed