web_backend: protect jwt cache with a mutex

This commit is contained in:
Weiyi Wang 2018-09-17 14:28:58 -04:00 committed by fearlessTobi
parent 120d8f3bf7
commit 62f9409ba3
2 changed files with 4 additions and 1 deletions

View file

@ -24,6 +24,7 @@ Client::JWTCache Client::jwt_cache{};
Client::Client(const std::string& host, const std::string& username, const std::string& token)
: host(host), username(username), token(token) {
std::lock_guard<std::mutex> lock(jwt_cache.mutex);
if (username == jwt_cache.username && token == jwt_cache.token) {
jwt = jwt_cache.jwt;
}
@ -116,6 +117,7 @@ void Client::UpdateJWT() {
if (result.result_code != Common::WebResult::Code::Success) {
LOG_ERROR(WebService, "UpdateJWT failed");
} else {
std::lock_guard<std::mutex> lock(jwt_cache.mutex);
jwt_cache.username = username;
jwt_cache.token = token;
jwt_cache.jwt = jwt = result.returned_data;