1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "remoting/base/auth_token_util.h" 6 #include "remoting/base/constants.h" 7 8 namespace remoting { 9 10 void ParseAuthTokenWithService(const std::string& auth_service_with_token, 11 std::string* auth_token, 12 std::string* auth_service) { 13 size_t delimiter_pos = auth_service_with_token.find(':'); 14 if (delimiter_pos == std::string::npos) { 15 // Legacy case: there is no delimiter. Assume the whole string is the 16 // auth_token, and that we're using the default service. 17 // 18 // TODO(ajwong): Remove this defaulting once all webclients are migrated. 19 // BUG:83897 20 auth_token->assign(auth_service_with_token); 21 auth_service->assign(kChromotingTokenDefaultServiceName); 22 } else { 23 auth_service->assign(auth_service_with_token.substr(0, delimiter_pos)); 24 25 // Make sure there is *something* after the delimiter before doing substr. 26 if (delimiter_pos < auth_service_with_token.size()) { 27 auth_token->assign(auth_service_with_token.substr(delimiter_pos + 1)); 28 } else { 29 auth_token->clear(); 30 } 31 } 32 } 33 34 } // namespace remoting 35