diff options
author | Sara Golemon <sara.golemon@mongodb.com> | 2023-01-04 12:40:01 -0600 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2023-01-05 01:49:01 +0000 |
commit | b464f021cf82beac109715b8224a410b2d103c6b (patch) | |
tree | f8d2090b9cc7fa4e6b303aec3378e5f41cd8965d /src/mongo | |
parent | ede02d898c5f1f3c22cb09a7ea049cce05697774 (diff) | |
download | mongo-b464f021cf82beac109715b8224a410b2d103c6b.tar.gz |
SERVER-70702 Add context to key load failures
Diffstat (limited to 'src/mongo')
-rw-r--r-- | src/mongo/crypto/jwk_manager.cpp | 30 |
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) { |