diff options
author | Brad Kittenbrink <brad@lindenlab.com> | 2022-01-14 22:24:52 -0800 |
---|---|---|
committer | Brad Kittenbrink <brad@lindenlab.com> | 2022-01-14 22:24:52 -0800 |
commit | 96a6d21086353639d48befa20d86c97d2fd2dddb (patch) | |
tree | 9196e1aef17549abbfd4060e90d6458df1cd4a89 /indra/newview/lllogininstance.cpp | |
parent | 90dbc4eaf7d30346dc658a32e80f4e9ad5841c2b (diff) |
SL-16514 store mfa hash in protected data using LLSecAPIBasicHandler
Diffstat (limited to 'indra/newview/lllogininstance.cpp')
-rw-r--r-- | indra/newview/lllogininstance.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/indra/newview/lllogininstance.cpp b/indra/newview/lllogininstance.cpp index 902510c294..a4c001ad8b 100644 --- a/indra/newview/lllogininstance.cpp +++ b/indra/newview/lllogininstance.cpp @@ -228,11 +228,20 @@ void LLLoginInstance::constructAuthParams(LLPointer<LLCredential> user_credentia request_params["host_id"] = gSavedSettings.getString("HostID"); request_params["extended_errors"] = true; // request message_id and message_args request_params["token"] = ""; - request_params["slmfa_hash"] = gSavedPerAccountSettings.getString("SLMFAHash"); - // log request_params _before_ adding the credentials + // log request_params _before_ adding the credentials or sensitive MFA hash data LL_DEBUGS("LLLogin") << "Login parameters: " << LLSDOStreamer<LLSDNotationFormatter>(request_params) << LL_ENDL; + std::string slmfa_hash = gSavedPerAccountSettings.getString("SLMFAHash"); //non-persistent to enable testing + if(slmfa_hash.empty()) + { + LLPointer<LLSecAPIHandler> basic_secure_store = getSecHandler(BASIC_SECHANDLER); + std::string grid(LLGridManager::getInstance()->getGridId()); + slmfa_hash = basic_secure_store->getProtectedData("slmfa_hash", grid).asString(); + } + + request_params["slmfa_hash"] = slmfa_hash; + // Copy the credentials into the request after logging the rest LLSD credentials(user_credential->getLoginParams()); for (LLSD::map_const_iterator it = credentials.beginMap(); @@ -417,7 +426,7 @@ void LLLoginInstance::handleLoginFailure(const LLSD& event) LLSD data(LLSD::emptyMap()); data["message"] = message_response; - data["reply_pump"] = MFA_REPLY_PUMP; + data["reply_pump"] = MFA_REPLY_PUMP if (gViewerWindow) { gViewerWindow->setShowProgress(FALSE); |