summaryrefslogtreecommitdiff
path: root/src/mongo
diff options
context:
space:
mode:
authorSara Golemon <sara.golemon@mongodb.com>2023-01-04 12:40:01 -0600
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-01-05 01:49:01 +0000
commitb464f021cf82beac109715b8224a410b2d103c6b (patch)
treef8d2090b9cc7fa4e6b303aec3378e5f41cd8965d /src/mongo
parentede02d898c5f1f3c22cb09a7ea049cce05697774 (diff)
downloadmongo-b464f021cf82beac109715b8224a410b2d103c6b.tar.gz
SERVER-70702 Add context to key load failures
Diffstat (limited to 'src/mongo')
-rw-r--r--src/mongo/crypto/jwk_manager.cpp30
1 files changed, 18 insertions, 12 deletions
diff --git a/src/mongo/crypto/jwk_manager.cpp b/src/mongo/crypto/jwk_manager.cpp
index 29ee470517d..8291108d9f0 100644
--- a/src/mongo/crypto/jwk_manager.cpp
+++ b/src/mongo/crypto/jwk_manager.cpp
@@ -57,18 +57,24 @@ StringData reduceInt(StringData value) {
} // namespace
JWKManager::JWKManager(StringData source) : _keyURI(source) {
- auto httpClient = HttpClient::createWithoutConnectionPool();
- httpClient->setHeaders({"Accept: */*"});
- httpClient->allowInsecureHTTP(getTestCommandsEnabled());
-
- auto getJWKs = httpClient->get(source);
-
- ConstDataRange cdr = getJWKs.getCursor();
- StringData str;
- cdr.readInto<StringData>(&str);
-
- BSONObj data = fromjson(str);
- _setAndValidateKeys(data);
+ try {
+ auto httpClient = HttpClient::createWithoutConnectionPool();
+ httpClient->setHeaders({"Accept: */*"});
+ httpClient->allowInsecureHTTP(getTestCommandsEnabled());
+
+ auto getJWKs = httpClient->get(source);
+
+ ConstDataRange cdr = getJWKs.getCursor();
+ StringData str;
+ cdr.readInto<StringData>(&str);
+
+ BSONObj data = fromjson(str);
+ _setAndValidateKeys(data);
+ } catch (const DBException& ex) {
+ // throws
+ uassertStatusOK(
+ ex.toStatus().withContext(str::stream() << "Failed loading keys from " << source));
+ }
}
JWKManager::JWKManager(BSONObj keys) {