fix(desktop): fix missing ca certs when client certs are not present (#4888)

This commit is contained in:
Shreyas 2025-03-19 14:37:55 +05:30 committed by GitHub
parent 60cc41f745
commit 51124e91b5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -130,32 +130,30 @@ const convertSecurity = (
pipe(
O.fromNullable(security),
O.chain((security) => {
return pipe(
const certificatesOption = pipe(
O.fromNullable(security.certificates),
O.chain((certificates) =>
pipe(
O.Do,
O.bind("client", () => convertClientCert(certificates.client)),
O.bind("ca", () => convertCaCerts(certificates.ca)),
O.map((convertedCerts) => ({
certificates: {
client: convertedCerts.client,
ca: convertedCerts.ca,
},
// Default to `false` if not explicitly set
verifyHost: security.verifyHost ?? false,
verifyPeer: security.verifyPeer ?? false,
}))
)
),
// If no certificates but security object exists, still return verify settings
O.alt(() =>
O.some({
verifyHost: security.verifyHost ?? false,
verifyPeer: security.verifyPeer ?? false,
})
)
O.chain((certificates) => {
const clientCert = convertClientCert(certificates.client)
const caCerts = convertCaCerts(certificates.ca)
// Include if at least one certificate exists
return O.isSome(clientCert) || O.isSome(caCerts)
? O.some({
...(O.isSome(clientCert) ? { client: clientCert.value } : {}),
...(O.isSome(caCerts) ? { ca: caCerts.value } : {}),
})
: O.none
})
)
return O.some({
...(O.isSome(certificatesOption)
? { certificates: certificatesOption.value }
: {}),
// Default to `false` if not explicitly set,
// if no certificates but security object exists, still return verify settings
verifyHost: security.verifyHost ?? false,
verifyPeer: security.verifyPeer ?? false,
})
}),
// If no security object at all, return default settings
O.alt(() =>