summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorBrad Kittenbrink <brad@lindenlab.com>2021-12-13 14:58:38 -0800
committerBrad Kittenbrink <brad@lindenlab.com>2021-12-13 14:58:38 -0800
commit6d177898a9a5883ad7939be162e51d9a61d0e0b1 (patch)
tree9c3d508f877d4434c59d40ee7e00d65fc9a46c0d /indra
parent30cd108c7e4a524c9f17060d5b2f7b4ff193b4b8 (diff)
SL-16501 SLMFAHash is now saved client side
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/app_settings/settings_per_account.xml11
-rw-r--r--indra/newview/lllogininstance.cpp2
-rw-r--r--indra/newview/llstartup.cpp5
-rw-r--r--indra/newview/tests/lllogininstance_test.cpp1
4 files changed, 18 insertions, 1 deletions
diff --git a/indra/newview/app_settings/settings_per_account.xml b/indra/newview/app_settings/settings_per_account.xml
index 537744b44c..d7d008689c 100644
--- a/indra/newview/app_settings/settings_per_account.xml
+++ b/indra/newview/app_settings/settings_per_account.xml
@@ -436,5 +436,16 @@
<key>Value</key>
<integer>2</integer>
</map>
+ <key>SLMFAHash</key>
+ <map>
+ <key>Comment</key>
+ <string>MFA state hash for authentication</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>String</string>
+ <key>Value</key>
+ <string></string>
+ </map>
</map>
</llsd>
diff --git a/indra/newview/lllogininstance.cpp b/indra/newview/lllogininstance.cpp
index 553a8c91ff..f19569d429 100644
--- a/indra/newview/lllogininstance.cpp
+++ b/indra/newview/lllogininstance.cpp
@@ -228,7 +228,7 @@ 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"] = "";
+ request_params["slmfa_hash"] = gSavedPerAccountSettings.getString("SLMFAHash");
// log request_params _before_ adding the credentials
LL_DEBUGS("LLLogin") << "Login parameters: " << LLSDOStreamer<LLSDNotationFormatter>(request_params) << LL_ENDL;
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 228d64c17b..05d17b47bc 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -3605,6 +3605,11 @@ bool process_login_success_response()
LLViewerMedia::getInstance()->openIDSetup(openid_url, openid_token);
}
+ if(response.has("slmfa_hash"))
+ {
+ gSavedPerAccountSettings.setString("SLMFAHash", response["slmfa_hash"]);
+ }
+
bool success = false;
// JC: gesture loading done below, when we have an asset system
// in place. Don't delete/clear gUserCredentials until then.
diff --git a/indra/newview/tests/lllogininstance_test.cpp b/indra/newview/tests/lllogininstance_test.cpp
index 8d1956957c..43f0e89222 100644
--- a/indra/newview/tests/lllogininstance_test.cpp
+++ b/indra/newview/tests/lllogininstance_test.cpp
@@ -190,6 +190,7 @@ std::string LLGridManager::getAppSLURLBase(const std::string& grid_name)
//-----------------------------------------------------------------------------
#include "../llviewercontrol.h"
LLControlGroup gSavedSettings("Global");
+LLControlGroup gSavedPerAccountSettings("PerAccount");
LLControlGroup::LLControlGroup(const std::string& name) :
LLInstanceTracker<LLControlGroup, std::string>(name){}