0d874f91ee
Code-review follow-up on the CLI-40/41/44 branch. ISSUE 1 (all five, critical): the message-only scrub still leaked the server-echoed credential through the redacted error's structured reply accessor (.NET Reply/Statuses, Java reply()/protocolStatus(), Go MxAccessError.Reply via errors.As, Rust reply()/into_reply(), Python raw_reply). The redacted error now carries a scrubbed clone of the reply (protocol_status.message, diagnostic_message, statuses[].diagnostic_text), with per-language tests asserting the reply accessor no longer contains the credential. ISSUE 2 (Rust, critical): ensure_command_success routed MXACCESS_FAILURE to Error::Command (unlike the other four clients), bypassing attach_secrets and leaking via derived Debug/Display. MXACCESS_FAILURE now routes to Error::MxAccess, fixing the cross-client inconsistency. ISSUE 3 (Go, important): the CLI-44 terminal send was unconditionally non-blocking, dropping a genuine terminal error under a full buffer on the never-drop SubscribeEvents path. It is now reserved-slot-non-blocking only for the cancel-on-overflow path and blocking for the never-drop path. New shared fixture authenticate-user.echoed-credential-mxaccess-failure.reply.json wired into all five suites. Minors: whitespace-secret guard on .NET/Java redact helpers; Java preserves exception subtype on redaction; redaction-helper unit tests (Go/Java/.NET). Docs (ClientBehaviorFixtures.md, ClientLibrariesDesign.md) updated to make the structured-field claim true.
23 lines
794 B
JSON
23 lines
794 B
JSON
{
|
|
"sessionId": "session-fixture",
|
|
"correlationId": "gateway-correlation-authenticate-echoed-mxaccess-failure",
|
|
"kind": "MX_COMMAND_KIND_AUTHENTICATE_USER",
|
|
"protocolStatus": {
|
|
"code": "PROTOCOL_STATUS_CODE_MXACCESS_FAILURE",
|
|
"message": "MXAccess AuthenticateUser rejected credential 'sup3rSecretVerify9f3a2b'."
|
|
},
|
|
"hresult": -2147024891,
|
|
"statuses": [
|
|
{
|
|
"success": 0,
|
|
"category": "MX_STATUS_CATEGORY_SECURITY_ERROR",
|
|
"detectedBy": "MX_STATUS_SOURCE_RESPONDING_NMX",
|
|
"detail": 5,
|
|
"rawCategory": 8,
|
|
"rawDetectedBy": 5,
|
|
"diagnosticText": "Authentication failed for password 'sup3rSecretVerify9f3a2b'."
|
|
}
|
|
],
|
|
"diagnosticMessage": "MXAccess echoed the credential 'sup3rSecretVerify9f3a2b' back in its failure diagnostic."
|
|
}
|