Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(143)

Side by Side Diff: google_apis/gaia/gaia_urls.cc

Issue 11786006: Added flags to override hosts for LSO URLs. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « google_apis/gaia/gaia_urls.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "google_apis/gaia/gaia_urls.h" 5 #include "google_apis/gaia/gaia_urls.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "google_apis/gaia/gaia_switches.h" 8 #include "google_apis/gaia/gaia_switches.h"
9 #include "google_apis/google_api_keys.h" 9 #include "google_apis/google_api_keys.h"
10 10
11 namespace { 11 namespace {
12 12
13 // Gaia service constants 13 // Gaia service constants
14 const char kDefaultGaiaBaseUrl[] = "accounts.google.com"; 14 const char kDefaultGaiaBaseUrl[] = "accounts.google.com";
15 const char kDefaultGoogleApisBaseUrl[] = "www.googleapis.com";
15 const char kCaptchaUrlPrefixSuffix[] = "/"; 16 const char kCaptchaUrlPrefixSuffix[] = "/";
17
18 // API calls from accounts.google.com
16 const char kClientLoginUrlSuffix[] = "/ClientLogin"; 19 const char kClientLoginUrlSuffix[] = "/ClientLogin";
17 const char kServiceLoginUrlSuffix[] = "/ServiceLogin"; 20 const char kServiceLoginUrlSuffix[] = "/ServiceLogin";
18 const char kIssueAuthTokenUrlSuffix[] = "/IssueAuthToken"; 21 const char kIssueAuthTokenUrlSuffix[] = "/IssueAuthToken";
19 const char kGetUserInfoUrlSuffix[] = "/GetUserInfo"; 22 const char kGetUserInfoUrlSuffix[] = "/GetUserInfo";
20 const char kTokenAuthUrlSuffix[] = "/TokenAuth"; 23 const char kTokenAuthUrlSuffix[] = "/TokenAuth";
21 const char kMergeSessionUrlSuffix[] = "/MergeSession"; 24 const char kMergeSessionUrlSuffix[] = "/MergeSession";
22 25 const char kOAuth1LoginScopeSuffix[] = "/OAuthLogin";
23 const char kOAuthGetAccessTokenUrlSuffix[] = "/OAuthGetAccessToken"; 26 const char kOAuthGetAccessTokenUrlSuffix[] = "/OAuthGetAccessToken";
24 const char kOAuthWrapBridgeUrlSuffix[] = "/OAuthWrapBridge"; 27 const char kOAuthWrapBridgeUrlSuffix[] = "/OAuthWrapBridge";
25 const char kOAuth1LoginUrlSuffix[] = "/OAuthLogin"; 28 const char kOAuth1LoginUrlSuffix[] = "/OAuthLogin";
26 const char kOAuthRevokeTokenUrlSuffix[] = "/AuthSubRevokeToken"; 29 const char kOAuthRevokeTokenUrlSuffix[] = "/AuthSubRevokeToken";
27 30
28 // Federated login constants 31 // API calls from accounts.google.com (LSO)
29 const char kDefaultFederatedLoginHost[] = "www.google.com";
30 const char kDefaultFederatedLoginPath[] = "/accounts";
31 const char kGetOAuthTokenUrlSuffix[] = "/o/oauth/GetOAuthToken/"; 32 const char kGetOAuthTokenUrlSuffix[] = "/o/oauth/GetOAuthToken/";
33 const char kClientLoginToOAuth2UrlSuffix[] = "/o/oauth2/programmatic_auth";
34 const char kOAuth2TokenUrlSuffix[] = "/o/oauth2/token";
35 const char kClientOAuthUrlSuffix[] = "/ClientOAuth";
32 36
33 const char kClientLoginToOAuth2Url[] = 37 // API calls from www.googleapis.com
34 "https://accounts.google.com/o/oauth2/programmatic_auth"; 38 const char kOAuth2IssueTokenUrlSuffix[] = "/oauth2/v2/IssueToken";
35 const char kOAuth2TokenUrl[] = 39 const char kOAuthUserInfoUrlSuffix[] = "/oauth2/v1/userinfo";
36 "https://accounts.google.com/o/oauth2/token"; 40 const char kOAuthWrapBridgeUserInfoScopeUrlSuffix[] = "/auth/userinfo.email";
37 const char kOAuth2IssueTokenUrl[] =
38 "https://www.googleapis.com/oauth2/v2/IssueToken";
39 const char kOAuth1LoginScope[] =
40 "https://www.google.com/accounts/OAuthLogin";
41 const char kOAuthUserInfoUrl[] =
42 "https://www.googleapis.com/oauth2/v1/userinfo";
43
44 41
45 void GetSwitchValueWithDefault(const char* switch_value, 42 void GetSwitchValueWithDefault(const char* switch_value,
46 const char* default_value, 43 const char* default_value,
47 std::string* output_value) { 44 std::string* output_value) {
48 CommandLine* command_line = CommandLine::ForCurrentProcess(); 45 CommandLine* command_line = CommandLine::ForCurrentProcess();
49 if (command_line->HasSwitch(switch_value)) { 46 if (command_line->HasSwitch(switch_value)) {
50 *output_value = command_line->GetSwitchValueASCII(switch_value); 47 *output_value = command_line->GetSwitchValueASCII(switch_value);
51 } else { 48 } else {
52 *output_value = default_value; 49 *output_value = default_value;
53 } 50 }
54 } 51 }
55 52
56 } // namespace 53 } // namespace
57 54
58 GaiaUrls* GaiaUrls::GetInstance() { 55 GaiaUrls* GaiaUrls::GetInstance() {
59 return Singleton<GaiaUrls>::get(); 56 return Singleton<GaiaUrls>::get();
60 } 57 }
61 58
62 GaiaUrls::GaiaUrls() { 59 GaiaUrls::GaiaUrls() {
63 CommandLine* command_line = CommandLine::ForCurrentProcess(); 60 CommandLine* command_line = CommandLine::ForCurrentProcess();
64 std::string host_base; 61 std::string host_base;
65 GetSwitchValueWithDefault(switches::kGaiaHost, kDefaultGaiaBaseUrl, 62 GetSwitchValueWithDefault(switches::kGaiaHost, kDefaultGaiaBaseUrl,
66 &host_base); 63 &host_base);
67 64
65 std::string lso_base;
66 GetSwitchValueWithDefault(switches::kLsoHost, kDefaultGaiaBaseUrl,
67 &lso_base);
68
69 std::string google_apis_base;
70 GetSwitchValueWithDefault(switches::kGoogleApisHost, kDefaultGoogleApisBaseUrl ,
xiyuan 2013/01/07 23:16:46 nit: 80 cols
zel 2013/01/08 01:13:08 Done.
71 &google_apis_base);
72
68 captcha_url_prefix_ = "http://" + host_base + kCaptchaUrlPrefixSuffix; 73 captcha_url_prefix_ = "http://" + host_base + kCaptchaUrlPrefixSuffix;
69 gaia_origin_url_ = "https://" + host_base; 74 gaia_origin_url_ = "https://" + host_base;
75 lso_origin_url_ = "https://" + lso_base;
76 google_apis_origin_url_ = "https://" + google_apis_base;
70 std::string gaia_url_base = gaia_origin_url_; 77 std::string gaia_url_base = gaia_origin_url_;
71 if (command_line->HasSwitch(switches::kGaiaUrlPath)) { 78 if (command_line->HasSwitch(switches::kGaiaUrlPath)) {
72 std::string path = 79 std::string path =
73 command_line->GetSwitchValueASCII(switches::kGaiaUrlPath); 80 command_line->GetSwitchValueASCII(switches::kGaiaUrlPath);
74 if (!path.empty()) { 81 if (!path.empty()) {
75 if (path[0] != '/') 82 if (path[0] != '/')
76 gaia_url_base.append("/"); 83 gaia_url_base.append("/");
77 84
78 gaia_url_base.append(path); 85 gaia_url_base.append(path);
79 } 86 }
80 } 87 }
81 88
89
90 oauth2_chrome_client_id_ =
91 google_apis::GetOAuth2ClientID(google_apis::CLIENT_MAIN);
92 oauth2_chrome_client_secret_ =
93 google_apis::GetOAuth2ClientSecret(google_apis::CLIENT_MAIN);
94
95 // URLs from accounts.google.com.
96 gaia_login_form_realm_ = gaia_url_base + "/";
82 client_login_url_ = gaia_url_base + kClientLoginUrlSuffix; 97 client_login_url_ = gaia_url_base + kClientLoginUrlSuffix;
83 service_login_url_ = gaia_url_base + kServiceLoginUrlSuffix; 98 service_login_url_ = gaia_url_base + kServiceLoginUrlSuffix;
84 issue_auth_token_url_ = gaia_url_base + kIssueAuthTokenUrlSuffix; 99 issue_auth_token_url_ = gaia_url_base + kIssueAuthTokenUrlSuffix;
85 get_user_info_url_ = gaia_url_base + kGetUserInfoUrlSuffix; 100 get_user_info_url_ = gaia_url_base + kGetUserInfoUrlSuffix;
86 token_auth_url_ = gaia_url_base + kTokenAuthUrlSuffix; 101 token_auth_url_ = gaia_url_base + kTokenAuthUrlSuffix;
87 merge_session_url_ = gaia_url_base + kMergeSessionUrlSuffix; 102 merge_session_url_ = gaia_url_base + kMergeSessionUrlSuffix;
88 get_oauth_token_url_ = gaia_url_base + kGetOAuthTokenUrlSuffix;
89 oauth_get_access_token_url_ = gaia_url_base + 103 oauth_get_access_token_url_ = gaia_url_base +
90 kOAuthGetAccessTokenUrlSuffix; 104 kOAuthGetAccessTokenUrlSuffix;
91 oauth_wrap_bridge_url_ = gaia_url_base + kOAuthWrapBridgeUrlSuffix; 105 oauth_wrap_bridge_url_ = gaia_url_base + kOAuthWrapBridgeUrlSuffix;
92 oauth_revoke_token_url_ = gaia_url_base + kOAuthRevokeTokenUrlSuffix; 106 oauth_revoke_token_url_ = gaia_url_base + kOAuthRevokeTokenUrlSuffix;
93 oauth1_login_url_ = gaia_url_base + kOAuth1LoginUrlSuffix; 107 oauth1_login_url_ = gaia_url_base + kOAuth1LoginUrlSuffix;
108 client_oauth_url_ = gaia_url_base + kClientOAuthUrlSuffix;
94 109
110 // URLs from accounts.google.com (LSO).
111 get_oauth_token_url_ = lso_origin_url_ + kGetOAuthTokenUrlSuffix;
112 std::string client_login_to_oauth2_url = lso_origin_url_ +
113 kClientLoginToOAuth2UrlSuffix;
114 std::string oauth2_token_url = lso_origin_url_ + kOAuth2TokenUrlSuffix;
115
116 // URLs from www.googleapis.com.
117 oauth_wrap_bridge_user_info_scope_ = google_apis_origin_url_ +
118 kOAuthWrapBridgeUserInfoScopeUrlSuffix;
119 std::string oauth2_issue_token_url = google_apis_origin_url_ +
120 kOAuth2IssueTokenUrlSuffix;
121 std::string oauth_user_info_url = google_apis_origin_url_ +
122 kOAuthUserInfoUrlSuffix;
123
124 // TODO(zelidrag): Get rid of all these switches since all URLs should be
125 // controlled only with --gaia-host, --lso-host and --google-apis-host.
95 GetSwitchValueWithDefault(switches::kOAuth1LoginScope, 126 GetSwitchValueWithDefault(switches::kOAuth1LoginScope,
96 kOAuth1LoginScope, 127 oauth1_login_url_.c_str(),
97 &oauth1_login_scope_); 128 &oauth1_login_scope_);
98
99 // TODO(joaodasilva): these aren't configurable for now, but are managed here
100 // so that users of Gaia URLs don't have to use static constants.
101 // http://crbug.com/97126
102 oauth_wrap_bridge_user_info_scope_ =
103 "https://www.googleapis.com/auth/userinfo.email";
104 client_oauth_url_ = "https://accounts.google.com/ClientOAuth";
105
106 oauth2_chrome_client_id_ =
107 google_apis::GetOAuth2ClientID(google_apis::CLIENT_MAIN);
108 oauth2_chrome_client_secret_ =
109 google_apis::GetOAuth2ClientSecret(google_apis::CLIENT_MAIN);
110
111 GetSwitchValueWithDefault(switches::kClientLoginToOAuth2Url, 129 GetSwitchValueWithDefault(switches::kClientLoginToOAuth2Url,
112 kClientLoginToOAuth2Url, 130 client_login_to_oauth2_url.c_str(),
113 &client_login_to_oauth2_url_); 131 &client_login_to_oauth2_url_);
114 GetSwitchValueWithDefault(switches::kOAuth2TokenUrl, 132 GetSwitchValueWithDefault(switches::kOAuth2TokenUrl,
115 kOAuth2TokenUrl, 133 oauth2_token_url.c_str(),
116 &oauth2_token_url_); 134 &oauth2_token_url_);
117 GetSwitchValueWithDefault(switches::kOAuth2IssueTokenUrl, 135 GetSwitchValueWithDefault(switches::kOAuth2IssueTokenUrl,
118 kOAuth2IssueTokenUrl, 136 oauth2_issue_token_url.c_str(),
119 &oauth2_issue_token_url_); 137 &oauth2_issue_token_url_);
120 GetSwitchValueWithDefault(switches::kOAuthUserInfoUrl, 138 GetSwitchValueWithDefault(switches::kOAuthUserInfoUrl,
121 kOAuthUserInfoUrl, 139 oauth_user_info_url.c_str(),
122 &oauth_user_info_url_); 140 &oauth_user_info_url_);
123
124 gaia_login_form_realm_ = "https://accounts.google.com/";
125 } 141 }
126 142
127 GaiaUrls::~GaiaUrls() { 143 GaiaUrls::~GaiaUrls() {
128 } 144 }
129 145
130 const std::string& GaiaUrls::captcha_url_prefix() { 146 const std::string& GaiaUrls::captcha_url_prefix() {
131 return captcha_url_prefix_; 147 return captcha_url_prefix_;
132 } 148 }
133 149
134 const std::string& GaiaUrls::gaia_origin_url() { 150 const std::string& GaiaUrls::gaia_origin_url() {
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 } 228 }
213 229
214 const std::string& GaiaUrls::oauth2_issue_token_url() { 230 const std::string& GaiaUrls::oauth2_issue_token_url() {
215 return oauth2_issue_token_url_; 231 return oauth2_issue_token_url_;
216 } 232 }
217 233
218 234
219 const std::string& GaiaUrls::gaia_login_form_realm() { 235 const std::string& GaiaUrls::gaia_login_form_realm() {
220 return gaia_login_form_realm_; 236 return gaia_login_form_realm_;
221 } 237 }
OLDNEW
« no previous file with comments | « google_apis/gaia/gaia_urls.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698